Skip to content

Add versioning (PDF) [enhancement] #29

@dbonattoj

Description

@dbonattoj

Description
It would be beneficial to introduce versioning in both the PDF (displayed under the title) and the filename, following a semantic versioning format such as v0.1.2.

Proposed Versioning Strategy

  • Major Version (X.0.0): Increment when a new chapter is added and completed.
  • Minor Version (X.Y.0): Increment when a new section is added and completed.
  • Patch Version (X.Y.Z): Used for tracking work-in-progress commits within sections if versioning is automatically embedded. Each commit increments the last number (v0.1.X).

If the current version is v0, adding a section updates it to v0.x, and completing a chapter updates it to v1.0.

Automation with GitHub Workflows
To streamline versioning, we can use GitHub workflows to automate version increments based on commit tags:

  • chapter tag → Increases the major version (X.0.0).
  • section tag → Increases the minor version (X.Y.0).
  • minorminor tag or no tag→ Increments the patch version (X.Y.Z). If no tag, the workflow need to detect that the latex files were changed and automatically increase the patch version

Each type of tag triggers a specific workflow, ensuring that the generated PDF is updated accordingly and automatically attached to the release.

An alternative is to write after the \section, \chapter, etc.. in Latex a comment like % chapter_finished, % section_finished, % work_in_progress and detect if it was changed in the github workflow to avoid too many tags.

The workflow can then generate automatically a release in github, so that people can always download the last version easily.

Expected Outcome

  • A clear versioning system that reflects document progress.
  • Automatic PDF version updates in the title and filename.
  • Efficient tracking of content evolution using GitHub workflows.
  • Releases

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions