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

Release a version #1195

Closed
tatosjb opened this issue Jan 21, 2021 · 55 comments
Closed

Release a version #1195

tatosjb opened this issue Jan 21, 2021 · 55 comments

Comments

@tatosjb
Copy link

tatosjb commented Jan 21, 2021

Recently was integrated a PR who solves the font cache issue.

Is possible to release a version? The last release is from December 31.

https://rubygems.org/gems/prawn

@donv
Copy link
Contributor

donv commented Dec 28, 2021

A new release is required for proper dependencies for Ruby 3.1:

3658d51

@AlfonsoUceda
Copy link

Hi folks, any news on this?

@pointlessone
Copy link
Member

OK, I will push a new release before the snow melts away. But to set expectations right it won't happen in the next two weeks.

@alec-c4
Copy link

alec-c4 commented Jan 23, 2022

Hey, folks! Any news on this issue?

@rubyFeedback
Copy link

A prawn version 3.0 would be pretty neat eventually.

We have some competition e. g. hexapdf by gettalong. I have quite a lot
of pdf-generation code in different projects, so I am re-evaluating old
code every now and then. One advantage gettalong has is that he is
quite active (and home boy in my city too! \o/ ).

@deanpcmad
Copy link

Any news on this?

@gettalong
Copy link
Member

@pointlessone If you need help with a new release, let me know! But no stress, when you have time, you have time..

@pointlessone
Copy link
Member

@gettalong We've got a bunch of PRs open. I'd love some help with reviews. That extends to the broader community, too. Thank you.

@johnnyshields
Copy link
Contributor

@pointlessone any reason the master branch can't be released "as-is"? Are there any specific open PRs blocking the release?

@pointlessone
Copy link
Member

I don't think any of the PRs are blocking release. It's just an area where I could use some help.

@johnnyshields
Copy link
Contributor

Perhaps we should decouple the two? Do a release, and then the good folks on this thread can chip in to help with PRs?

@pointlessone
Copy link
Member

To be clear, I'm not waiting on PRs to merge before cutting a release. Prawn release is a somewhat complicated process so I need a solid block of time for it. That's the blocker. While we're waiting on that PRs might as well get reviewed.

@gettalong
Copy link
Member

@pointlessone I have created pull requests #1242 and prawnpdf/pdf-core#48 for open issues. Those are rather small changes and would be good candidates for merging before making the new release.

@zavan
Copy link

zavan commented Feb 9, 2022

Is the master branch stable? Can I use it directly with gem 'prawn', github: 'prawnpdf/prawn' for now or is it better to just add gem 'matrix' to my Gemfile?

@pointlessone
Copy link
Member

Generally we're trying not to break master branch. However, sometimes it might be a little confusing because master might depend on unreleased changes in ttfunk or pdf-core. You might need to use those from their master barnaches as well.

@aried3r
Copy link
Contributor

aried3r commented Feb 10, 2022

Prawn release is a somewhat complicated process so I need a solid block of time for it.

Is this process described somewhere and could parts of it be automated?

@pointlessone
Copy link
Member

This is not described and hard to impossible to automate. The main issue is that there are at least three gems whose releases need to be coordinated. Dependencies are not strictly acyclic, too.

@shirts
Copy link

shirts commented Feb 10, 2022

Is the master branch stable? Can I use it directly with gem 'prawn', github: 'prawnpdf/prawn' for now or is it better to just add gem 'matrix' to my Gemfile?

@zavan Save yourself the future headache and just use the gem.


Here's to adding more noise in hopes it pushes this release out quicker

@pointlessone
Copy link
Member

@shirts I would gladly accept a contribution that gets us there. Maybe start with something less ambitious than fully automated dependency resolution.

One Idea I muled over for a while is to have alpha/beta gem builds on every commit to master. I believe it might be a bit easier to achieve. GitHub Actions + GitHub Packages looks like a viable option.

@johnnyshields
Copy link
Contributor

@pointlessone please let us know the status of getting a new release out?

@gettalong
Copy link
Member

@johnnyshields Please see prawnpdf/ttfunk#91 (comment) which also applies here.

@johnnyshields
Copy link
Contributor

@gettalong the war is truly a catastrophe and I appreciate that it is disruptive for many.

That being said, there are highly qualified people in the community, e.g. @petergoldstein, who have volunteered to help with the maintainership of this gem. Can we please appoint someone to help move this forward and unblock issues?

@gettalong
Copy link
Member

@johnnyshields As far as I know only @pointlessone has all the permissions and means to do a release which is quite complicated involving multiple libraries. @petergoldstein volunteered to help out and he massively did but I don't think @pointlessone got to the point where he was able to explain the release process and assign permissions.

@johnnyshields
Copy link
Contributor

@pointlessone time to pass the baton on to @petergoldstein ?

@rubyFeedback
Copy link

It happens in many projects. For instance, andlabs who used to maintain libui stopped adding code or reviewing code changes since about 2 years. Someone eventually overcame the inertia and added libui-ng, which is more active. I think having a project base with more different people in charge who can push at the least new patch sets in would be useful. They can focus on the quality of these patches and contributions which worked for libui-ng very well.

@gettalong
Copy link
Member

@PeterWooster Have you tried the solution mentioned in #1273? I.e. add gem "matrix", "~> 0.4" to your Gemfile?

@PeterWooster
Copy link

Thanks @gettalong, I'll give that a try once I get past all the install nonsense for Puma. Right now I'm going to stick with ruby 2.7.7 on Ubuntu and 2.7.4 on my Mac.

Ruby 3.0.x won't install on my Mac Silicon M1 using rbenv, but 3.0.5 installs on Ubuntu so I may try with 3.0.5 once I get the app ported to Ubuntu.

@motine
Copy link

motine commented Jan 5, 2023

i would also love to see a release. i would love to pitch in.

@johnnyshields
Copy link
Contributor

johnnyshields commented Feb 19, 2023

Unfortunately, I think it is time to fork this gem and release it under new maintainers. There hasn't been a release in 2 years, meanwhile bugfix PRs and issues have piled up.

@petergoldstein and anyone else interested, shall we go ahead and do it? Maybe call it something like prawnpdf-continued? @pointlessone would be welcome as a co-maintainer (or to merge the code back to this repo) if/when he is able to assist in maintenance again.

@petergoldstein
Copy link
Contributor

@johnnyshields Unfortunately at this point I don't have time to take on maintenance responsibilities for another repo. Especially one that's going to need a lot of work to bring it up to snuff. That said, I agree the current situation is problematic and it's probably time to fork.

@pointlessone
Copy link
Member

I'm with Jonny on this one. I don't know who this maintainer guy is but he clearly sucks. It's been 2 years and gems are not released, bugs are not fixed, rainforests are not regrowing, wars raging everywhere and we're still not back to the Moon! This "AS IS" business is clearly nonsense and we can not stand it any more! We should fork Prawn now! Someone has to fix it all! As long as someone is not me. I'm, like Jonny, very busy right now. But I certainly can chime in on any topic in comments any time because my opinion and extensive expertise are very valuable.


Now, on a more serious note. I'm as frustrated about the situation as all you are. I'm also as frustrated with most of you as you are with me. I understand it but it's not helpful. Somehow, set of the most demanding people and those who actually put in work doesn't intersect.

I'm calling you out, Jonny, specifically because you're one of the most demanding people who put in only nominal amount of work. My previous hints were, apparently, too subtle so I'm asking you specifically, and everyone behaving in a similar manner, to reconsider. I personally don't respond well to demands or threats. This is not a productive approach.

People who want to fork are welcome to do so. It's one of the tenets of FOSS. One thing I ask of you is to have these discussions elsewhere. Also please choose names that are unambiguously different.

People who want things to change here be the change you want to see in the world. Be like Peter, or Thomas, or Dan, or Cameron, or dozens of people who contributed in a meaningful way.

I understand that I'm the bottleneck but I don't have to be the one who does all the work. There's a lot you (every single one of you) can do that would help. For most of it you don't need the ability to push a gem or even to merge a PR.

As a quick update. I actually spent a little time on Prawn in December. It didn't result in any code I can push or a release but it was work. I will have a little time for Prawn soon again but I can't make any specific promises for what actually is going to be achieved. I can promise at least one release of Prawn. Eventually. No specific timeframe.

With that a few administrative announcements:

  • Any discussions regarding releases that do not materially contribute to making them a reality are going to be considered off-topic discussions and are not welcome up to and including moderation actions.
  • Forking discussions in any official Prawn spaces are unwelcome. To clarify, forking is fine, coordination is fine, too. Just do it elsewhere. Since it doesn't contribute to Prawn itself I don't see a reason to host any of those discussions. I will allow one announcement post per fork in Prawn Discussions section on GitHub with no comments. I think it's fair to let the community know there's a fork but I don't think there's a point discussing it. Please, reach out to me when you're ready to make the announcement.

giladshanan added a commit to wyeworks/nucore-open that referenced this issue May 10, 2023
Add matrix gem because prawn hasn't had a new release in 2 years

prawnpdf/prawn#1195
prawnpdf/prawn#1210

Discovered while attempting a stage release:
```
SSHKit::Runner::ExecuteError: Exception while executing as nucore@tablexi-shared02.txihosting.com: rake exit status: 1
rake stdout: Nothing written
rake stderr: rake aborted!
LoadError: cannot load such file -- matrix
/home/nucore/nucore.stage.tablexi.com/shared/bundle/ruby/3.1.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
/home/nucore/nucore.stage.tablexi.com/shared/bundle/ruby/3.1.0/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:332:in `block in require'
/home/nucore/nucore.stage.tablexi.com/shared/bundle/ruby/3.1.0/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:299:in `load_dependency'
/home/nucore/nucore.stage.tablexi.com/shared/bundle/ruby/3.1.0/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:332:in `require'
/home/nucore/nucore.stage.tablexi.com/shared/bundle/ruby/3.1.0/gems/prawn-2.4.0/lib/prawn/transformation_stack.rb:10:in `<main>'
```
@mathieujobin
Copy link

I just compared master with 2.4.0
there are a few fixes under lib/, but it mostly typo and code style improvements.

we should make a release ASAP

2.4.1 or 2.5.0 both makes sense, former because changes are minor, but the diff is long and its been a few years, so 2.5.0 sounds good as well.

@mathieujobin
Copy link

@pointlessone you do have access to the repo and rubygems right? why don't you make a release?

@deanpcmad
Copy link

Any news on a release? I'm happy to take the Gem and Repo over if you don't have the time to maintain it anymore?

@pointlessone
Copy link
Member

Aww guys I'm so glad you're still thinking of me. ❤️

@pointlessone
Copy link
Member

@mathieujobin Yes, I do have access to the repo and rubygems, right. I think I'll find some time this year to write another of those status updates. If you read the past ones you might have some insight. But if you want an answer earlier—let me be a sphinx for a minute—I'll give it if you fail to guess with 3 tries.

@pointlessone
Copy link
Member

@deanpcmad What is your experience with PDF in general and Prawn in particular? I mean, I use Prawn myself. I wouldn't want to just get rid of it. If I give it away I want to be sure to some extent it'll thrive.

@PeterWooster
Copy link

Please make a release before this Christmas.

I'm currently stuck at Ruby 2.7 for my Rails time tracking project because of Prawn, which is an absolute requirement to create invoices. All my other projects are on Ruby 3.2.2 or PHP. I'm sure you want me to stick with Ruby and not convert that project to Laravel or Django.

@gettalong
Copy link
Member

@PeterWooster There is no reason you are stuck on Ruby 2.7 because of Prawn. It works just fine with Ruby 3.x, I'm using it myself with Ruby 3.2.2. The only thing you need to ensure is that you add the matrix gem yourself to the Gemfile.

And there are alternatives to Prawn in Ruby, you don't need to waste all the code moving to Laravel or Django.

@johnnyshields
Copy link
Contributor

@pointlessone I'm happy to volunteer my company TableCheck with 200 employees (even one in Ukraine) to take over maintenance of Prawn. We will make sure it thrives.

We use Prawn to generate internal print-outs and reports used in ~9,000 restaurants in Japan and across Asia, it's mission-critical for us.

@pointlessone
Copy link
Member

@johnnyshields Hi Johnny,

I recognise your name. Unfortunately, it's not a good thing in your case. You see, I know your name because you made requests of me and past Prawn maintainers but your other contributions to the projects are quire scarce even counting in contributions of people who I believe worked with you. You're one of the most demanding and least contributing people I had misfortune to cross paths in the FOSS context. I'm not even completely sure you fully grasp the concept of free/open-source software, its processes, and the "AS IS" part in particular.

Oh, I'm sure you will maintain Prawn. However, I'm afraid there's an obvious conflict of interest: your business versus community (including other—potentially competing—businesses). I don't want Prawn to follow Rails as in whatever DHH's business does that's what goes into Rails and whatever anyone else's need that's third-party concerns.

On multiple occasions I prompted people to write code, improve docs, review PRs. With 200 employees and being at the core of the business one might've expected a bit of enthusiasm around Prawn but the best I can see from you is a few clicks on Approve PR button and cheers for Peter.

So yeah, I'm not too thrilled about your proposal. But! You and your employees still can be an active contributors. I know I'm a blocker on a few things but certainly not on everything, right? Do what you think needs to be done and can be done without me. Maybe fix a bug or two, a couple of typos in the docs, propose a feature. I'm sure, you'll be able to find something to contribute if you care about the project and community. I promise to make full effort to change my opinion when there will be something to cause that change.

@johnnyshields
Copy link
Contributor

johnnyshields commented Nov 7, 2023

@pointlessone as your handle implies, it's pointless to argue with you.

For the adults in the room > I've released prawn-continued gem v3.0.0.rc2 which is up-to-date with the current master of prawn.

You can install it with:

gem 'prawn-continued', '~> 3.0.0.rc2'
gem 'prawn-table-continued', '~> 1.0.0.rc3'

IMPORTANT: Other plug-in gems like prawn-svg are not yet compatible. They will inadvertently install the prawn (original) gem, which will cause issues (to use them, you'll need to fork them an change their gemspec dependency.) Check your Gemfile.lock when installing to make sure 'prawn' is not present, and use at your own risk for now. I will add a guard to catch such gem conflicts in a future release.

That being said, prawn-continued should be a drop-in replacement for prawn. I've done some sanity checks in my own app and it seems fine. Please reach out to me if you are interested to help with maintenance. CC: @petergoldstein.

Reason for forking (as explained in README):

Our goal is to continue development and releases of Prawn for the benefit of the user
community, as the original gem has had minimal activity since late 2020.
We welcome the changes in this fork to be upstreamed back into the original
Prawn gem, and we harbor no ill will towards it or its maintainers.

@pointlessone
Copy link
Member

@johnnyshields I salute you. Truly. I wish you all the best.

@mathieujobin
Copy link

@pointlessone #1319

@pointlessone
Copy link
Member

@mathieujobin Thank you but no need to ping me. I get all the notification of new PRs.

@mathieujobin
Copy link

Don't be offended by the ping, I simply wanted to link the issue with the PR and bring it to your attention. I'm not aware of your notification settings.

@pointlessone
Copy link
Member

I guess #1339 resolves this issue. So I'm closing this now. Feel free to reopen in a year or two.

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