prawnpdf / prawn

Fast, Nimble PDF Writer for Ruby
https://prawnpdf.org
Other
4.67k stars 688 forks source link

Release a version #1195

Closed tatosjb closed 8 months ago

tatosjb commented 3 years ago

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 commented 2 years ago

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

https://github.com/prawnpdf/prawn/commit/3658d5125c3b20eb11484c3b039ca6b89dc7d1b7

AlfonsoUceda commented 2 years ago

Hi folks, any news on this?

pointlessone commented 2 years ago

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 commented 2 years ago

Hey, folks! Any news on this issue?

rubyFeedback commented 2 years ago

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 commented 2 years ago

Any news on this?

gettalong commented 2 years ago

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

pointlessone commented 2 years ago

@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 commented 2 years ago

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

pointlessone commented 2 years ago

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

johnnyshields commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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

zavan commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

@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 commented 2 years ago

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

gettalong commented 2 years ago

@johnnyshields Please see https://github.com/prawnpdf/ttfunk/issues/91#issuecomment-1110585178 which also applies here.

johnnyshields commented 2 years ago

@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 commented 2 years ago

@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 commented 2 years ago

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

rubyFeedback commented 2 years ago

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.

marciojg commented 2 years ago

Is any news about this issue? @pointlessone

pokonski commented 1 year ago

Maybe a new release before the snow falls this time? :grin:

deanpcmad commented 1 year ago

Yeah, any news on this?

pointlessone commented 1 year ago

Is any news about this issue?

Not really. The war is still on.

Maybe a new release before the snow falls this time? šŸ˜

The snow has fallen over here so that ship has sailed. Maybe Christmas? šŸ˜‰

Now seriously. I will spend some time on Prawn this month. To set expectations properly: that is not a promise of a release by any specific date.

gettalong commented 1 year ago

Let me know if I can help with things!

PeterWooster commented 1 year ago

It's one week to Christmas and I'm stuck on Ruby 2.7.7 as I upgrade to a new VPS and Rails 7. Is there a planned release of prawn or a reliable workaround or replacement?

pointlessone commented 1 year ago

@PeterWooster The latest release supports Ruby 3.0. Other than that you can try using master branch if you desperately need unreleased changes. A new release isā€¦ "planned" but there's no timeframe.

For a replacement you might take a look at HexaPDF. I haven't used it myself but from its homepage it seem like a very capable library. Licenses are reasonably priced, too.

PeterWooster commented 1 year ago

Thanks @pointlessone , I tried ruby 3.1.3 and it didn't work, which is what led me here. I'll try 3.0, this app is really dependant on Prawn, which has been excellent for several years.

gettalong commented 1 year ago

@PeterWooster Have you tried the solution mentioned in https://github.com/prawnpdf/prawn/issues/1273? I.e. add gem "matrix", "~> 0.4" to your Gemfile?

PeterWooster commented 1 year ago

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 commented 1 year ago

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

johnnyshields commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

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:

mathieujobin commented 1 year ago

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 commented 1 year ago

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

deanpcmad commented 1 year ago

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 commented 1 year ago

Aww guys I'm so glad you're still thinking of me. ā¤ļø

pointlessone commented 1 year ago

@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 commented 1 year ago

@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 commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

@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 commented 1 year ago

@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 commented 1 year ago

@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.