Comments (8)
@stomar Good catch... I missed it version before Ruby 2.5.0-rc1. I'm going to bump it version to 2.5.0 for final release.
from csv.
@hsbt, @stomar - Based on the feature issue on ruby-lang I assumed that the CSV gem version would be independent of the Ruby version. Since the development of the two are independent, does it make sense to keep them the same?
This note in particular led me to believe that CSV/Ruby versioning would be separate:
BTW there should be process in place which ensures, that the libraries are properly versioned, i.e. if something is changed, it cannot have the same version as already released library (see #7761 and #7762).
Thoughts?
from csv.
Yes. You're right.
from csv.
@stevendaniels I don't think the gem and Ruby versions should or can be kept the same. I only wanted to point out that CSV::VERSION and gemspec version did not match, which IMO they should. I have no idea what the "correct" version of CSV should be.
from csv.
I came into this issue as part of diagnosing a change to CSV.generate
, described at https://bugs.ruby-lang.org/issues/9988.
In short it looks like CSV.generate
changed functionality between Ruby 2.4.4 and 2.5.0, even though CSV::VERSION
remains 2.4.8 between the two versions. I encountered this during a Ruby upgrade which broke some tests.
Before:
RUBY_VERSION
# => "2.4.4"
require "csv"
# => true
CSV::VERSION
# => "2.4.8"
::CSV.generate(headers: ["Foo"], write_headers: true) { |csv| }
# => ""
After:
RUBY_VERSION
# => "2.5.0"
require "csv"
# => true
CSV::VERSION
# => "2.4.8"
::CSV.generate(headers: ["Foo"], write_headers: true) { |csv| }
# => "Foo\n"
I'm trying to understand how this repo is used by Ruby as a gem versus Ruby's own csv.rb
. Maybe someone could help me understand what's going on here?
- The Ruby 2.5.0 release notes describe csv being promoted to a default gem.
- Ruby 2.5.0 has its own
lib/csv.rb
: https://github.com/ruby/ruby/blob/v2_5_0/lib/csv.rb. - 2.5.0 also has
csv.gemspec
: https://github.com/ruby/ruby/blob/v2_5_0/lib/csv.gemspec. - Ruby's own 2.5.0 sets
CSV::VERSION
as 2.4.8: https://github.com/ruby/ruby/blob/v2_5_0/lib/csv.rb#L211.
(The above seem true for 2.5.1, as well.)
If Ruby has csv.gemspec
to pull in csv as a default gem, is a separately installed gem ever used instead of Ruby's own lib/csv.rb
? (That may be a stupid question — I don't know how Ruby's default gems work!) As recently as ruby/ruby@5c1941a it looks like the csv gem is being vendored.
from csv.
is a separately installed gem ever used instead of Ruby's own
lib/csv.rb
?
Yes.
NOTE: You should not reuse a closed issue. You should open a new issue with a link to a closed issue.
from csv.
@kou I originally wrote my comment as a new issue, for that exact reason, but felt it potentially overlapped so much with this that a comment here was more appropriate, where the context lives. Would you prefer I move my question into a new issue? I have a further question about what "yes" means, since I wasn't clear in my original.
from csv.
Yes please.
from csv.
Related Issues (20)
- #eof? method returning wrong value when it's used on a csv file HOT 3
- #eof? method returning wrong value when it's used on a csv file with #each, #map, #filter HOT 1
- row access method(like .first, .count, .map) remove row unintentionally HOT 2
- New release for Ruby 3.2 HOT 7
- How about GH releases generated by `gh release create --generate-notes` HOT 5
- feature: add option to limit length of strings HOT 3
- Suggestion to add `sep` option HOT 2
- Broken links in documention HOT 11
- Duplicated last line in CSV.foreach HOT 14
- Recipes not copied downstream HOT 6
- A fiber to execute ':heder_converters' has been changed since v3.2.6 HOT 1
- liberal parsing does not split column as expected with quote at end of column HOT 8
- Inconsistent behaviour between `CSV::Table.new` and `CSV.parse` HOT 10
- Loading line becomes strange when skip_lines is specified HOT 6
- Read StringIO with foreach HOT 2
- feature request: Warn when reading BOM text with headers option HOT 16
- Rename the default branch name to "main" from "master"
- CSV.filter(input, output, headers: true) does not write the header row to output! HOT 5
- `require 'csv'; CSV.generate { |csv| csv << {a: 1, b: 2} }` throws `undefined method 'collect' for nil` HOT 1
- compatibility with parallel HOT 2
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 csv.