Comments (5)
as far as I'm concerned Values is in maintenance mode. Whilst I agree with this issue, and think that behaviour isn't the best, I also don't want to break users applications who may rely on this.
from values.
@tcrayford No worries. Since you responded (Hi Tom! Been a while, hope you're well!), may I ask: would you be open to my forking the existing Values gem to allow the codebase to continue, while leaving your original gem alone?
For example, i was considering naming such a fork "values2" and starting the version at 2.0.0.
Alternatively, to avoid a fork: I'd be happy to take over maintenance of this gem, and using Semantic Versioning, restrict any and all breaking changes to a 2.x.y series of versions.
Your thoughts would be greatly appreciated,
-Marc
from values.
Hi Marc,
I'd be ok with a fork, but would rather it doesn't use the Values
name. I still use this gem a bunch, just don't have any desire to change it, and want to retain ownership of the name.
from values.
Hi Tom, thanks for responding!
If you have another minute to think about this, I do have a couple more questions to help me understand what would work better for you.
Background
In my experience, when gems, and software projects in general, reach the end of their original development life cycle, generally what forks have done is to pick up in the same namespace and code where the original left off (ie to have class called Value
), and to aim to have an easy path to switch between, the original and forked version of the dependency. To make it extra explicit and helpful, I've observed it's great to start a Semantic Versioning version after the original version, to signal the level of backwards-compatibility users can expect in the fork. But this is often not observed, and many long-running forks have overlapping version numbers with the original, which is a pain.
Proposal
Can you say a little bit more about any downsides you are seeing, if any, in the following type of fork:
- I fork the existing repo and continue development in my fork
- I make a new gem, which is an alternative to using the original
values
gem, from this repo - The new gem starts at version 2.0.0, a semantic version ahead of the original, signaling backwards-incompatible changes, and not conflicting with any original gem versions
- The new gem aims for as much backwards compatibility as possible within this framework
Very interested in doing this in a way that is best for both of us (and all gem users)
from values.
Hopes and dreams
If possible, I'd really like to have what you might call an "officially amiable fork", and propose the following structure that would be really awesome:
- You, as the original author, approve of the existence of the new fork, and perhaps contribute to design discussions as your interest and time allow
- I, as the fork maintainer, do not disparage or in any way harm the reputation of the original, and have a clear explanatory document outlining the reasons for the fork, and the differences users can expect to find in each codebase
- Users are provided code, artifacts, and documentation which, as much as possible, makes it feasible and friendly to switch back and forth between implementations
from values.
Related Issues (18)
- Values vs. Virtus::ValueObject HOT 3
- Precompute hash HOT 1
- Release? HOT 6
- Validating keys passed to .with HOT 1
- Want to use this as a base for next version of Rumonade HOT 5
- Please register for Travis CI and enable this repo HOT 1
- Please register for Codecov.io and enable this repo HOT 8
- A recursive version of `to_h` HOT 5
- How to best document value classes with yard?
- No indentation with ruby's PP (pretty print) HOT 1
- Inheritance and Optional Attributes HOT 4
- Attributes are mutable when using mutating method HOT 2
- Too easy to get inconsistent `#hash` and `#eql?` methods
- should Values implement #to_hash? HOT 2
- Update method[s]? HOT 2
- Publish v1.9.0 HOT 1
- Remove freeze? HOT 4
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 values.