Comments (3)
The deprecated constants aren't supposed to be loaded except via the very old files e.g. lib/parts.rb
. Can you explain what you think the behaviour should be?
from multipart-post.
As 2.3.0 was a new minor version, I would expect it to be backwards compatible with 2.2.3. I was even prepared for the eventuality of changing those constants:
# multipart-post 3.x will likely move classes we depend on into namespaces
s.add_runtime_dependency "multipart-post", "~> 2.1"
I wasn't aware that there were alternatives available when I first added that comment/version pin (I don't think they had been published yet). I was depending on ::Multipartable
, after requiring net/http/post/multipart
. Once I upgraded to 2.3.0
, my code could not find the ::Multipartable
constant anymore, which broke it. I had to make a change to keep using the new minor version. Had it been a major version update it would have been fine.
It's typical, per semver (and I'm making an assumption here that the intent is to follow it), to not remove constants/methods/do other breaking changes that require code changes in efferents. So, that's what I would have expected--that those constants continue be defined when requiring the same file(s) they were previously defined by.
from multipart-post.
Ahh, I understand.
Yes, it was a little tricky and I didn't do it perfectly.
The original implementation had ::Parts
defined in lib/parts.rb
. We moved the constant into lib/multipart/post/parts.rb
and also put the deprecated constant in that file. In retrospect, we should have left it in parts.rb
because defining that top level constant was causing people problems.
Unfortunately, it was just the nature of the situation and a lack of experience on my part that lead to this issue. Unfortunately there is little we can do about it now, but the current release is probably about as good as we can have it.
from multipart-post.
Related Issues (20)
- Force warning HOT 4
- Multipart post with a zip file HOT 2
- Issues with darkfish docs? HOT 5
- Allow UploadIO to accept additional MIME headers as options HOT 4
- 3.0 release changes HOT 8
- Timeout on JRuby on Windows HOT 11
- Tests failing on Windows HOT 1
- Changes in v2.1.0 HOT 2
- NoMethodError: undefined method `alphanumeric' for SecureRandom:Module HOT 3
- Does multipart-post follow Semantic versioning? HOT 2
- Feature request: Don't set "local.path" as a default filename to prevent it from being detected as a binary HOT 5
- CI needed HOT 1
- Can you push a new version to RubyGems? 🙏🏻 HOT 3
- Release a 2.2.0 HOT 3
- Specify correct Ruby version required in 2.2.0 HOT 8
- 2.2.2 breaks compatibility with older Rubies HOT 8
- Silence Noisy Deprecation Warnings HOT 3
- Please inlcude README / LICENSE file into the package. HOT 2
- Namespace conflict issue after 2.2.0 HOT 6
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 multipart-post.