Comments (2)
I suppose this is not implemented yet because it will make every package in Pharo change on every commit when these changes got merged.
So I will propose to do the following:
- Add some metadata to
.properties
file to indicate the tonel format version, and defaulting to the current behavior in case a version is not specified. Eg:{ #format : 'tonel', #formatVersion: '2.0' }
- Use this information to decide which version of the tonel writer to use
- Change the first-time creation of the properties file to use the newest format version available, so new projects will start with the most updated one.
This way projects wanting to use the new format features can adopt them without disrupting projects on prior versions.
And paves a way for the future evolution of the format.
I think in the case of Tonel we need to apply the Robustenss principle, and produce an output that is as deterministic as possible (via the TonelWriter) but be more lenient on the input (via the TonelReader).
If we must produce a new format version I will say we need to consider #99 also.
@tesonep @estebanlm @dalehenrich @eMaringolo @guillep what do you think?
from tonel.
Most of the tonel readers will read any format and covert to the "correct" format internally (I think that is part of the tonel spec as well), but all tonel writers should write in the agreed upon format moving forward ... The longer that we wait to start writing the correct format, the bigger the problem will become ... So bite the bullet and fix the problem now and provide patches for all of the active versions of Pharo that are using tonel, so that the issues will be mitigated in short order ...
I just noticed that Pharo (randomly?) writes mixed Strings and Symbols as values ...this was written 8 days ago and this was written 19 days ago ... hint look at the category field
from tonel.
Related Issues (20)
- Tonel cannot write the attach method
- Conversion from filetree to tonel: package wrongly converted HOT 5
- Tonel ignores MCVersion package name
- Tonel breaks with dots after selector
- Shadow variable in TonelWriter
- Tonel does not check for duplicated methods in .tonel file HOT 1
- TonelWriter should use traceCr: HOT 2
- TonelWriter>>writeSnapshot: includes tag name in package name when there's no OrganizationDefinition HOT 1
- Improve can't parse error
- Missing License
- STON should depend on GitHub STON not STHub STON HOT 1
- Read/write problem when a method has certain "unfinished statements" HOT 3
- Category cleanups and alignments
- Better error report
- TonelWriter uses the platform line ending HOT 3
- run tests on github actions HOT 1
- Tonel should not use MonticelloMocks package - but have own mocks
- Cleanup: Condense MonticelloTonel packages
- Check that there is no user of withSqueakLineEndings or friends
- Tonel doesn't support custom #compilerClass
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 tonel.