Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specify prelease string to development version #81

Open
hsbt opened this issue Jan 19, 2024 · 4 comments
Open

Specify prelease string to development version #81

hsbt opened this issue Jan 19, 2024 · 4 comments

Comments

@hsbt
Copy link
Member

hsbt commented Jan 19, 2024

I understand to use development version policy like "stringio-3.1.1". But this policy is harmful for library developer who used master version of Ruby.

I ususally use master version that is ruby-dev definition of ruby-build and develop software. When I did bundle update on tdiary/tdiary-core, it seems working fine. But stringio-3.1.1 is not released on rubygems.org. So, we get preparation failure on GitHub Actions like:

https://github.com/tdiary/tdiary-core/actions/runs/7470853111/job/20330178338

Can you add .dev suffix to development version? .dev is example, I'm okay to any string that is prelease flag. After that, I easily find dev version of dependencies.

@kou
Copy link
Member

kou commented Jan 19, 2024

I'm OK with adding a suffix but it seems that it's a Bundler bug.

https://github.com/tdiary/tdiary-core/actions/runs/7470853111/job/20330178338#step:6:15

Your bundle is locked to stringio (3.1.1) from rubygems repository
https://rubygems.org/ or installed locally, but that version can no longer be
found in that source.

"that source" means "rubygems repository https://rubygems.org/ or installed locally" not "rubygems repository https://rubygems.org/", right?
If so, "stringio (3.1.1)" installed as a default gem should be used by Bundler. Because it exists in a local source.

@hsbt
Copy link
Member Author

hsbt commented Feb 5, 2024

If so, "stringio (3.1.1)" installed as a default gem should be used by Bundler. Because it exists in a local source.

I'm not sure what you mean. https://github.com/tdiary/tdiary-core/actions/runs/7470853111/job/20330178338#step:6:15 is not master/head version. Ruby 3.0 or other stable version don't have stringio-3.1.1 as default gems. Why is it Bundler's bug?

Bundler will not pick prerelease version in default. If stringio or other default gems is marked with prelease flag like .dev or .pre, We keep to safe version on lockfile for old versions of ruby.

@headius
Copy link
Contributor

headius commented Mar 6, 2024

Just noting that I was trying to update JRuby's copy of gems from CRuby master and ran into this for both stringio and strscan (3.1.1 referenced there but not released). I see other gems that are .dev and can skip them until they are released, but there's no way to know 3.1.1 isn't released without checking manually.

@joshuapinter
Copy link

I'm also running into this now. Seeing the following message when deploying:

Your bundle is locked to stringio (3.1.1) from rubygems repository https://rubygems.org/ or installed locally, but that version can no longer be found in that source. That means the author of stringio (3.1.1) has removed it. You'll need to update your bundle to a version other than stringio (3.1.1) that hasn't been removed in order to install.

It looks like running bundle update updates stringio to 3.1.1 but Rubygems doesn't have that version.

For reference, our only gem that depends on this is psych and it's not version specific:

psych (5.1.2)
      stringio

I'm not sure where it's finding 3.1.1 and trying to use that.

I will adjust manually for now but anything we can do to solve this longer-term?

Thanks,

Joshua

HarlemSquirrel added a commit to HarlemSquirrel/tzf-rb that referenced this issue Jun 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

4 participants