rpgtex / DND-5e-LaTeX-Template

LaTeX package to typeset material for the fifth edition of the "world's greatest roleplaying game".
MIT License
1.43k stars 308 forks source link

Release 0.7.0 #123

Closed benwebber closed 5 years ago

benwebber commented 6 years ago

The last release was in October. There are a handful of small fixes to ship:

https://github.com/evanbergeron/DND-5e-LaTeX-Template/blob/master/CHANGELOG.md#unreleased

What does everyone think of merging #110 and #113, then releasing 0.7.0?

The issue reported in #121 highlighted some of the problems users might face if they're new to Git, LaTeX, or the command line. After preparing the 0.7.0 tag and GitHub release, we could look at publishing this package on CTAN (#116).

BrianCriswell commented 6 years ago

Sounds good. I have just been so slammed from the summer. Now that kids are back in school, I am finally starting to catch up again. I am thinking about adding in an example .sty file to show how to separate modifications from the core package code.

rjbprime commented 5 years ago

Is there an update on the release of version 0.7.0? Or are you plodding along with the code, getting it updated? Just curious, is all, on an estimated timeline. No rush, just curious.

BrianCriswell commented 5 years ago

No update just yet. Mostly it is about testing the current PRs as one of them is "big".

rjbprime commented 5 years ago

All good then.

BrianCriswell commented 5 years ago

I have merged most of the open PRs. 2 have comments, and I need to think about #124 some more.

BrianCriswell commented 5 years ago

Looking to a 0.7.0 release, I think the following things should be accomplished (in theoretical order of importance):

  1. Change the document-level commands and environments to \Dnd... and Dnd.... Getting this done now means we can deprecate all of the replaced ones and have them removed in 0.8.0.

  2. Convert the package to the conventions in the expl3 documentation. LaTeX2 things that can be done are CamelCase for document level functions and two-space indentation. LaTeX3 things include double underscores leading internal function names and more liberal use of whitespace to enhance readability. One place where this could be a real benefit is the \dice command.

  3. Convert the package to LaTeX3. It makes whitespace handling more obvious and is much better as a programming language (conditionals, primitive manipulation, etc.). Another bonus is that it would be easier/more built in to set up package-level functions that alter the behavior of the entire package. This would allow for things like themes to be set up (dnd-full-color, dnd-srd, dmsguild, pathfinder, The downside is that we may lose some contributions as there is a learning curve for most people.

  4. At some point, do we want to change the name of the package to rpgbook? While we only handle D&D styling in the package right now, item number 3 should make it easier to support more styles in the future and keep our name away from "the world's greatest roleplaying game" (although dnd is not trademarked as best as I can tell).

benwebber commented 5 years ago

I'm totally on board with porting the package to LaTeX3. We already implicitly depend on it through l3packages.

However, I think we should cut a release now, warts and all. Then we can point to 0.7 as the last release before we really started thinking about the API.

Change the document-level commands and environments to \Dnd... and Dnd.... Getting this done now means we can deprecate all of the replaced ones and have them removed in 0.8.

I like the idea of a unified naming scheme a lot, but I think we should keep aliases for the current commands around until 1.0.

Since we're generally talking about name changes and not behaviour changes, it's cheap to support and a little nicer to our users.

At some point, do we want to change the name of the package to rpgbook?…

It depends on how much we can port between game systems. For example, it would probably be feasible to support 3.5, Pathfinder, or other d20 systems. Less so other systems.

I wouldn't worry about it too much until we start seeing requests or contributions for other systems.

BrianCriswell commented 5 years ago

One reason I would prefer to have a few more ducks in a row is to avoid releasing a version with a bunch of new names that we have to support through a rename. If we get those renamed now, we have fewer to support down the road. Similarly, now might be a better time to change the package name rather than getting everyone using the dndbook class and having to change the name again (although that is a simple change to fix on the user end).

I am going to put up a PR with my monsterbox refactor, which I think is the most complex of the parts to convert to LaTeX3. We can merge it before or after a 0.7.0 release, but I think we should take a look at it before a final decision on 0.7.0.

BrianCriswell commented 5 years ago

monsterbox refactor in #153.

BrianCriswell commented 5 years ago

EDIT: Removed links. New interface will go in 0.8.0.

Whether we actually include these in 0.7.0 is up for discussion. I think it sets up 0.8.0 better with a standardized interface Dnd... and allows it to be more about new functionality. Another option would be to release 0.7.0 and follow fairly quickly with these changes as 0.8.0. Then 0.9.0 becomes about new functionality and documentation (and possibly better support for themes).

benwebber commented 5 years ago

@BrianCriswell Your effort is truly commendable; kudos. These changes effectively amount to a complete rewrite. The new code looks really promising!

That being said, we already have a significant backlog of changes to release for 0.7. I think it's confusing to cut a new release with those changes as well as the new package interface. As I said before, this will let us point to 0.7 as the last old-style release. We would be able to take our time and polish the new package interface, releasing it all at once in 0.8.

Moreover, I must admit I feel a bit in the dark about the upgrade. @Girsi's contribution in #159 highlighted that potential contributors (including me 🙂) lack insight into the overall progress and goal.

I know the work is mostly complete, but we could use more "bookkeeping" here. At the very least it will serve as a record of the work for future contributors.

To that effect, I'd like to:

If you're good with that, I'll start setting those up.

To be perfectly clear, I really like this direction. But I want to make the path to the new code as easy as possible for our users to navigate.

BrianCriswell commented 5 years ago

Sounds good. :)

I will put together the changes to set up 0.7.0 including double-checking the changelog. While I am doing that, could you continue to look over the new items and see if there is anything that sticks out to you?

For the new interface, I will start an issue for discussion on that, and we can figure out what the roadmap looks like. If there is some scaffolding you can do for preparation on the GitHub project, milestone, and task side of things, we could get a head start there as you seem to be much better versed in all things GitHub than me. :)

tl;dr If it sounds good to you:

benwebber commented 5 years ago

Yep, sounds good. You can convert this card to an issue:

https://github.com/rpgtex/DND-5e-LaTeX-Template/projects/1#card-17457490

Once we finalize the new interface, we can flesh out the other cards in the To do column and link the associated PRs.

BrianCriswell commented 5 years ago

https://github.com/rpgtex/DND-5e-LaTeX-Template/releases/tag/v0.7.0

Good job everyone. Thanks to the following who contributed:

Special thanks to co-owners @evanbergeron for starting this project several years ago and @benwebber for not only the code contributions but formalizing how we do this.

raphael-proust commented 5 years ago

Thanks for the effort put in!
I haven't published anything in a while but I still use this project for internal stuff and I'm planning to release more stuff later. The new additions and fixes are great!