diff --git a/CHANGELOG.md b/CHANGELOG.md index f2b7b86f9..3ba877718 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0). ### Fixed +## 0.10.2 - 2023-10-15 + +### Fixed + +- paper_md: export BibTeX file and replace keys containing `.` to prevent pandoc error + ## 0.10.1 - 2023-10-06 ### Changed diff --git a/CITATION.cff b/CITATION.cff index 9f0a6a4d9..a34fc88ff 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -8,6 +8,6 @@ authors: given-names: "Julian" orcid: "https://orcid.org/0000-0003-2682-8036" title: "CoLRev: An open-source environment for collaborative reviews" -version: 0.10.1 -date-released: 2023-10-06 +version: 0.10.2 +date-released: 2023-10-15 url: "https://github.com/CoLRev-Environment/colrev" diff --git a/colrev/dataset.py b/colrev/dataset.py index ae1636245..a31ac51b4 100644 --- a/colrev/dataset.py +++ b/colrev/dataset.py @@ -60,6 +60,7 @@ class Dataset: "data/prep_man/records_prep_man.bib", "data/prep/", "data/dedupe/", + "data/data/sample_references.bib", ] DEPRECATED_GIT_IGNORE_ITEMS = [ "missing_pdf_files.csv", diff --git a/colrev/ops/built_in/data/paper_md.py b/colrev/ops/built_in/data/paper_md.py index faa7a9c85..6d95e1532 100644 --- a/colrev/ops/built_in/data/paper_md.py +++ b/colrev/ops/built_in/data/paper_md.py @@ -29,6 +29,7 @@ import colrev.ops.data +# pylint: disable=too-many-instance-attributes @zope.interface.implementer(colrev.env.package_manager.DataPackageEndpointInterface) @dataclass class PaperMarkdown(JsonSchemaMixin): @@ -53,6 +54,7 @@ class PaperMarkdown(JsonSchemaMixin): the corresponding record will be marked as rev_synthesized.""" NON_SAMPLE_REFERENCES_RELATIVE = Path("non_sample_references.bib") + SAMPLE_REFERENCES_RELATIVE = Path("sample_references.bib") ci_supported: bool = False @@ -109,6 +111,9 @@ def __init__( self.non_sample_references = ( data_operation.review_manager.data_dir / self.NON_SAMPLE_REFERENCES_RELATIVE ) + self.sample_references = ( + data_operation.review_manager.data_dir / self.SAMPLE_REFERENCES_RELATIVE + ) self.data_operation = data_operation self.settings.paper_output = ( @@ -128,6 +133,8 @@ def __init__( ) self.__temp_path.mkdir(exist_ok=True, parents=True) + self.review_manager = data_operation.review_manager + # pylint: disable=unused-argument @classmethod def add_endpoint(cls, operation: colrev.ops.data.Data, params: str) -> None: @@ -651,6 +658,15 @@ def __create_non_sample_references_bib(self) -> None: except AttributeError: pass + def __copy_references_bib(self) -> None: + records = self.review_manager.dataset.load_records_dict() + for record_id, record_dict in records.items(): + record_dict = {k.replace(".", "_"): v for k, v in record_dict.items()} + records[record_id] = record_dict + self.review_manager.dataset.save_records_dict_to_file( + records=records, save_path=self.sample_references + ) + def __call_docker_build_process( self, *, data_operation: colrev.ops.data.Data, script: str ) -> None: @@ -700,6 +716,7 @@ def build_paper(self, *, data_operation: colrev.ops.data.Data) -> None: self.__retrieve_default_csl() self.__create_non_sample_references_bib() + self.__copy_references_bib() word_template = self.settings.word_template diff --git a/colrev/ops/upgrade.py b/colrev/ops/upgrade.py index bf7e2032c..5871f5bf1 100644 --- a/colrev/ops/upgrade.py +++ b/colrev/ops/upgrade.py @@ -149,6 +149,12 @@ def main(self) -> None: "script": self.__migrate_0_10_1, "released": True, }, + { + "version": CoLRevVersion("0.10.1"), + "target_version": CoLRevVersion("0.10.2"), + "script": self.__migrate_0_10_2, + "released": True, + }, ] print(f"installed_colrev_version: {installed_colrev_version}") print(f"settings_version: {settings_version}") @@ -523,8 +529,18 @@ def __migrate_0_10_1(self) -> bool: source["search_type"] = "FILES" self.__save_settings(settings) + return self.repo.is_dirty() - return False + def __migrate_0_10_2(self) -> bool: + paper_md_path = Path("data/data/paper.md") + paper_md_content = paper_md_path.read_text(encoding="utf-8") + paper_md_content = paper_md_content.replace( + "data/records.bib", "data/data/sample_references.bib" + ) + paper_md_path.write_text(paper_md_content, encoding="utf-8") + self.repo.index.add([str(paper_md_path)]) + + return self.repo.is_dirty() # Note: we can ask users to make decisions (when defaults are not clear) diff --git a/colrev/template/paper_md/paper.md b/colrev/template/paper_md/paper.md index aab67582a..65642930b 100644 --- a/colrev/template/paper_md/paper.md +++ b/colrev/template/paper_md/paper.md @@ -1,7 +1,7 @@ --- title: "{{project_title}}" author: "{{author}}" -bibliography: [data/records.bib,data/data/non_sample_references.bib] +bibliography: [data/data/sample_references.bib,data/data/non_sample_references.bib] figPrefix: "Figure" tblPrefix: "Table" csl: "https://raw.githubusercontent.com/citation-style-language/styles/master/apa.csl" diff --git a/pyproject.toml b/pyproject.toml index 793670667..6cd66355d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "colrev" -version = "0.10.1" +version = "0.10.2" description = "CoLRev: An open-source environment for collaborative reviews" authors = ["Gerit Wagner ", "Julian Prester "] license = "MIT" diff --git a/release-checklist.md b/release-checklist.md index fb005ee1f..72c1d6bba 100644 --- a/release-checklist.md +++ b/release-checklist.md @@ -8,9 +8,9 @@ - Run `colrev env --update_package_list`. - Update Docker image versions and test. - Collect release notes and update the `CHANGELOG.md`. -- Update version and date in `CITATION.cff`. +- Update **version** and **date** and date in `CITATION.cff`. - Update version in `SECURITY.md`. -- Update the **version** and **date** in `pyproject.toml`. Check whether other parts of the `pyproject.toml` need to be updated. Check whether dependencies can be removed. +- Update the version in `pyproject.toml`. Check whether other parts of the `pyproject.toml` need to be updated. Check whether dependencies can be removed. - Update the Github milestones, close current one, make plans for the next milestones - Commit the changes (`release 0.10.0`). - Push to Github. Check whether the installation, tests, and pre-commit hooks pass. diff --git a/tests/2_ops/check_test.py b/tests/2_ops/check_test.py index 370d78f95..4b2fe4542 100644 --- a/tests/2_ops/check_test.py +++ b/tests/2_ops/check_test.py @@ -14,7 +14,7 @@ def test_checks( # type: ignore checker = colrev.checker.Checker(review_manager=base_repo_review_manager) - expected = ["0.10.1", "0.10.1"] + expected = ["0.10.2", "0.10.2"] actual = checker.get_colrev_versions() assert expected == actual