[dev] Scheduling for 1.0

3 views
Skip to first unread message

Gregory Brown

unread,
Jul 25, 2010, 7:43:48 PM7/25/10
to prawn...@googlegroups.com
Hi core devs, contributors, and other folks,

Through my experiments with delayed rendering in Prawn, I have seen the
light, and know what the Prawn of the future will look like. The
problem is that tomorrow's perfect Prawn is getting in the way of
today's good Prawn. We need to fix that problem right away.

We have not had a gem release of Prawn since February, and we have not
even had a developer snapshot since early May. To the outside world, we
probably look like we're dying.

Inside here, we know that's not true. We've got a brand new Table API,
we've got inline styling and template support. We have been ironing out
bugs and these features are getting more and more stable. But my
experiments have been blocking all of this great progress from seeing
the light of day.

Open source must move forward or die. I choose for Prawn to move
forward, and while it hurts my personal pride, it means that delayed
rendering and the major restructuring I wanted to work on will need to
wait for Prawn 2.0.

From here on out, we need to focus on what we know we can get done in a
reasonable amount of time, and then begin to place all our efforts on
performance tuning, documentation, examples, and bug fixes.

Here is the new schedule I have in mind, core devs please comment on
whether it's acceptable to you:

- August 1:

Prawn 0.11 is released as a gem, with delayed rendering code ripped out.

- August 15:

Prawn 0.12 is released as a gem, including all major features planned
for 1.0. All work after this point will be on stabilizing APIs and doing
cleanup

- September 1st:

Prawn 1.0p-re1 is released. User API is going to be mostly stable from
here on out, only changing to deal with any last minute design flaws
found by testers. Extension API will still remain in flux a bit, but
will begin to stabilize as well.

- October 1st:

Prawn 1.0 released. User facing API will only have API breaking changes
between middle version number bumps (1.0 -> 1.1 -> 1.2) etc, and will be
kept to a minimum. Extension API will remain backwards compatible
across the entire 1.x line, unless there is some major unforeseen problem.

Daniel Nelson

unread,
Jul 25, 2010, 8:24:25 PM7/25/10
to prawn...@googlegroups.com
> Here is the new schedule I have in mind, core devs please comment on
> whether it's acceptable to you:
>
> - August 1:
>
> Prawn 0.11 is released as a gem, with delayed rendering code ripped out.
>
> - August 15:
>
> Prawn 0.12 is released as a gem, including all major features planned
> for 1.0. All work after this point will be on stabilizing APIs and doing
> cleanup
>
> - September 1st:
>
> Prawn 1.0p-re1 is released.  User API is going to be mostly stable from
> here on out, only changing to deal with any last minute design flaws
> found by testers.  Extension API will still remain in flux a bit, but
> will begin to stabilize as well.
>
> - October 1st:
>
> Prawn 1.0 released.  User facing API will only have API breaking changes
> between middle version number bumps (1.0 -> 1.1 -> 1.2) etc, and will be
> kept to a minimum.  Extension API will remain backwards compatible
> across the entire 1.x line, unless there is some major unforeseen problem.

Sounds good to me.

Best,

Daniel

Yeung William

unread,
Jul 26, 2010, 3:57:12 AM7/26/10
to prawn...@googlegroups.com
The easiest way to do this I bet is release 2 gems- one called prawn-edge, the other one is prawn, then you could take away features that is not polished enough from the git and split it into two branches, leave everything at the prawn edge, and backport if things are polished enough. So people who love to play with the latest take their own risk on prawn-edge, while people who need stability (or people who tried edge and hit into the wall) can use the prawn release gem. Sounds good?

Regards,

William Yeung
Consultant

jquery+rubyonrails

Gearbox Software Company

Gregory Brown

unread,
Jul 26, 2010, 10:45:46 AM7/26/10
to prawn...@googlegroups.com
On 7/26/10 3:57 AM, Yeung William wrote:
> The easiest way to do this I bet is release 2 gems- one called
> prawn-edge, the other one is prawn, then you could take away features
> that is not polished enough from the git and split it into two branches,
> leave everything at the prawn edge, and backport if things are polished
> enough. So people who love to play with the latest take their own risk
> on prawn-edge, while people who need stability (or people who tried edge
> and hit into the wall) can use the prawn release gem. Sounds good?

No. I don't want to release parallel forks of our own project. :)

-greg

James Healy

unread,
Jul 26, 2010, 10:47:58 AM7/26/10
to prawn...@googlegroups.com
Gregory Brown wrote:
> >From here on out, we need to focus on what we know we can get done in a
> reasonable amount of time, and then begin to place all our efforts on
> performance tuning, documentation, examples, and bug fixes.
>
> Here is the new schedule I have in mind, core devs please comment on
> whether it's acceptable to you:

Looks good to me.

-- James Healy <ji...@deefa.com> Tue, 27 Jul 2010 00:47:54 +1000

Brad Ediger

unread,
Jul 26, 2010, 12:20:15 PM7/26/10
to prawn...@googlegroups.com
On Sun, Jul 25, 2010 at 6:43 PM, Gregory Brown
<gregor...@letterboxes.org> wrote:
> Here is the new schedule I have in mind, core devs please comment on
> whether it's acceptable to you:

The schedule looks great. I know this was a difficult decision for you
to make -- thanks for putting aside the big ambitions, in pursuit of
making forward progress.

Brad

Sharagoz

unread,
Jul 29, 2010, 4:45:25 AM7/29/10
to Prawn
On Jul 26, 1:43 am, Gregory Brown <gregory_br...@letterboxes.org>
wrote:
> I choose for Prawn to move
> forward, and while it hurts my personal pride, it means that delayed
> rendering and the major restructuring I wanted to work on will need to
> wait for Prawn 2.0.

Excelent decision. Perfection can wait until at least version 2.0.
I recently spent 2 hours figuring out how to install the edge version
because I really wanted the inline styling. That feature alone is
worth a gem release because it makes things a lot easier for the
average prawn user. I think the quality of the current edge version is
very high. It looks more like a 3.0 release than a 0.x release. Good
work guys.

William Yeung

unread,
Jul 30, 2010, 10:11:56 PM7/30/10
to prawn...@googlegroups.com
Guys I came across this need too so I end up packed a gem named
prawn-edge which based on the latest prawn master. If you want to just
use it. Remember as I have renamed the gem you need to use
:lib=>'prawn' to get it work properly in rails. Hopefully 1.0 will
come out soon so I could remove this.

William Yeung

Gregory Brown

unread,
Jul 31, 2010, 12:54:06 AM7/31/10
to prawn...@googlegroups.com
On 7/30/10 10:11 PM, William Yeung wrote:
> Guys I came across this need too so I end up packed a gem named
> prawn-edge which based on the latest prawn master. If you want to just
> use it. Remember as I have renamed the gem you need to use
> :lib=>'prawn' to get it work properly in rails. Hopefully 1.0 will
> come out soon so I could remove this.

Remove it now. It makes it sound like it's officially supported by us,
and I don't want to cause confusion for our users.

If you want to redistribute Prawn yourself you will need to rename it
something else.

-greg

Yeung William

unread,
Jul 31, 2010, 1:06:33 AM7/31/10
to prawn...@googlegroups.com
No problem- then I just call it unsupported-prawn-edge? I understand you feel thats an obligation- but we practically need this gem for long time. Building it ourself and doing all copying stuff manually is really a pain.

Regards,

William Yeung
Consultant

jquery+rubyonrails

Gearbox Software Company

Yeung William

unread,
Jul 31, 2010, 1:14:30 AM7/31/10
to prawn...@googlegroups.com
Anyway I will yank it now, name it as goodwill-prawn-edge (the similar approach like github before) and will republish. Use at your own risk for anybody who needs that.

Regards,

William Yeung
Consultant

jquery+rubyonrails

Gearbox Software Company

On 31 Jul 2010, at 12:54 PM, Gregory Brown wrote:

Gregory Brown

unread,
Jul 31, 2010, 1:15:12 AM7/31/10
to prawn...@googlegroups.com
On 7/31/10 1:06 AM, Yeung William wrote:
> No problem- then I just call it unsupported-prawn-edge? I understand you
> feel thats an obligation- but we practically need this gem for long
> time. Building it ourself and doing all copying stuff manually is really
> a pain.

I told you specifically that I did not want prawn-edge in rotation
because I don't want to release snapshots of Prawn's bleeding edge as a
gem. It would be one thing if you disagreed, and the forked
appropriately, but instead you ignored that and took it upon yourself to
release something extremely misleading. You didn't update the gemspec
at all so it still lists all my credentials on the gem.

Public gem servers aren't there for your own pet version of Prawn to
live. Be respectful of your fellow community members and don't waste
that valuable namespace with this sort of thing.

If you *must* use rubygems.org for some reason, at the very least,
prefix the library with your name, and add a note in the gemspec
description that it's unofficial and why it exists in the first place.

-greg

Gregory Brown

unread,
Jul 31, 2010, 1:22:35 AM7/31/10
to prawn...@googlegroups.com
On 7/31/10 1:14 AM, Yeung William wrote:
> Anyway I will yank it now, name it as goodwill-prawn-edge (the similar
> approach like github before) and will republish. Use at your own risk
> for anybody who needs that.

Thanks for very quickly resolving this. My main concern was that since
projectname-edge is a very common *official* way of releasing edge gems,
that it would cause a lot of confusion. The way you're doing it now is
fine.

-greg

Yeung William

unread,
Jul 31, 2010, 1:24:43 AM7/31/10
to prawn...@googlegroups.com
Yep got it, I was just having the need to use that for my deployment. I made it as goodwill-prawn-edge and noted in both description and title thats packed by me and unsupported. I could remove you from Author and Email too but the work is afterall done by you so I don't feel its appropriate- but let me know what you want, I surely respect your effort in the project but I just need to help myself out on this as well. I don't want to host my own gem server if possible as its a much bigger overhead compare to pushing it on the public infrastructure. 

In the past github offers such tool for publishing our own variance, but now since its reunited back to rubygems.org I kinda have not much choice here. In actual fact, there are 11 downloads in one day just after I push that thing up- the fact is there is a lot of demand on having the gem in a convenient place and a lot of people who need pdf generation just really need prawn edge version. I don't regard this as a waste of public space either as it does give value for some users. The life of adding a few gem sources is just not fun and I think github agreed that too so that's why we end up with rubygems.org/

Sorry to make you feel bad about this, but I was just trying to balance the need of the edge code some people have. 

Regards,

William Yeung
Consultant

jquery+rubyonrails

Gearbox Software Company

Gregory Brown

unread,
Jul 31, 2010, 2:49:02 AM7/31/10
to prawn...@googlegroups.com
On 7/31/10 1:24 AM, Yeung William wrote:

> Sorry to make you feel bad about this, but I was just trying to balance
> the need of the edge code some people have.

You either didn't read the schedule, or you are incredibly impatient.
All of this code that is currently on master, except for the things that
*will not* be in 1.0, will be released within the next 48 hours as an
official Prawn 0.11 release.

But here we are two days earlier with an unofficial gem because you felt
that the world was clamoring for it. I'm sorry, but there have been
over 21000 downloads of Prawn 0.8, and if this was really such a strong
demand, I think people would be beating down our doors for a release.
They are not.

The reason why they have not, is that they trust me as the maintainer of
this project to determine when Prawn is ready for widespread
distribution or not. The 11 downloads you state were almost certainly
by people who thought I actually released that gem, since you named it
in an official way and did not modify the author of the gem.

So the only thing you have contributed here is confusion.

-greg

Samuel Lown

unread,
Jul 31, 2010, 5:13:58 AM7/31/10
to prawn...@googlegroups.com
William, I'd recommend you check out the "bundler" gem and use that for your project. You can use it to install specific gem dependencies directly from git, and saves you the hastle of preparing your own gems. I use it on all my projects now and is in fact how I'm using prawn.

Check it out and relax :-)

(btw, I don't think adding 'edge' to a gem name is that common, but it certainly could be misleading. The most common way is the make a pre-release gem by adding ".beta", or something other than numbers, to the end of the gem version. This is done with the Rails 3 beta and might be something you want to consider Gregory, 0.11.beta perhaps? :-)

Cheers,
Sam
--
www.samlown.com
www.autofiscal.com
www.planetaki.com/sam

Gregory Brown

unread,
Jul 31, 2010, 10:13:11 AM7/31/10
to Prawn


On Jul 31, 5:13 am, Samuel Lown <sam.l...@gmail.com> wrote:

> (btw, I don't think adding 'edge' to a gem name is that common, but
> it certainly could be misleading. The most common way is the make
> a pre-release gem by adding ".beta", or something other than numbers, to the
> end of the gem version. This is done with the Rails 3 beta and might
> be something you want to consider Gregory, 0.11.beta perhaps? :-)


Yeah, I'm considering making it so gem install prawn --pre install
Prawn 0.11, but I am debating on that one because I really want to
drop 0.8 support, Prawn has diverged too much from it. Another
problem is that I think that they may actually be incompatible with
one another, I'm not sure that 0.11 and 0.8 can be installed side by
side. I am going to test that and do everything I can to fix it, if
that's the case.

-greg

Joshua S

unread,
Aug 12, 2010, 12:32:27 AM8/12/10
to Prawn
Did the 0.11 gem ever get released? I just did a gem install and got
0.8.4.
Reply all
Reply to author
Forward
0 new messages