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.
- {article_cli-2.0.0 → article_cli-2.0.1}/PKG-INFO +13 -1
- {article_cli-2.0.0 → article_cli-2.0.1}/README.md +12 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/pyproject.toml +1 -1
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/__init__.py +1 -1
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/repository_setup.py +1 -1
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_repository_setup.py +2 -2
- article_cli-2.0.1/tests/test_version_consistency.py +43 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/.gitignore +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/LICENSE +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/__main__.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/cli.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/command_runner.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/__init__.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/bibtex.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/clean.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/compile.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/config.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/doctor.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/fonts.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/init.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/release.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/setup.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/themes.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/commands/version.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/config.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/doctor.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/fonts.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/git_hooks.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/git_manager.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/latex_compiler.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/project_context.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/reporting.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/__init__.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/bibliography.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/compiler.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/git.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/gitinfo.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/release.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/services/workflow.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/template_renderer.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/__init__.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/article/ieee.tex.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/article/lncs.tex.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/article/lncs.typ.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/article/main.tex.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/article/main.typ.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/github/latex.yml.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/poster/poster.tex.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/poster/poster.typ.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/presentation/beamer.tex.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/presentation/typst.typ.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/project/README.md.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/project/gitignore.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/project/pyproject.toml.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/project/vscode-settings.json.j2 +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/themes.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/typst_compiler.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/zotero.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/__init__.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/golden/__init__.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/golden/article_main.tex +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_cli.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_config.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_doctor.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_fonts.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_latex_compiler.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_project_context.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_release_service.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_services.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_template_renderer.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_themes.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_typst_compiler.py +0 -0
- {article_cli-2.0.0 → article_cli-2.0.1}/tests/test_workflow_ci.py +0 -0
- {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.
|
|
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
|
|
@@ -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 = "
|
|
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>=
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/presentation/beamer.tex.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{article_cli-2.0.0 → article_cli-2.0.1}/src/article_cli/templates/project/vscode-settings.json.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|