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

Plan for Rails 5.0 compatible release? #1135

Closed
mperham opened this Issue Jul 11, 2016 · 13 comments

Comments

Projects
None yet
9 participants
@mperham

mperham commented Jul 11, 2016

Right now Sinatra users must run master if they want to run inside a Rails 5 process. What are the issues blocking a gem release?

@zzak

This comment has been minimized.

Show comment
Hide comment
@zzak

zzak Jul 11, 2016

Member

At the moment:

  • sinatra-contrib has 14 open issues and 9 pull requests that need to be cleaned up for the next release, including a blocking issue in the Namespace extension related to the Mustermann changes.
  • mustermann may need to change due to this blocking issue, as well there is another namespace conflict we're trying to resolve. So that will also need a release
  • Lastly, rack-protection has 20 open issues and 8 pull requests that need attention, and will require a release before one is made to Sinatra.

After these peripheral things are cleaned up, I will merge the rack-protection and sinatra-contrib gems into the repo -- and once everything is green: make a release.

I don't want to cut a pre-release until those gems are ready, and even if I did it won't make a difference for bundler users because ~> 2.0 won't resolve to a pre-release candidate and users will still be stuck with Sinatra 1.x -- otherwise they have to specifically choose the pre-release (such as gem 'sinatra', '2.0.0.rc1' in their gemfile and at that point there isn't much difference from a git sha as far as I'm concerned.

The master branch is quiet and stable, has been for a while, so please just bare with me.

Those interested in wanting speed up the release should help focus on the peripheral gems, which are still pivotal to the rest of the sinatra community.

Member

zzak commented Jul 11, 2016

At the moment:

  • sinatra-contrib has 14 open issues and 9 pull requests that need to be cleaned up for the next release, including a blocking issue in the Namespace extension related to the Mustermann changes.
  • mustermann may need to change due to this blocking issue, as well there is another namespace conflict we're trying to resolve. So that will also need a release
  • Lastly, rack-protection has 20 open issues and 8 pull requests that need attention, and will require a release before one is made to Sinatra.

After these peripheral things are cleaned up, I will merge the rack-protection and sinatra-contrib gems into the repo -- and once everything is green: make a release.

I don't want to cut a pre-release until those gems are ready, and even if I did it won't make a difference for bundler users because ~> 2.0 won't resolve to a pre-release candidate and users will still be stuck with Sinatra 1.x -- otherwise they have to specifically choose the pre-release (such as gem 'sinatra', '2.0.0.rc1' in their gemfile and at that point there isn't much difference from a git sha as far as I'm concerned.

The master branch is quiet and stable, has been for a while, so please just bare with me.

Those interested in wanting speed up the release should help focus on the peripheral gems, which are still pivotal to the rest of the sinatra community.

@b264

This comment has been minimized.

Show comment
Hide comment

b264 commented Jul 11, 2016

@mperham

This comment has been minimized.

Show comment
Hide comment
@mperham

mperham Jul 11, 2016

@zzak Thanks for the summary. I'll leave this issue open for others to find if they have the same question.

mperham commented Jul 11, 2016

@zzak Thanks for the summary. I'll leave this issue open for others to find if they have the same question.

@buren buren referenced this issue Jul 25, 2016

Merged

Rails 5 upgrade #485

10 of 10 tasks complete
@wadetandy

This comment has been minimized.

Show comment
Hide comment
@wadetandy

wadetandy Jul 25, 2016

I don't want to cut a pre-release until those gems are ready, and even if I did it won't make a difference for bundler users because ~> 2.0 won't resolve to a pre-release candidate and users will still be stuck with Sinatra 1.x -- otherwise they have to specifically choose the pre-release (such as gem 'sinatra', '2.0.0.rc1' in their gemfile and at that point there isn't much difference from a git sha as far as I'm concerned.

This actually makes quite a difference for me. I operate inside a large enterprise and am running Sinatra as a dependency on a Rail 5 application. Due to restrictions presented by our deployed environment, we cannot reliably use git-based dependencies in our Gemfile and must instead rely on properly packaged rubygems. Even creating a 2.0.0-alpha version of this gem would make my life (and I'm sure the lives of other similarly restricted enterprise users) much easier.

wadetandy commented Jul 25, 2016

I don't want to cut a pre-release until those gems are ready, and even if I did it won't make a difference for bundler users because ~> 2.0 won't resolve to a pre-release candidate and users will still be stuck with Sinatra 1.x -- otherwise they have to specifically choose the pre-release (such as gem 'sinatra', '2.0.0.rc1' in their gemfile and at that point there isn't much difference from a git sha as far as I'm concerned.

This actually makes quite a difference for me. I operate inside a large enterprise and am running Sinatra as a dependency on a Rail 5 application. Due to restrictions presented by our deployed environment, we cannot reliably use git-based dependencies in our Gemfile and must instead rely on properly packaged rubygems. Even creating a 2.0.0-alpha version of this gem would make my life (and I'm sure the lives of other similarly restricted enterprise users) much easier.

@zzak

This comment has been minimized.

Show comment
Hide comment
@zzak

zzak Jul 26, 2016

Member

@wadetandy Sorry for the trouble, if your company has restrictions on git dependencies, I would suggest building the gem and hosting it within your company.

Bundler even provides a tool to make this task simpler.

Member

zzak commented Jul 26, 2016

@wadetandy Sorry for the trouble, if your company has restrictions on git dependencies, I would suggest building the gem and hosting it within your company.

Bundler even provides a tool to make this task simpler.

@fschwahn

This comment has been minimized.

Show comment
Hide comment
@fschwahn

fschwahn Jul 28, 2016

Just a quick heads up: right now you cannot specify sinatra as a git dependency, because of commit 13fec9c - dependency resolution will fail because it cannot find that version of rack-protection on rubygems. You have to specify a specific commit for it to work, e.g. gem "sinatra", git: "https://github.com/sinatra/sinatra.git", require: nil, ref: "a5da6fa82c46436f59ae482d07c1752ab908c852"

fschwahn commented Jul 28, 2016

Just a quick heads up: right now you cannot specify sinatra as a git dependency, because of commit 13fec9c - dependency resolution will fail because it cannot find that version of rack-protection on rubygems. You have to specify a specific commit for it to work, e.g. gem "sinatra", git: "https://github.com/sinatra/sinatra.git", require: nil, ref: "a5da6fa82c46436f59ae482d07c1752ab908c852"

@zzak

This comment has been minimized.

Show comment
Hide comment
@zzak

zzak Jul 28, 2016

Member

@fschwahn You will have to also build and install the rack-protection gem from source, otherwise you must put the following line in your Gemfile (along with gem 'sinatra', github: 'sinatra/sinatra'):

gem 'rack-protection', github: 'sinatra/rack-protection'

Member

zzak commented Jul 28, 2016

@fschwahn You will have to also build and install the rack-protection gem from source, otherwise you must put the following line in your Gemfile (along with gem 'sinatra', github: 'sinatra/sinatra'):

gem 'rack-protection', github: 'sinatra/rack-protection'

@connorshea

This comment has been minimized.

Show comment
Hide comment
@connorshea

connorshea Aug 2, 2016

@zzak thank you for all the work you've done over the past few weeks, you're killing it <3

Regarding the dependent gems, sinatra-contrib has been merged and rack-protection and mustermann have 3 and 4 open issues respectively. Could you update us on what remains as blocking? :)

connorshea commented Aug 2, 2016

@zzak thank you for all the work you've done over the past few weeks, you're killing it <3

Regarding the dependent gems, sinatra-contrib has been merged and rack-protection and mustermann have 3 and 4 open issues respectively. Could you update us on what remains as blocking? :)

@zzak

This comment has been minimized.

Show comment
Hide comment
@zzak

zzak Aug 3, 2016

Member

@connorshea Thanks, stay tuned!

Once rack-protection is cleaned up I will cut pre-releases~

Member

zzak commented Aug 3, 2016

@connorshea Thanks, stay tuned!

Once rack-protection is cleaned up I will cut pre-releases~

@Topher33

This comment has been minimized.

Show comment
Hide comment
@Topher33

Topher33 Oct 11, 2016

Because of this issue, it seems like you cannot also use sinatra-contrib along side the beta release or running git master sinatra/sinatra. This seems to be the fact that sinitra-contrib depends on sinatra 1.4.0 which won't run against rails 5. Anyone have solutions to resolve?

'ruby/2.3.0/rubygems/specification.rb:2284:in

 `raise_if_conflicts': Unable to activate sinatra-contrib-1.4.7, because sinatra-2.0.0.beta2 conflicts with sinatra (~> 1.4.0) (Gem::ConflictError)
    from /Users/mwy1u5/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:1407:in `activate'
    from /Users/mwy1u5/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems.rb:196:in `rescue in try_activate'
    from /Users/mwy1u5/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems.rb:193:in `try_activate'
    from /Users/mwy1u5/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:125:in `rescue in require'
    from /Users/mwy1u5/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
    from ./spec/fake_services/fake_auth_services.rb:2:in `<main>'

Topher33 commented Oct 11, 2016

Because of this issue, it seems like you cannot also use sinatra-contrib along side the beta release or running git master sinatra/sinatra. This seems to be the fact that sinitra-contrib depends on sinatra 1.4.0 which won't run against rails 5. Anyone have solutions to resolve?

'ruby/2.3.0/rubygems/specification.rb:2284:in

 `raise_if_conflicts': Unable to activate sinatra-contrib-1.4.7, because sinatra-2.0.0.beta2 conflicts with sinatra (~> 1.4.0) (Gem::ConflictError)
    from /Users/mwy1u5/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:1407:in `activate'
    from /Users/mwy1u5/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems.rb:196:in `rescue in try_activate'
    from /Users/mwy1u5/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems.rb:193:in `try_activate'
    from /Users/mwy1u5/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:125:in `rescue in require'
    from /Users/mwy1u5/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
    from ./spec/fake_services/fake_auth_services.rb:2:in `<main>'
@nickrivadeneira

This comment has been minimized.

Show comment
Hide comment
@nickrivadeneira

nickrivadeneira Nov 15, 2016

@zzak Any plans for a stable release? The 2.0.0.beta2 blog post states that it's an unstable release. We'd like to upgrade to Rails 5, but don't feel comfortable using an unstable release for our production app. Is there anything contributors can do to help push towards a stable release?

nickrivadeneira commented Nov 15, 2016

@zzak Any plans for a stable release? The 2.0.0.beta2 blog post states that it's an unstable release. We'd like to upgrade to Rails 5, but don't feel comfortable using an unstable release for our production app. Is there anything contributors can do to help push towards a stable release?

@mwpastore

This comment has been minimized.

Show comment
Hide comment
@mwpastore

mwpastore Nov 15, 2016

Member

@Topher33 There's a separate 2.0.0.beta2 of the sinatra-contrib gem. Installing both of these from Rubygems (i.e. not from git master) should do the trick.

# Gemfile

source 'https://rubygems.org'

gem 'sinatra', '~> 2.0.0.beta2'
gem 'sinatra-contrib', '~> 2.0.0.beta2'
Member

mwpastore commented Nov 15, 2016

@Topher33 There's a separate 2.0.0.beta2 of the sinatra-contrib gem. Installing both of these from Rubygems (i.e. not from git master) should do the trick.

# Gemfile

source 'https://rubygems.org'

gem 'sinatra', '~> 2.0.0.beta2'
gem 'sinatra-contrib', '~> 2.0.0.beta2'
@Topher33

This comment has been minimized.

Show comment
Hide comment
@Topher33

Topher33 Dec 13, 2016

@mwpastore thanks - we ended up just working around this issue. we mainly wanted the cookies functionality on contrib. redesigned and cut this portion out. appreciate the response!

Topher33 commented Dec 13, 2016

@mwpastore thanks - we ended up just working around this issue. we mainly wanted the cookies functionality on contrib. redesigned and cut this portion out. appreciate the response!

jessieay added a commit to jessieay/dolores-landingham-slack-bot that referenced this issue Mar 22, 2018

Update Sinatra gem version
* released version was previously not compatible with Rails 5, but now
it is
* see convo at sinatra/sinatra#1135
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment