Comments (7)
+1
Maybe Option could be an option ?
I hope there will be support for this.
from pickling.
Probably already checked, but FYI just in case: Schema evolution in Avro, Protocol Buffers and Thrift
from pickling.
At the moment it is necessary to create custom picklers to deal with schema evolution (for example, a custom pickler could unpickle older versions of a message, but create instances of newer versions).
However, it is possible to create new pickle formats which are more evolution-friendly, for example, by including something akin to Protobuf's field tags (the blog post linked above explains well how these tags help with schema evolution). Adding an evolution-friendly variant of the binary pickle format would be very useful, indeed.
from pickling.
Thanks for your advice, @phaller. At least, default parameter support will provide some basic compatibility out of the box, but it seems difficult without additional annotation until SI-5920 is resolved.
I decided to go with Protobuf for now but will keep eyes on Pickler looking for what I can contribute.
from pickling.
Since 0.10.0 came out I was looking at pickling for use to persist messages and was thinking about how schema evolutions would happen. Sadly this test I wrote didn't pass, but I'm mentioning it here to see if now that some of those PR's in the SI have been merged if it's likely for pickling to have support for handling default methods. It looks like it'll be fixed in scalac in 2.11.6?
https://github.com/adamdecaf/pickling-migration-test/blob/master/src/main/scala/Add.scala
Deleting fields works though!
from pickling.
In https://github.com/sbt/serialization we support Option fields that can be missing.
from pickling.
It would be totally awesome if schema evolution came about. It currently is the thing keeping us back from using pickling. @adamdecaf's outlined usecases pretty much sum up the hoped-for functionality for now.
protobuf/avro/thrift was mentioned before, but it is just not cutting it in a pure scala-based environment due to the lack of support for e.g. polymorphism, drastically cutting down the flexibility that scala offers.
So, very keen to get an update on this 😄
from pickling.
Related Issues (20)
- Improve performance of implicit search HOT 3
- StaticOnly should be enabled by default HOT 2
- Refined types should be supported HOT 1
- Cut first milestone release HOT 13
- Add picklers and unpickler for Nothing HOT 1
- Variadic arguments for case class HOT 4
- Remove patmat warnings HOT 1
- Can't unpickle ValueSet HOT 2
- Pickling 0.10.2-SNAPSHOT for Scala 2.10
- Compile time serialisation failing for nested case classes with Scala 2.10.6 HOT 2
- Error when saving a Map of Int and a Composite
- java.lang.VerifyError: Bad type on operand stack while encapsulating Pickler
- Some macro in PicklerUnpickler is not serializable
- Deserialization in incorrect type
- Consider dropping or updating the link to http://lampwww.epfl.ch/~hmiller/pickling
- Unpickle without specifying type HOT 1
- Is this project abandoned? HOT 14
- Incorrect handling of Option[xxx] if None HOT 13
- val from trait not pickled
- Pickling fails with a weird issue
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pickling.