Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: twitter/bijection
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.9.5
Choose a base ref
...
head repository: twitter/bijection
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: develop
Choose a head ref
Loading
Showing with 4,352 additions and 2,664 deletions.
  1. +7 −0 .github/dependabot.yml
  2. +19 −0 .github/workflows/release.yml
  3. +3 −1 .gitignore
  4. +15 −1 .scalafmt.conf
  5. +34 −14 .travis.yml
  6. +3 −0 CHANGES.md
  7. +4 −2 COMMITTERS.md
  8. +4 −4 README.md
  9. +207 −133 bijection-avro/src/main/scala/com/twitter/bijection/avro/AvroCodecs.scala
  10. +26 −21 bijection-avro/src/test/java/avro/FiscalRecordScala.scala
  11. +2 −2 bijection-avro/src/test/scala/com/twitter/bijection/avro/GenericAvroCodecLaws.scala
  12. +5 −5 bijection-avro/src/test/scala/com/twitter/bijection/avro/GenericAvroCodecsSpecification.scala
  13. +7 −4 bijection-avro/src/test/scala/com/twitter/bijection/avro/SpecificAvroCodecLaws.scala
  14. +5 −4 bijection-avro/src/test/scala/com/twitter/bijection/avro/SpecificAvroCodecsSpecification.scala
  15. +2 −1 bijection-clojure/codegen/Generator.scala
  16. +95 −0 bijection-clojure/codegen/GeneratorWorkaroundJava.scala
  17. +25 −0 bijection-clojure/codegen/GeneratorWorkaroundScala.scala
  18. +676 −0 bijection-clojure/src/main/scala-2.12-/com/twitter/bijection/clojure/GeneratedIFnBijections.scala
  19. +101 −0 bijection-clojure/src/main/scala-2.13+/com/twitter/bijection/clojure/GeneratedIFnBijections.scala
  20. +602 −0 bijection-clojure/src/main/scala-2.13+/com/twitter/bijection/clojure/Workaround11770.java
  21. +2 −1 bijection-clojure/src/main/scala/com/twitter/bijection/clojure/ClojureBijections.scala
  22. +0 −154 bijection-clojure/src/main/scala/com/twitter/bijection/clojure/GeneratedIFnBijections.scala
  23. +4 −5 bijection-clojure/src/test/scala/com/twitter/bijection/clojure/ClojureBijectionLaws.scala
  24. +2 −2 bijection-core/src/main/java/com/twitter/bijection/codec/Base64.java
  25. +146 −0 bijection-core/src/main/scala-2.12-/com/twitter/bijection/Bijection.scala
  26. +60 −0 bijection-core/src/main/scala-2.12-/com/twitter/bijection/BufferableVersionSpecific.scala
  27. +21 −18 bijection-core/src/main/{scala → scala-2.12-}/com/twitter/bijection/CollectionBijections.scala
  28. +99 −0 bijection-core/src/main/scala-2.12-/com/twitter/bijection/CollectionInjections.scala
  29. +30 −27 bijection-core/src/main/{scala → scala-2.12-}/com/twitter/bijection/StringBijections.scala
  30. +38 −95 bijection-core/src/main/{scala → scala-2.13+}/com/twitter/bijection/Bijection.scala
  31. +68 −0 bijection-core/src/main/scala-2.13+/com/twitter/bijection/BufferableVersionSpecific.scala
  32. +219 −0 bijection-core/src/main/scala-2.13+/com/twitter/bijection/CollectionBijections.scala
  33. +24 −32 bijection-core/src/main/{scala → scala-2.13+}/com/twitter/bijection/CollectionInjections.scala
  34. +105 −0 bijection-core/src/main/scala-2.13+/com/twitter/bijection/StringBijections.scala
  35. +2 −3 bijection-core/src/main/scala/com/twitter/bijection/AtomicSharedMutable.scala
  36. +82 −0 bijection-core/src/main/scala/com/twitter/bijection/Bijections.scala
  37. +11 −8 bijection-core/src/main/scala/com/twitter/bijection/BinaryBijections.scala
  38. +59 −115 bijection-core/src/main/scala/com/twitter/bijection/Bufferable.scala
  39. +1 −1 bijection-core/src/main/scala/com/twitter/bijection/ClassBijection.scala
  40. +11 −10 bijection-core/src/main/scala/com/twitter/bijection/ClassInjection.scala
  41. +21 −16 bijection-core/src/main/scala/com/twitter/bijection/Conversion.scala
  42. +47 −45 bijection-core/src/main/scala/com/twitter/bijection/EnglishInt.scala
  43. +2 −3 bijection-core/src/main/scala/com/twitter/bijection/ImplicitBijection.scala
  44. +33 −37 bijection-core/src/main/scala/com/twitter/bijection/Injection.scala
  45. +3 −4 bijection-core/src/main/scala/com/twitter/bijection/Inversion.scala
  46. +9 −11 bijection-core/src/main/scala/com/twitter/bijection/InversionFailure.scala
  47. +4 −7 bijection-core/src/main/scala/com/twitter/bijection/JavaSerializationInjection.scala
  48. +13 −9 bijection-core/src/main/scala/com/twitter/bijection/ModDivInjection.scala
  49. +1 −2 bijection-core/src/main/scala/com/twitter/bijection/NumberSystems.scala
  50. +0 −3 bijection-core/src/main/scala/com/twitter/bijection/NumericBijections.scala
  51. +0 −2 bijection-core/src/main/scala/com/twitter/bijection/NumericInjections.scala
  52. +36 −45 bijection-core/src/main/scala/com/twitter/bijection/Pivot.scala
  53. +4 −4 bijection-core/src/main/scala/com/twitter/bijection/Rep.scala
  54. +9 −7 bijection-core/src/main/scala/com/twitter/bijection/StringInjections.scala
  55. +20 −9 bijection-core/src/main/scala/com/twitter/bijection/TypeclassBijection.scala
  56. +9 −12 bijection-core/src/main/scala/com/twitter/package.scala
  57. +11 −7 bijection-core/src/test/java/com/twitter/bijection/TestBijectionInJava.java
  58. +3 −3 bijection-core/src/test/scala/com/twitter/bijection/AsSyntax.scala
  59. +46 −42 bijection-core/src/test/scala/com/twitter/bijection/BaseProperties.scala
  60. +2 −2 bijection-core/src/test/scala/com/twitter/bijection/BinaryBijectionLaws.scala
  61. +17 −27 bijection-core/src/test/scala/com/twitter/bijection/BufferableLaws.scala
  62. +7 −6 bijection-core/src/test/scala/com/twitter/bijection/CheckProperties.scala
  63. +44 −22 bijection-core/src/test/scala/com/twitter/bijection/CollectionLaws.scala
  64. +8 −9 bijection-core/src/test/scala/com/twitter/bijection/EnglishIntLaws.scala
  65. +48 −65 bijection-core/src/test/scala/com/twitter/bijection/NumericBijectionLaws.scala
  66. +14 −15 bijection-core/src/test/scala/com/twitter/bijection/StringBijectionLaws.scala
  67. +0 −12 bijection-core/src/test/scala/com/twitter/bijection/TupleBijectionLaws.scala
  68. +11 −28 bijection-core/src/test/scala/com/twitter/bijection/TypeclassBijectionLaws.scala
  69. +25 −23 bijection-finagle-mysql/src/main/scala/com/twitter/bijection/finagle_mysql/MySqlConversions.scala
  70. +13 −12 bijection-finagle-mysql/src/test/scala/com/twitter/bijection/finagle_mysql/MySqlConversionLaws.scala
  71. +25 −27 bijection-guava/src/main/scala/com/twitter/bijection/guava/GuavaBijections.scala
  72. +7 −6 bijection-guava/src/main/scala/com/twitter/bijection/guava/GuavaBinaryBijections.scala
  73. +6 −13 bijection-guava/src/test/scala/com/twitter/bijection/guava/GuavaBijectionLaws.scala
  74. +2 −5 bijection-guava/src/test/scala/com/twitter/bijection/guava/GuavaBinaryBijectionsLaws.scala
  75. +5 −6 bijection-hbase/src/main/scala/com/twitter/bijection/hbase/HBaseInjections.scala
  76. +3 −4 bijection-hbase/src/test/scala/com/twitter/bijection/hbase/HBaseInjectionsLaws.scala
  77. +6 −5 bijection-hbase/src/test/scala/com/twitter/bijection/hbase/HBaseInjectionsSpecifications.scala
  78. +0 −3 bijection-jodatime/src/main/scala/com/twitter/bijection/jodatime/DateBijections.scala
  79. +1 −3 bijection-jodatime/src/main/scala/com/twitter/bijection/jodatime/DateInjections.scala
  80. +6 −24 bijection-jodatime/src/test/scala/com/twitter/bijection/jodatime/DateBijectionLaws.scala
  81. +54 −0 bijection-json/src/main/scala-2.12-/com/twitter/bijection/json/CollectionJson.scala
  82. +56 −0 bijection-json/src/main/scala-2.13+/com/twitter/bijection/json/CollectionJson.scala
  83. +32 −59 bijection-json/src/main/scala/com/twitter/bijection/json/JsonInjection.scala
  84. +2 −6 bijection-json/src/main/scala/com/twitter/bijection/json/UnparsedJson.scala
  85. +9 −15 bijection-json/src/test/scala/com/twitter/bijection/json/JsonInjectionLaws.scala
  86. +20 −11 bijection-json4s/src/main/scala/com/twitter/bijection/json4s/Json4sInjections.scala
  87. +2 −1 bijection-json4s/src/main/scala/com/twitter/bijection/json4s/package.scala
  88. +23 −15 bijection-json4s/src/test/scala/com/twitter/bijection/json4s/Json4sInjectionLaws.scala
  89. +4 −2 bijection-macros/src/main/scala/com/twitter/bijection/macros/MacroAnnotations.scala
  90. +0 −1 bijection-macros/src/main/scala/com/twitter/bijection/macros/MacroImplicits.scala
  91. +5 −7 bijection-macros/src/main/scala/com/twitter/bijection/macros/Macros.scala
  92. +39 −28 bijection-macros/src/main/scala/com/twitter/bijection/macros/impl/CaseClassToMap.scala
  93. +48 −41 bijection-macros/src/main/scala/com/twitter/bijection/macros/impl/CaseClassToTuple.scala
  94. +3 −4 bijection-macros/src/main/scala/com/twitter/bijection/macros/impl/IsCaseClassImpl.scala
  95. +11 −9 bijection-macros/src/main/scala/com/twitter/bijection/macros/impl/TryMacros.scala
  96. +6 −6 bijection-macros/src/main/scala/com/twitter/bijection/macros/impl/TupleUtils.scala
  97. +9 −7 bijection-macros/src/test/scala/com/twitter/bijection/macros/MacroDepHygiene.scala
  98. +94 −107 bijection-macros/src/test/scala/com/twitter/bijection/macros/MacroPropTests.scala
  99. +6 −7 bijection-macros/src/test/scala/com/twitter/bijection/macros/MacroUnitTests.scala
  100. +18 −17 bijection-macros/src/test/scala/com/twitter/bijection/macros/TestHelpers.scala
  101. +2 −2 bijection-netty/src/main/scala/com/twitter/bijection/netty/ChannelBufferBijection.scala
  102. +5 −4 bijection-protobuf/src/main/scala/com/twitter/bijection/protobuf/ProtobufCodecs.scala
  103. +5 −8 bijection-protobuf/src/test/scala/com/twitter/bijection/protobuf/ProtobufCodecLaws.scala
  104. +5 −4 bijection-scrooge/src/main/scala/com/twitter/bijection/scrooge/ScroogeCodecs.scala
  105. +3 −9 bijection-scrooge/src/main/scala/com/twitter/bijection/scrooge/TBinaryProtocol.scala
  106. +1 −4 bijection-scrooge/src/test/scala/com/twitter/bijection/scrooge/ScroogeCodecLaws.scala
  107. +19 −21 bijection-scrooge/src/test/scala/com/twitter/bijection/scrooge/TestStruct.scala
  108. +17 −2 bijection-thrift/src/main/scala/com/twitter/bijection/thrift/TArrayBinaryProtocol.scala
  109. +7 −2 bijection-thrift/src/main/scala/com/twitter/bijection/thrift/TArrayByteTransport.scala
  110. +26 −39 bijection-thrift/src/main/scala/com/twitter/bijection/thrift/ThriftCodecs.scala
  111. +4 −5 bijection-thrift/src/test/scala/com/twitter/bijection/thrift/ThriftCodecLaws.scala
  112. +35 −32 bijection-util/src/main/scala/com/twitter/bijection/twitter_util/JavaFutureConverter.scala
  113. +9 −7 bijection-util/src/main/scala/com/twitter/bijection/twitter_util/ScalaFuturePool.scala
  114. +2 −2 bijection-util/src/main/scala/com/twitter/bijection/twitter_util/TwitterExecutionContext.scala
  115. +88 −53 bijection-util/src/main/scala/com/twitter/bijection/twitter_util/UtilBijections.scala
  116. +46 −30 bijection-util/src/test/scala/com/twitter/bijection/twitter_util/UtilBijectionLaws.scala
  117. +261 −229 build.sbt
  118. +7 −6 project/BufferableGenerator.scala
  119. +16 −14 project/Generator.scala
  120. +0 −52 project/ScalaFmt.scala
  121. +1 −1 project/build.properties
  122. +5 −12 project/plugins.sbt
  123. +0 −534 sbt
  124. +0 −1 version.sbt
7 changes: 7 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version: 2
updates:

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
19 changes: 19 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Release
on:
push:
branches: [develop]
tags: ["*"]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: olafurpg/setup-scala@v13
- uses: olafurpg/setup-gpg@v3
- name: Publish ${{ github.ref }}
run: sbt ci-release
env:
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
PGP_SECRET: ${{ secrets.PGP_SECRET }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -23,7 +23,7 @@ sonatype.sbt
/bin/
/sandbox/

# eclipse, intellij
# eclipse, intellij, metals, bloop
/.classpath
/.project
/src/intellij/*.iml
@@ -33,6 +33,8 @@ sonatype.sbt
/.idea
/.settings
.idea_modules
.metals
.bloop

# bak files produced by ./cleanup-commit
*.bak
16 changes: 15 additions & 1 deletion .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -1 +1,15 @@
maxColumn = 100
version = 3.5.8
maxColumn = 100

docstrings.blankFirstLine = "yes"

runner.dialect = scala213

fileOverride {
"glob:**/*.sbt" {
runner.dialect = sbt1
}
"glob:**/src/{main,test}/scala-2.12-/**" {
runner.dialect = scala212
}
}
48 changes: 34 additions & 14 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -2,26 +2,46 @@ language: scala
sudo: false
matrix:
include:
- scala: 2.10.6
script: ./sbt "+++$TRAVIS_SCALA_VERSION clean" "+++$TRAVIS_SCALA_VERSION test" "+++$TRAVIS_SCALA_VERSION mimaReportBinaryIssues"
- scala: 2.11.12
jdk: openjdk8
script:
- >
sbt
"++$TRAVIS_SCALA_VERSION clean"
"++$TRAVIS_SCALA_VERSION test"
- scala: 2.11.8
jdk: oraclejdk8
script: ./sbt ++$TRAVIS_SCALA_VERSION clean coverage scalafmtTest test coverageReport mimaReportBinaryIssues
- scala: 2.13.8
jdk: openjdk8
script:
- >
sbt
"++$TRAVIS_SCALA_VERSION clean"
"++$TRAVIS_SCALA_VERSION test"
- name: scalafmtCheck
scala: 2.12.15
jdk: openjdk8
script: sbt scalafmtCheckAll scalafmtSbtCheck

- scala: 2.12.15
jdk: openjdk8
script:
- >
sbt
coverage
"++$TRAVIS_SCALA_VERSION clean"
"++$TRAVIS_SCALA_VERSION test"
"++$TRAVIS_SCALA_VERSION coverageReport"
"++$TRAVIS_SCALA_VERSION mimaReportBinaryIssues"
after_success:
- bash <(curl -s https://codecov.io/bash)

- scala: 2.12.1
jdk: oraclejdk8
script: ./sbt ++$TRAVIS_SCALA_VERSION clean test

cache:
directories:
- $HOME/.sbt/0.13/dependency
- $HOME/.sbt/boot/scala*
- $HOME/.sbt/launchers
- $HOME/.ivy2/cache
- $HOME/.nvm
- $HOME/.sbt/boot/scala*
- $HOME/.sbt/launchers
- $HOME/.ivy2/cache
- $HOME/.nvm

before_cache:
- du -h -d 1 $HOME/.ivy2/cache
3 changes: 3 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Bijection #

### 0.9.8
* Use TArrayByteTransport for thrift deserialization for both compact and binary protocols

### 0.9.2
* Fix issue with `Injection[String, Array[Byte]].invert` for arrays more than `2^(24)` in size: https://github.com/twitter/bijection/pull/243

6 changes: 4 additions & 2 deletions COMMITTERS.md
Original file line number Diff line number Diff line change
@@ -8,12 +8,14 @@ Please see our [Project Governance](https://github.com/twitter/analytics-infra-g
|------------------------|-----------------------------------------------------------|
| Alex Levenson | [@isnotinvain](https://github.com/isnotinvain) |
| Ben Pence | [@benpence](https://github.com/benpence) |
| Erik Osheim | [@non](https://github.com/non) |
| Ian O'Connell | [@ianoc](https://github.com/ianoc) |
| Joe Nievelt | [@jnievelt](https://github.com/jnievelt) |
| Oscar Boykin | [@johnynek](https://github.com/johnynek) |
| Pankaj Gupta | [@pankajroark](https://github.com/pankajroark) |
| Piyush Narang | [@piyushnarang](https://github.com/piyushnarang) |
| Ruban Monu | [@rubanm](https://github.com/rubanm) |
| Sam Ritchie | [@sritchie](https://github.com/sritchie) |
| Sriram Krishnan | [@sriramkrishnan](https://github.com/sriramkrishnan) |
| Travis Brown | [@travisbrown](https://github.com/travisbrown) |

##Emeritus
## Emeritus
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ A Bijection is an invertible function that converts back and forth between two t
the contract that a round-trip through the Bijection will bring back the original object. Moreover,
the inverse has the same property.

See the [current API documentation](http://twitter.github.com/bijection) for more information.
See the [current API documentation](http://twitter.github.io/bijection) for more information.

## Examples:

@@ -148,7 +148,7 @@ A list of contributors to the project can be found here: [Contributors](https://

## Maven

Bijection modules are available on maven central. The current groupid and version for all modules is, respectively, `"com.twitter"` and `0.9.5`.
Bijection modules are available on maven central. The current groupid and version for all modules is, respectively, `"com.twitter"` and `0.9.7`.

Current published artifacts are

@@ -164,9 +164,9 @@ Current published artifacts are
* `bijection-avro`
* `bijection-hbase`

Every artifact is published against Scala `"2.10"`, `"2.11"` and `"2.12"`. To pull in the jars, make sure to add your desired scala version as a suffix, ie:
Every artifact is published against Scala `"2.11"`, `"2.12"` and `"2.13"`. To pull in the jars, make sure to add your desired scala version as a suffix, ie:

`bijection-core_2.10` or `bijection-core_2.11` or `bijection-core_2.12`.
`bijection-core_2.11` or `bijection-core_2.12` or `bijection-core_2.13`.

## Chat
[![Gitter](https://badges.gitter.im/twitter/bijection.svg)](https://gitter.im/twitter/bijection?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
Loading