Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make runtime multiplatform compatible #168

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
447 commits
Select commit Hold shift + click to select a range
c23ab72
extract common code between serialization and message size
andrewparmet Nov 24, 2022
c020b93
further code cleanup
andrewparmet Nov 24, 2022
e7d9687
a bunch of codeblock construction cleanup
andrewparmet Nov 24, 2022
e3282c9
fix some bad whitespace
andrewparmet Nov 24, 2022
854c484
straighen out more code blocks
andrewparmet Nov 24, 2022
2039e1c
code blocks all the way down
andrewparmet Nov 24, 2022
1137678
more type name injection
andrewparmet Nov 24, 2022
5017bb9
remove some literal formatting
andrewparmet Nov 24, 2022
fa78046
fix some whitespace
andrewparmet Nov 24, 2022
e0b2e9d
more whitespace
andrewparmet Nov 24, 2022
70e249f
remove more literal formatting
andrewparmet Nov 24, 2022
5a400a3
remove the last of the literal formatting
andrewparmet Nov 24, 2022
994d70f
more type names
andrewparmet Nov 24, 2022
5ba03e1
no more literal formatting
andrewparmet Nov 24, 2022
1c6a9bb
add a lint pass
andrewparmet Nov 24, 2022
9a1bead
fix file package
andrewparmet Nov 24, 2022
6b33bb0
begin extracting PClass; do not lint in integration tests
andrewparmet Nov 24, 2022
1828b1a
clean up more pclass
andrewparmet Nov 24, 2022
020afb4
delete pclass altogether
andrewparmet Nov 24, 2022
ca41fa8
get rid of ppackage
andrewparmet Nov 24, 2022
991ee54
consolidate package names
andrewparmet Nov 25, 2022
061f6ca
remove literal formatting for enum parsing
andrewparmet Nov 25, 2022
81eea2a
type hierarchy cleanup
andrewparmet Nov 25, 2022
0b0684f
code reorg
andrewparmet Nov 25, 2022
5e543a9
more reorg
andrewparmet Nov 25, 2022
632f9a6
a bit more reorg to alleviate circular package dependencies
andrewparmet Nov 25, 2022
81b9f27
use more reflection
andrewparmet Nov 25, 2022
4c2068e
have to spell out java names
andrewparmet Nov 25, 2022
8134b0f
use actual class for references
andrewparmet Nov 25, 2022
e79c8bf
remove unused function
andrewparmet Nov 25, 2022
33d9fe9
add optimization to not check condition for unpacked repeated fields
andrewparmet Nov 25, 2022
2da3b6e
remove some duplication
andrewparmet Nov 25, 2022
747bbdf
allow kotlinpoet to escape property names
andrewparmet Nov 25, 2022
c18abb5
defend against more name shenanigans
andrewparmet Nov 25, 2022
38cc695
no need to defend against duplicate field names
andrewparmet Nov 25, 2022
283e4eb
stop defending against conflicting class names
andrewparmet Nov 25, 2022
9710dd9
disentangle oneof creation
andrewparmet Nov 25, 2022
0ca5be3
more cleanup
andrewparmet Nov 25, 2022
0a92a1c
lint
andrewparmet Nov 26, 2022
1fee6c8
big cleanup of descriptor parsing
andrewparmet Nov 26, 2022
c0457ee
some upgrades
andrewparmet Nov 26, 2022
689a667
use a version catalog
andrewparmet Nov 26, 2022
46fabb8
put all dependencies in the version catalog
andrewparmet Nov 26, 2022
33dd292
clean up awkward dependencies
andrewparmet Nov 26, 2022
13e1018
remove more duplicated code
andrewparmet Nov 26, 2022
ad57bad
fix import location
andrewparmet Nov 26, 2022
8105d0d
rmeove code
andrewparmet Nov 26, 2022
7ce23ce
fix buildsrc code inclusion
andrewparmet Nov 26, 2022
c6ca07c
split parsing into smaller files
andrewparmet Nov 27, 2022
599e5e2
clean up file descriptor object naming and package resolution
andrewparmet Nov 27, 2022
1252372
extract a default param
andrewparmet Nov 27, 2022
55835cb
remove some dead code
andrewparmet Nov 27, 2022
ab3ed95
more dead code
andrewparmet Nov 27, 2022
e8879f7
add a newline before deserializer loop
andrewparmet Nov 27, 2022
71c85ba
in entries too
andrewparmet Nov 27, 2022
acb5f7f
lint
andrewparmet Nov 27, 2022
c00f95e
continue simplifying deserializer code
andrewparmet Nov 27, 2022
3e6d629
lint
andrewparmet Nov 27, 2022
99c52f2
why was this lazy
andrewparmet Nov 27, 2022
fe96df5
lint
andrewparmet Nov 27, 2022
d218052
rename lint to format
andrewparmet Nov 27, 2022
c48db1f
get rid of a file
andrewparmet Nov 27, 2022
3e7dcc9
co-locate more utilties that are only used once
andrewparmet Nov 27, 2022
5d8662e
stop recomputing tags every time
andrewparmet Nov 27, 2022
1faffdc
tidy up message generator
andrewparmet Nov 27, 2022
d222c11
ditch custom case formatting code
andrewparmet Nov 28, 2022
746ed6f
re-enable formatting and clean up bad option usage
andrewparmet Nov 28, 2022
5476836
remove all usage of option
andrewparmet Nov 28, 2022
51df892
further wrap simplification
andrewparmet Nov 28, 2022
cc19d2d
push version through with generated code rather than jar property
andrewparmet Nov 29, 2022
e53146a
one more plugin to version catalog
andrewparmet Nov 29, 2022
8623816
remove more jitpack
andrewparmet Nov 29, 2022
47102b2
remove arrow
andrewparmet Dec 4, 2022
204cae3
fix converter lookup
andrewparmet Dec 4, 2022
a0676bc
actually immutable
andrewparmet Dec 4, 2022
021c5ec
encapsulate class lookup so an alternative implementation can be prov…
andrewparmet Dec 4, 2022
2d9ef59
fix bug and add rudimentary error context
andrewparmet Dec 4, 2022
8e17258
print on own line
andrewparmet Dec 4, 2022
1d00d4c
license
andrewparmet Dec 4, 2022
0c2eeee
move error message generation
andrewparmet Dec 4, 2022
1984d8c
no need to expose fns
andrewparmet Dec 4, 2022
dd0012b
lint
andrewparmet Dec 4, 2022
50a1028
typo
andrewparmet Dec 4, 2022
7a7d083
validate error context
andrewparmet Dec 24, 2022
7010ad4
fix error context for nested messages
andrewparmet Dec 25, 2022
0d9828c
Merge branch 'main' into make-runtime-multiplatform-compatible
andrewparmet Jan 12, 2023
4af6e73
lint
andrewparmet Jan 12, 2023
4459d17
a few reverts
andrewparmet Jan 12, 2023
7965aef
add the junit vintage engine
andrewparmet Jan 12, 2023
3f05e32
fix grpc-kotlin tests
andrewparmet Jan 12, 2023
967c8b1
Merge branch 'main' into make-runtime-multiplatform-compatible
andrewparmet Feb 4, 2023
ea27b8d
make runtime backwards compatbile
andrewparmet Feb 7, 2023
5a37a6d
api dump
andrewparmet Feb 7, 2023
f667f29
jvm opts
andrewparmet Feb 7, 2023
2c9550f
fix integration test config
andrewparmet Feb 7, 2023
3f3a5eb
bump kotlin, try disabled js further
andrewparmet Feb 7, 2023
1989bb7
back to 1.7.21
andrewparmet Feb 7, 2023
91f7581
refine task definition
andrewparmet Feb 7, 2023
c99a3dc
restrict all js tasks
andrewparmet Feb 7, 2023
7ecd7c6
remove bad version passing code
andrewparmet Feb 7, 2023
9f19c90
further cleanup
andrewparmet Feb 7, 2023
ddc01e7
imports
andrewparmet Feb 7, 2023
b4df330
bug fixes
andrewparmet Feb 18, 2023
2bd67d1
another deprecation assertion
andrewparmet Feb 18, 2023
072d165
no need for comment
andrewparmet Feb 18, 2023
34a2eb4
another deprecation fix
andrewparmet Feb 18, 2023
d468917
repackage runtime (#10)
andrewparmet Feb 18, 2023
cb6c714
lint
andrewparmet Feb 18, 2023
9db18fe
remove unneeded size codecs
andrewparmet Feb 18, 2023
44f49f0
api dump
andrewparmet Feb 18, 2023
c0b9ea4
fix test
andrewparmet Feb 18, 2023
57136a5
upgrades all around
andrewparmet Feb 19, 2023
3f67400
toolchain config
andrewparmet Feb 19, 2023
4452836
fix convention
andrewparmet Feb 19, 2023
410a128
try some stuff out
andrewparmet Feb 19, 2023
0595de0
fix long deserialization
andrewparmet Feb 19, 2023
c86ba62
more upgrade work
andrewparmet Feb 19, 2023
c3d0f91
more progress
andrewparmet Feb 19, 2023
85e2f8f
wip experimentation with long
andrewparmet Feb 19, 2023
67cecd0
try requiring long
andrewparmet Feb 19, 2023
dbaa64e
fix long
andrewparmet Feb 19, 2023
642184a
fix build and get conformance tests running again
andrewparmet Feb 19, 2023
e080cad
add fn to parse octal
andrewparmet Feb 19, 2023
8a48372
put back long setup
andrewparmet Feb 19, 2023
cf49966
fake through the tests
andrewparmet Feb 19, 2023
44be414
some debugging
andrewparmet Feb 19, 2023
ab5dccc
fix task dependency
andrewparmet Feb 19, 2023
fa45cc5
remove log
andrewparmet Feb 19, 2023
d89fc05
another dep
andrewparmet Feb 19, 2023
26100aa
Merge branch 'main' into make-runtime-multiplatform-compatible
andrewparmet Apr 2, 2023
2389339
add old kt generated message annotation to new messages for backwards…
andrewparmet Apr 2, 2023
43bc5dd
apidump
andrewparmet Apr 2, 2023
d24534c
lint
andrewparmet Apr 2, 2023
5d218df
license shenanigans
andrewparmet Apr 2, 2023
ed0a356
more license header stuff
andrewparmet Apr 2, 2023
38a483f
unify old interface
andrewparmet Apr 2, 2023
5463997
lint
andrewparmet Apr 2, 2023
eb7c6f3
exclude node_modules
andrewparmet Apr 2, 2023
327679f
Update build.gradle.kts
andrewparmet Apr 3, 2023
8f889f6
Update build.gradle.kts
andrewparmet Apr 3, 2023
b487444
fix some accidental license changes
andrewparmet Apr 3, 2023
9f72769
more licenses
andrewparmet Apr 3, 2023
536762e
move spotless to convention plugin
andrewparmet Apr 3, 2023
2494b8f
fix build
andrewparmet Apr 3, 2023
8b6e972
Merge branch 'main' into make-runtime-multiplatform-compatible
andrewparmet May 13, 2023
4e69085
fix test proto package names
andrewparmet May 13, 2023
e3d978a
v1
andrewparmet May 13, 2023
7228240
use unsigned types where appropriate
andrewparmet May 13, 2023
65cd0ff
api dump
andrewparmet May 13, 2023
baa7a94
remove tag class
andrewparmet May 14, 2023
5f8b4ab
remove need for runtime boxed types
andrewparmet May 14, 2023
d4c0626
begin cleaning up numbers
andrewparmet May 14, 2023
3ccc02a
kill last vestiges of tag
andrewparmet May 14, 2023
d333503
api dump
andrewparmet May 14, 2023
0fbf685
unify duplicated enums
andrewparmet May 14, 2023
d7b37a8
add octal parser for conformance tests
andrewparmet May 14, 2023
0e755b1
try upgrading gradle/kotlin
andrewparmet May 14, 2023
e085729
Merge branch 'kotlin-and-gradle-upgrade' into upgrade-gradle-try-2
andrewparmet May 14, 2023
ced933b
fix bad paste
andrewparmet May 14, 2023
407ad71
Merge branch 'make-runtime-multiplatform-compatible' into upgrade-gra…
andrewparmet May 14, 2023
07cd292
wip
andrewparmet May 14, 2023
ef9642a
wip
andrewparmet May 14, 2023
cb96c7c
get integration tests working
andrewparmet May 14, 2023
c4cfb26
bump memory
andrewparmet May 14, 2023
b815ff3
bump instance
andrewparmet May 14, 2023
79cf569
integration test kotlin version
andrewparmet May 14, 2023
cdd7471
hack js generation back together
andrewparmet May 14, 2023
4acea92
add dsl marker annotation
andrewparmet May 15, 2023
6d69afb
api dump
andrewparmet May 15, 2023
bd3bba7
fix drop-in for common types; todo: compiler types and descriptors
andrewparmet May 15, 2023
fbb8aa8
descriptors etc
andrewparmet May 15, 2023
99682ec
real rough beginnings to a node example
andrewparmet May 17, 2023
5109de8
get it actually working
andrewparmet May 17, 2023
8413c28
wip
andrewparmet May 19, 2023
17f9943
all method types are working
andrewparmet May 19, 2023
bdb4ed8
begin a coroutine-based runtime
andrewparmet May 19, 2023
7f70a02
begin extracting runtime
andrewparmet May 21, 2023
126cd9b
api dump
andrewparmet May 21, 2023
fe67b13
extract a reasonable runtime
andrewparmet May 21, 2023
8bcd3b4
apparently conformance tests are sensitive to the version of coroutines
andrewparmet May 21, 2023
c9169b0
use extension fn and narrow todo
andrewparmet May 21, 2023
27fd17f
fix another import
andrewparmet May 21, 2023
2264aa9
grpc gen for js
andrewparmet May 21, 2023
afebfe4
Merge branch 'main' into make-runtime-multiplatform-compatible
andrewparmet May 25, 2023
b2fd18c
bad merge
andrewparmet May 25, 2023
263fa08
wip sever stub generation
andrewparmet May 25, 2023
f93944e
js server generation functions
andrewparmet May 25, 2023
d86fb49
a bit more cleanup
andrewparmet May 25, 2023
89ca69a
more cleanup
andrewparmet May 25, 2023
29924a7
copypasta
andrewparmet May 25, 2023
52a025b
fix bad import aliasing
andrewparmet May 25, 2023
43544c2
move js grpc to lite
andrewparmet May 28, 2023
a3c98b2
bump spotless
andrewparmet May 28, 2023
18d0c6d
api dump
andrewparmet May 28, 2023
bd84441
add other service implementations
andrewparmet May 28, 2023
8131d74
Merge branch 'main' into make-runtime-multiplatform-compatible
andrewparmet May 28, 2023
d4e1acd
fix linting
andrewparmet May 28, 2023
29210d8
client stub generation and unary implementation
andrewparmet May 29, 2023
22a2563
tidy up
andrewparmet May 29, 2023
2da9ec4
fix
andrewparmet May 29, 2023
d245eec
tidy more
andrewparmet May 29, 2023
5b34a24
finish client calls v1
andrewparmet May 30, 2023
2c3d353
clean up client calls
andrewparmet May 30, 2023
baac5ed
tidy
andrewparmet May 30, 2023
7c19155
whitespace
andrewparmet May 30, 2023
c1eab8c
client streaming and db impl for node
andrewparmet Jun 1, 2023
d83e786
flush out tests and clients
andrewparmet Jun 4, 2023
70f0c44
multiplatform examples protos
andrewparmet Jun 4, 2023
1514a84
move todos to better location
andrewparmet Jun 4, 2023
345d162
update readmes
andrewparmet Jun 5, 2023
ec8943d
toc
andrewparmet Jun 5, 2023
e172b6f
more readme updates
andrewparmet Jun 5, 2023
622d851
more updates
andrewparmet Jun 5, 2023
cd0e6fe
more readme
andrewparmet Jun 5, 2023
9c3e7de
most of the way towards repackaging; have to implement grpc kotlin ge…
andrewparmet Jun 9, 2023
965d90f
more
andrewparmet Jun 9, 2023
216daa5
nearly complete
andrewparmet Jun 11, 2023
b8c4dd9
api dump
andrewparmet Jun 11, 2023
3c5bd70
get it working
andrewparmet Jun 11, 2023
95002ca
clean up generator options
andrewparmet Jun 11, 2023
7e5c833
api dump
andrewparmet Jun 11, 2023
2d3c436
fix integration
andrewparmet Jun 11, 2023
a21a36d
fix generation for third party
andrewparmet Jun 11, 2023
4a1c45e
allow generation of grpc-kotlin only
andrewparmet Jun 11, 2023
015839d
cleanup dependencies
andrewparmet Jun 11, 2023
9c74c38
fix grpc examples
andrewparmet Jun 11, 2023
7b9ad99
text cleanup
andrewparmet Jun 11, 2023
8ef65d0
fix tests
andrewparmet Jun 11, 2023
5db7246
don't publish grpc-kotlin shim
andrewparmet Jun 12, 2023
6f66f54
fix some license removals
andrewparmet Jun 12, 2023
5d24f1d
update readme
andrewparmet Jun 12, 2023
51ebe54
fix word
andrewparmet Jun 12, 2023
d960163
easy upgrades
andrewparmet Jul 17, 2023
8d6e247
Merge branch 'main' into make-runtime-multiplatform-compatible
andrewparmet Aug 16, 2023
03e48e0
add bytes todo
andrewparmet Aug 28, 2023
02a2e50
wrapper type integration test; clean up integration test deps; upgrad…
andrewparmet Sep 2, 2023
ccbca27
upgrade to protobuf gradle 0.9.4 (#12)
andrewparmet Sep 4, 2023
ebbb795
Merge branch 'main' into make-runtime-multiplatform-compatible
andrewparmet Sep 4, 2023
3f0ef88
fix paren
andrewparmet Sep 4, 2023
b46da20
move versions around
andrewparmet Sep 4, 2023
5a13825
delete old file
andrewparmet Sep 4, 2023
badc3b3
toolchain resolver for integration test
andrewparmet Sep 4, 2023
bd70d96
remove bad merge file
andrewparmet Sep 4, 2023
5e19398
some buildscript cleanup
andrewparmet Sep 7, 2023
4825d2a
further cleanup
andrewparmet Sep 7, 2023
e1f057f
amend comment
andrewparmet Sep 7, 2023
17efc58
remove line that does not seem to do anything
andrewparmet Sep 7, 2023
af99080
use libs hack
andrewparmet Sep 7, 2023
2c38b45
delete unneeded manual implementations in legacy jvm code
andrewparmet Sep 7, 2023
c90f804
api dump
andrewparmet Sep 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
61 changes: 55 additions & 6 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
version: 2.1

orbs:
node: circleci/[email protected]

parameters:
benchmarks:
type: boolean
Expand All @@ -16,7 +19,7 @@ executors:
- image: alvrme/alpine-android:android-31-jdk<<parameters.jdk>>
environment:
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
resource_class: medium+
resource_class: large

commands:
read_cache:
Expand All @@ -43,6 +46,22 @@ jobs:
steps:
- checkout
- read_cache
- node/install

- run:
name: Install protobufjs
command: |
npm install [email protected]

- run:
name: Install long.js
command: |
npm install [email protected]

- run:
name: Install Firefox
command: |
apk add firefox

- run:
name: Build and test
Expand Down Expand Up @@ -72,6 +91,7 @@ jobs:

- store_test_results:
path: ~/test-results

- store_artifacts:
path: ~/test-results/junit

Expand All @@ -89,22 +109,51 @@ jobs:
steps:
- checkout
- read_cache
- node/install

- run:
name: Install protobufjs
command: |
npm install [email protected]

- run:
name: Install long.js
command: |
npm install [email protected]

- run:
name: Install Firefox
command: |
apk add firefox

- attach_workspace:
at: build/repos

- run:
name: Integration tests
command: cd gradle-plugin-integration-test && ./gradlew clean build -Dkotlin.version=<<parameters.kotlin>> --stacktrace
command: cd gradle-plugin-integration-test && ./gradlew clean build -Dkotlin-integration.version=<<parameters.kotlin>> -Djava-integration.version=<<parameters.jdk>> --stacktrace

- run:
name: Save test results
command: |
mkdir -p ~/test-results/junit/
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/junit/ \;
when: always

- store_test_results:
path: ~/test-results

- store_artifacts:
path: ~/test-results/junit

release:
executor: builder
steps:
- checkout
- read_cache
- run:
name: Publish release
command: "./gradlew build -x test publishToRemote publishPlugins -Dorg.gradle.internal.http.socketTimeout=120000 -Dorg.gradle.internal.network.retry.max.attempts=1 -Dorg.gradle.internal.publish.checksums.insecure=true"
name: Publish release
command: "./gradlew publish publishPlugins -Dorg.gradle.internal.http.socketTimeout=120000 -Dorg.gradle.internal.network.retry.max.attempts=1 -Dorg.gradle.internal.publish.checksums.insecure=true"
- run:
name: Finalize release
command: "./gradlew closeAndReleaseRepository -Dorg.gradle.internal.http.socketTimeout=120000 -Dorg.gradle.internal.network.retry.max.attempts=1 -Dorg.gradle.internal.publish.checksums.insecure=true"
Expand All @@ -121,8 +170,8 @@ workflows:
- build
matrix:
parameters:
jdk: ["8", "11", "17"]
kotlin: ["1.6.21", "1.7.21", "1.8.22"]
jdk: ["11", "17"]
kotlin: ["1.8.22", "1.9.10"]
- release:
context: OSS
filters:
Expand Down
7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,8 @@ out
.idea
*.iml

testing/conformance-driver/failing_tests.txt
protokt-codegen/src/test/resources/com/toasttab/protokt/test-proto-bin-request.bin
testing/conformance/runner/failing_tests.txt
protokt-codegen/src/test/resources/protokt/v1/codegen/test-proto-bin-request.bin
node_modules/
package-lock.json
package.json
Loading