Closed benwebber closed 5 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.
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.
No update just yet. Mostly it is about testing the current PRs as one of them is "big".
All good then.
I have merged most of the open PRs. 2 have comments, and I need to think about #124 some more.
Looking to a 0.7.0 release, I think the following things should be accomplished (in theoretical order of importance):
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.
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.
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.
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).
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.
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.
monsterbox refactor in #153.
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).
@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.
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:
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.
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.
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!
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).