article-cli 2.0.0__tar.gz → 2.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. {article_cli-2.0.0 → article_cli-2.0.1}/PKG-INFO +13 -1
  2. {article_cli-2.0.0 → article_cli-2.0.1}/README.md +12 -0
  3. {article_cli-2.0.0 → article_cli-2.0.1}/pyproject.toml +1 -1
  4. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/__init__.py +1 -1
  5. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/repository_setup.py +1 -1
  6. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_repository_setup.py +2 -2
  7. article_cli-2.0.1/tests/test_version_consistency.py +43 -0
  8. {article_cli-2.0.0 → article_cli-2.0.1}/.gitignore +0 -0
  9. {article_cli-2.0.0 → article_cli-2.0.1}/LICENSE +0 -0
  10. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/__main__.py +0 -0
  11. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/cli.py +0 -0
  12. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/command_runner.py +0 -0
  13. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/__init__.py +0 -0
  14. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/bibtex.py +0 -0
  15. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/clean.py +0 -0
  16. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/compile.py +0 -0
  17. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/config.py +0 -0
  18. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/doctor.py +0 -0
  19. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/fonts.py +0 -0
  20. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/init.py +0 -0
  21. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/release.py +0 -0
  22. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/setup.py +0 -0
  23. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/themes.py +0 -0
  24. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/version.py +0 -0
  25. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/config.py +0 -0
  26. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/doctor.py +0 -0
  27. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/fonts.py +0 -0
  28. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/git_hooks.py +0 -0
  29. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/git_manager.py +0 -0
  30. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/latex_compiler.py +0 -0
  31. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/project_context.py +0 -0
  32. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/reporting.py +0 -0
  33. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/__init__.py +0 -0
  34. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/bibliography.py +0 -0
  35. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/compiler.py +0 -0
  36. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/git.py +0 -0
  37. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/gitinfo.py +0 -0
  38. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/release.py +0 -0
  39. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/workflow.py +0 -0
  40. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/template_renderer.py +0 -0
  41. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/__init__.py +0 -0
  42. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/article/ieee.tex.j2 +0 -0
  43. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/article/lncs.tex.j2 +0 -0
  44. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/article/lncs.typ.j2 +0 -0
  45. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/article/main.tex.j2 +0 -0
  46. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/article/main.typ.j2 +0 -0
  47. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/github/latex.yml.j2 +0 -0
  48. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/poster/poster.tex.j2 +0 -0
  49. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/poster/poster.typ.j2 +0 -0
  50. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/presentation/beamer.tex.j2 +0 -0
  51. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/presentation/typst.typ.j2 +0 -0
  52. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/project/README.md.j2 +0 -0
  53. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/project/gitignore.j2 +0 -0
  54. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/project/pyproject.toml.j2 +0 -0
  55. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/project/vscode-settings.json.j2 +0 -0
  56. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/themes.py +0 -0
  57. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/typst_compiler.py +0 -0
  58. {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/zotero.py +0 -0
  59. {article_cli-2.0.0 → article_cli-2.0.1}/tests/__init__.py +0 -0
  60. {article_cli-2.0.0 → article_cli-2.0.1}/tests/golden/__init__.py +0 -0
  61. {article_cli-2.0.0 → article_cli-2.0.1}/tests/golden/article_main.tex +0 -0
  62. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_cli.py +0 -0
  63. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_config.py +0 -0
  64. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_doctor.py +0 -0
  65. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_fonts.py +0 -0
  66. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_latex_compiler.py +0 -0
  67. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_project_context.py +0 -0
  68. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_release_service.py +0 -0
  69. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_services.py +0 -0
  70. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_template_renderer.py +0 -0
  71. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_themes.py +0 -0
  72. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_typst_compiler.py +0 -0
  73. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_workflow_ci.py +0 -0
  74. {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_zotero_bibliography.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: article-cli
3
- Version: 2.0.0
3
+ Version: 2.0.1
4
4
  Summary: CLI tool for managing LaTeX and Typst documents with git integration and Zotero bibliography
5
5
  Project-URL: Homepage, https://github.com/feelpp/article.cli
6
6
  Project-URL: Documentation, https://github.com/feelpp/article.cli#readme
@@ -522,6 +522,18 @@ MIT License - see LICENSE file for details.
522
522
 
523
523
  ## Changelog
524
524
 
525
+ ### v2.0.1
526
+ - Keep Python package, generated-template minimum version, Antora component version, docs package version, and lockfiles synchronized
527
+ - Add a release-version bump script and CI test to prevent stale documentation version labels
528
+
529
+ ### v2.0.0
530
+ - Treat the paper lifecycle as explicit commands: `init`, `setup`, `doctor`, `bib update`, `compile`, `version`, and `release`
531
+ - Add safe `doctor --fix` repairs for output directories, managed git hooks, and `gitHeadLocal.gin`
532
+ - Make `release` the checked paper release workflow and keep `create` as a deprecated compatibility alias
533
+ - Drop Python 3.8 support; test Python 3.9 through 3.13
534
+ - Move generated templates and workflows to package Jinja2 resources
535
+ - Add Antora documentation with Feel++ Antora UI
536
+
525
537
  ### v1.5.0
526
538
  - Add `doctor` diagnostics with JSON output and safe `--fix` repairs
527
539
  - Split CLI implementation into command modules
@@ -462,6 +462,18 @@ MIT License - see LICENSE file for details.
462
462
 
463
463
  ## Changelog
464
464
 
465
+ ### v2.0.1
466
+ - Keep Python package, generated-template minimum version, Antora component version, docs package version, and lockfiles synchronized
467
+ - Add a release-version bump script and CI test to prevent stale documentation version labels
468
+
469
+ ### v2.0.0
470
+ - Treat the paper lifecycle as explicit commands: `init`, `setup`, `doctor`, `bib update`, `compile`, `version`, and `release`
471
+ - Add safe `doctor --fix` repairs for output directories, managed git hooks, and `gitHeadLocal.gin`
472
+ - Make `release` the checked paper release workflow and keep `create` as a deprecated compatibility alias
473
+ - Drop Python 3.8 support; test Python 3.9 through 3.13
474
+ - Move generated templates and workflows to package Jinja2 resources
475
+ - Add Antora documentation with Feel++ Antora UI
476
+
465
477
  ### v1.5.0
466
478
  - Add `doctor` diagnostics with JSON output and safe `--fix` repairs
467
479
  - Split CLI implementation into command modules
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "article-cli"
7
- version = "2.0.0"
7
+ version = "2.0.1"
8
8
  authors = [
9
9
  {name = "Christophe Prud'homme", email = "prudhomm@cemosis.fr"},
10
10
  ]
@@ -9,7 +9,7 @@ This package provides tools for:
9
9
  - Git hooks setup
10
10
  """
11
11
 
12
- __version__ = "1.5.0"
12
+ __version__ = "2.0.1"
13
13
  __author__ = "Christophe Prud'homme"
14
14
  __email__ = "prudhomm@cemosis.fr"
15
15
 
@@ -17,7 +17,7 @@ from .git_hooks import ensure_gitinfo2_hook_source
17
17
  from .template_renderer import TEMPLATE_VERSION, TemplateRenderer
18
18
  from .reporting import print_error, print_info, print_success
19
19
 
20
- ARTICLE_CLI_MIN_VERSION = "1.5.0"
20
+ ARTICLE_CLI_MIN_VERSION = "2.0.1"
21
21
  ARTICLE_TEMPLATES = {
22
22
  ("article", "default"): "article/main.tex.j2",
23
23
  ("article", "lncs"): "article/lncs.tex.j2",
@@ -14,7 +14,7 @@ import yaml
14
14
 
15
15
  from article_cli.git_hooks import refresh_gitinfo2_metadata
16
16
  from article_cli.git_manager import GitManager
17
- from article_cli.repository_setup import RepositorySetup
17
+ from article_cli.repository_setup import ARTICLE_CLI_MIN_VERSION, RepositorySetup
18
18
  from article_cli.template_renderer import TEMPLATE_VERSION
19
19
 
20
20
  try:
@@ -52,7 +52,7 @@ def assert_generated_project_files_parse(root: Path) -> None:
52
52
  assert settings["typst-lsp.exportPdf"] == "onSave"
53
53
  assert workflow["jobs"]["build_document"]
54
54
  assert "${{ github.ref_name }}" in workflow_text
55
- assert "article-cli>=1.5.0" in workflow_text
55
+ assert f"article-cli>={ARTICLE_CLI_MIN_VERSION}" in workflow_text
56
56
 
57
57
 
58
58
  class TestRepositorySetupProjectTypes:
@@ -0,0 +1,43 @@
1
+ """
2
+ Version consistency tests for release surfaces.
3
+ """
4
+
5
+ import json
6
+ from pathlib import Path
7
+
8
+ import yaml
9
+
10
+ import article_cli
11
+ from article_cli.repository_setup import ARTICLE_CLI_MIN_VERSION
12
+
13
+ try:
14
+ import tomllib
15
+ except ModuleNotFoundError: # pragma: no cover - Python 3.9/3.10
16
+ import tomli as tomllib
17
+
18
+
19
+ ROOT = Path(__file__).resolve().parents[1]
20
+
21
+
22
+ def test_release_versions_are_consistent():
23
+ """Package, generated templates, docs, and docs package use one version."""
24
+ pyproject = tomllib.loads((ROOT / "pyproject.toml").read_text())
25
+ package_json = json.loads((ROOT / "package.json").read_text())
26
+ package_lock = json.loads((ROOT / "package-lock.json").read_text())
27
+ antora = yaml.safe_load((ROOT / "docs" / "antora.yml").read_text())
28
+ uv_lock = tomllib.loads((ROOT / "uv.lock").read_text())
29
+
30
+ version = pyproject["project"]["version"]
31
+ antora_version = ".".join(version.split(".")[:2])
32
+
33
+ assert article_cli.__version__ == version
34
+ assert ARTICLE_CLI_MIN_VERSION == version
35
+ assert package_json["version"] == version
36
+ assert package_lock["version"] == version
37
+ assert package_lock["packages"][""]["version"] == version
38
+ assert antora["version"] == antora_version
39
+ assert antora["asciidoc"]["attributes"]["article-cli-version"] == version
40
+ article_package = next(
41
+ package for package in uv_lock["package"] if package["name"] == "article-cli"
42
+ )
43
+ assert article_package["version"] == version
File without changes
File without changes