Comments (10)
bigdecimal doesn’t employ semantic versioning.
from bigdecimal.
it shouldn't be removed until Ruby 3.0 because it's a backwards incompatible change?
No, I don't think so because bigdecimal is just a standard library, but not ruby's core.
I have a plan to release version 1.5.0 with removing BigDecimal.new.
I'll import the latest version of bigdecimal in Ruby 2.7.
Users can control what version of bigdecimal is used by calling gem
method or writing the version contraint in Gemfile.
from bigdecimal.
If you are using semantic versioning you should not remove public interface in minor version bump. It should be 2.0.0 release to change or remove existing interface in backwards incompatible way.
from bigdecimal.
An awful lot of people will use ~>
versioning as semantic versioning is the norm in Ruby. I urge you to reconsider making a breaking change like this in a minor release, after all whats a version number? Releasing a 2.0.0
for a change like this in a core library has little in the way of downside and enormous upsides for the community.
from bigdecimal.
Good idea. A lot of code depends on this. In theory, it shouldn't be removed until Ruby 3.0 because it's a backwards incompatible change?
from bigdecimal.
What kind of versioning does it use?
from bigdecimal.
All I can say, is that I agree that:
- We should be using semantic versioning.
- Removing a public method in a minor version bump is unexpected and broke stuff.
- Some level of compatibility is required going forward.
from bigdecimal.
I think it is good idea that version 2.0.0 follows version 1.4.0 because I can release bigdecimal 3.0.0 when CRuby 3.0 is released.
So, these are my decision:
- bigdecimal doesn't employ semantic versioning.
- The version after 1.4.0 is 2.0.0, and it will be released soon after CRuby version 2.6.
- The second digit of the version number is increased every year according to CRuby's version (e.g. bigdecimal 2.1.0 will be released with CRuby 2.7)
- The version 3.0.0 will be released with CRuby version 3.0.
from bigdecimal.
This issue was closed and isn't about versioning topic.
I don't want to continue to talk about versioning here, so I lock this issue.
from bigdecimal.
I've created https://bugs.ruby-lang.org/issues/15456 for further discussion. I invite everyone to get involved.
from bigdecimal.
Related Issues (20)
- BUG: BigDecimal#precision returns a wrong result when the number consists of single DECDIG
- Method BigDecimal: precision too large. (ArgumentError) HOT 2
- Method BigDecimal: 0 digits algorithm HOT 2
- Accept a Float value in BigDecimal#div when a precision is given HOT 2
- BigDecimal should accept a Float value without a precision
- BigDecimal#quo should accept a precision argument
- "ERROR(VpDivd): space for remainder too small" for certain division HOT 3
- Exponential growth in precision causing memory usage to spike as of 3.1.2 HOT 5
- ERROR(VpDivd): space for remainder too small
- BigDecimal#round raises FloatDomainError regardless of exception mode HOT 2
- Comparison failure: 9.8.abs <= BigDecimal('9.8') => false HOT 4
- Inconsistent max precision affecting dump&load result HOT 4
- Inconsistency between Bigdecimal 3.0.x and 3.1.x HOT 4
- BigDecimal#n_significant_digits and #precision do not return the correct value HOT 1
- I would expect BigDecimal#divmod to return type [Int, BigDecimal] (like Integer#divmod, Float#divmod)
- mode(BigDecimal::EXCEPTION_ALL,true) did not throw an exception when bigdecimal#exponent overflowed HOT 1
- Integrate JRuby implementation into the gem
- Loss of precision on very large numbers in `to_d` HOT 1
- Incorrect calculation result after upgrading from BigDecimal 3.1.1 to 3.1.2 HOT 1
- Difference in behavior with and without BigDecimal#dev 'digit' argument
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 bigdecimal.