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

do a prawn release? #1137

Closed
jrochkind opened this issue Nov 20, 2019 · 18 comments
Closed

do a prawn release? #1137

jrochkind opened this issue Nov 20, 2019 · 18 comments

Comments

@jrochkind
Copy link

There are at least some changes in master since the release of v2.2.2 in March 2017.

It's hard to say exactly how many, because there appears to be no tag in the repo for 2.2.2 to compare to master.

But one change I noticed is that 2.2.2 still expresses a dependency on pdf-core "~> 0.7.0", so won't use the latest pdf-core release 0.8.1.

I came here to report that, but then noticed it was already fixed in master.

Would it be possible to do a new prawn release, so I can update to latest pdf-core as well? (Ideally with a git tag for version for new release!)

@pointlessone
Copy link
Member

I commend you on checking master before reporting an issue. That is a right thing to go about this sort of things.

I wonder what pdf-core 0.8+ feature you're after?

@jrochkind
Copy link
Author

Hi! I did check master, where I saw that master already allowed lastest pdf-core, although latest release of prawn does not.

There are no particular pdf-core features I am after, just trying to practice good hygeine keeping everything up to date, perhaps there are bugfixes or performance improvements in there. Just try to keep everything up to date to take advantage of such without individually evaluating the hundreds of indirect dependencies in a project.

@thbar
Copy link

thbar commented Jun 29, 2020

I second what @jrochkind said!

Disclaimer: I'm an OSS maintainer myself, and I am not feeling entitled to anything, just providing hopefully constructive feedback.

Prawn is a great library, a jewel of Ruby, essential to the Ruby ecosystem.

But having no release in more than 3 years sends the same signal that net-sftp used to send (7 years without a release, fixed recently with the release of v3.0.0).

While it is not affecting long time users like us, it definitely instills doubt on the future.

This shows up around:

  • Reddit comment here
  • Some of my customers who send objections (should we switch to X? is it safe to keep using Prawn?)
  • One can wonder if Prawn will support Ruby 2.x ? (I know that 2.6 is in the test matrix, but some could wonder, given the pace of changes!).

I do not know who has releasing rights (@pointlessone maybe?), but it would serve the ecosystem well to make a RC then release a new version after 3 years!

Thanks for considering this.

@pointlessone
Copy link
Member

OK. Real talk time.

We recntly-ish released a major feature in TTFunk. It was a big change and we experienced a few issues with it (obviously, in hindsight). The feature was a blocker for Prawn release. Then the issues made me postpone Prawn release. It looks like most issues with TTFunk are resolved now (I haven't heard of any new issues recently) so we're clear to make that release. I need to finish a little PR for integration of that feature into Prawn. And I'm a little busy at the moment. I'll make my best to cut the gem in July.

@thbar
Copy link

thbar commented Jun 29, 2020

@pointlessone I definitely understand the pressure (I maintain a gem over there, and there are challenges for Ruby 2.7 etc!), so I do understand your position!

Thanks for the visibility.

On my hand I can help this way: on a specific project, I have visual regression testing (I store rendered PDF and compare them), on JRuby, which means that if you cut a release candidate (something that I think is a good idea to ensure people can help out iron out the release), I will definitely be able to try out on a decent project (it also uses prawn table).

So: no pressure, do as you can, and happy to help by testing on that project, which could help!

@pointlessone
Copy link
Member

The next release most likely won't have a pre-release. It's not currently in our release procedure.

However, I'm considering adding pre-release/alpha gems. Given that it will require additional work I don't want to make it a pre-requisite for the next release.

We kinda sort of have a visual regression test in our suite. We have a test that makes sure we don't unexpectedly start generating different documents. We use Prawn manual for that. We don't do visual regression but a document hash instead. Two PDFs with identical hashes must produce identical rendering. In a way, our test is a bit more strict as it requires no changes in metadata or even file layout. It's by no mean a comprehensive test. We don't have tables in the manual, for instance.

You can run your test suite against master if you wish to test newer version. We're trying to keep master in a usable state.

@thbar
Copy link

thbar commented Jun 29, 2020

This makes perfect sense, whatever works best for the maintainers team.

I also use a Hash diff (with documents stored in Git) in addition to visual, it is very precious.

I will run the suite against master and will report back here once it's done.

Thank you for your response, much appreciated.

@pointlessone
Copy link
Member

OK, I landed the OTF support in Prawn. I'll do a review of open PRs and see if anything can be merged without much delay. Then I'll work on prepaeing the release.

Meanwhile I'd appreciate if you could test your code against Prawn master. I'd be glad to have some feedback before I cut the gem.

Thank you for your patience.

@thbar
Copy link

thbar commented Jul 27, 2020

@pointlessone thank you!

A first update: I've updated a client app (pdf-core from 0.6.1 to 0.8.1, prawn to 8ff67ad, ttfunk from 1.4.0 to 1.6.2.1, also using prawn-table most recent release).

The tests pass, but there are binary differences: lots of differences, but most if not all seem to be related to rounding changes in decimal coordinates.

I will investigate the visual changes (PDF comparisons before/after) later this week, and will report back to confirm things work as expected on this project.

@pointlessone
Copy link
Member

@thbar Thanks.

I'd expect lots of changes in the fonts. Not sure about rounding changes. There were changes there but I can't immediately recall if that happened before or after the last release.

@thbar
Copy link

thbar commented Jul 30, 2020

@pointlessone indeed there are visual changes even when bumping prawn from 2.1.0 to 2.2.0. This means I won't be able to test the latest release properly, I must figure out what is happening (I will review the various changelogs).

I will comment back here if I'm able to make progress fast enough!

@pointlessone
Copy link
Member

@thbar Can you provide examples of the changes?

@thbar
Copy link

thbar commented Jul 30, 2020

@pointlessone I cannot at this point, but I will have more budget next month to investigate on that. I will definitely report back when I have more data though, thanks for asking.

@pointlessone
Copy link
Member

@thbar I'm trying to gauge how big of an issue this is. Is this a sub-pixel text positioning issue of something more severe?

I promised a release this month. Is this something that should delay the release or a minor issue that can be fixed in a patch release?

@thbar
Copy link

thbar commented Jul 30, 2020

@pointlessone it is more severe, like full document margins quite off, but I think I found out!

I believe this is #1011, fixed in 2.2.1. I can still see differences after that, but the biggest one disappeared after upgrading from 2.2.0 too 2.2.1.

Something that is confusing is that #1003 is apparently still opened, but #1011 is closed (and 2.2.0...2.2.1 shows that indeed the fix was incorporated).

Maybe closing #1011 would be a good idea!

I promised a release this month. Is this something that should delay the release or a minor issue that can be fixed in a patch release?

What I'm describing has been fixed in 2.2.1, so I would definitely not wait on this specific point.

@thbar
Copy link

thbar commented Jul 30, 2020

@pointlessone I have good news: after investigating on the 2.2.0 regression, I took PDF snapshots (35 of them) at 2.2.1, and then upgraded to prawn master from there.

If I'm not mistaken (long day here, but I wanted to reply to you as quickly as possible), there is no visual nor binary changes between 2.2.1 and prawn master, which means there is no regression on the cases I use.

I still have a bit of changes to understand (in tables, introduced by 2.2.0, but this is already old), but as far as I am aware, prawn master is good to go!

Thanks for your work & quick turn-around on this.

@pointlessone
Copy link
Member

@thbar Awesome news! Thank you.

@pointlessone
Copy link
Member

With 2.3.0 release I consider this issue to be resolved.

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

3 participants