Changelog
Contents
Changelog#
0.3.1 (2022-08-23)#
Fixed bug related to displaying figure caption icons for cached datasets.
Added recursive dependency checks; if any upstream dependency of a figure script is a dataset or cached Zenodo deposit, an icon to that dataset/deposit will be displayed next to the figure.
Added functionality to obtain the Snakemake DAG prior to running any of the rules (used to infer upstream dependencies above). Metadata from the DAG is stored in the global config.
Reintroduced option to render the workflow DAG when building the article; users can now provide DAG-related settings under the
dag
entry in the config file (setrender: true
to enable the DAG generation). Note thatshowyourwork
now depends on thegraphviz
package, so users may have to clear their~/.showyourwork
cache to force regeneration of the defaultshowyourwork
conda environment.Workaround for issue with incomplete files not getting deleted when passing the
--rerun-incomplete
flag. Runningshowyourwork clean
now deletes the.snakemake/incomplete
directory.Server errors on Zenodo / Zenodo Sandbox no longer lead to fatal errors when accessing the remote file cache.
Fixed issue with broken GitHub links in the PDF when using SSH to authenticate with GitHub.
Implemented better testing for showyourwork features; test repositories now persist on GitHub (showyourwork/test-**).
Implemented major fix for issue #124, which allows us to optimize the DAG by eliminating unnecessary jobs upstream of jobs with cache hits.
Users can now clone an empty remote repository prior to running
showyourwork setup
without triggering an error.Added option to pass custom arguments to the
tectonic
build.Removed dependency on
fontspec
, which caused issues with TT fonts. Theshoyourwork
logo is no longer displayed as text in a custom font, but as a PDF image.Fix for newer versions of
git
that usemain
as the default branch name, which led to errors when integrating with Overleaf (which usesmaster
).Revamped the way tests for the showyourwork/showyourwork repo are run. Split tests into unit tests, local integration tests, and remote integration tests. The first two can be executed on either the base repo or any fork; the last one can only be executed on the base repo or upon the
pull_request_target
trigger from a PR, which occurs when a PR is labeledsafe to test
by a maintainer. This change will make contributing toshowyourwork
much easier going forward!Changed the syntax for specifying the
showyourwork
version number in theshowyourwork.yml
config file. Users should now specify whether the version spec is apip
-installable version, apath
to a local installation, or aref
on the GitHub repository (optionally on a givenfork
). The previous syntax (in which the version is provided as a string and the code attempts to interpret it as one of the above options) is deprecated, but will still be supported going forward. However, this change is still backwards-incompatible, as versions ofshowyourwork
prior to0.3.1
will not be able to build repositories that require versions greater than or equal to0.3.1
(since previous versions of the code will not be able to parse the newversion
mapping syntax). Users can fix this by simply upgrading their local installation ofshowyourwork
.Removed built-in LaTeX class files for AAS journals, MNRAS, and A&A. Users who upgrade to
0.3.1
(or later) must now include all necessary class files and auxiliary TeX files insrc/tex
(and track them withgit
). This allows users to customize these files as needed and means we no longer have to maintain them as they get updated by the journals.Removed the dependence on the
marginnote
package, which was causing issues with some other packages that also defined a\marginnote
command. The margin link in the abstract now uses the built-in\marginpar
.
0.3.0 (2022-06-22)#
Brand new release, featuring a complete re-write of the workflow. Below is a list of the major changes:
showyourwork!
is now a pip-installable Python package. It is no longer a git submodule. Theshowyourwork.yml
file must now specify which version ofshowyourwork
to use.There is no longer a
Makefile
. Articles should be built using theshowyourwork
command, which creates and activates a clean conda environment containingSnakemake
and all dependencies needed to run the pipeline for each article. Users therefore no longer need to installSnakemake
ormamba
in the base environment.New articles can now be created using the
showyourwork setup
command rather than via a GitHub repository template.The syntax for many of the settings in the
showyourwork.yml
config file has changed, particularly for specifying Zenodo datasets.The directory structure for article repositories has changed slightly. Figure scripts should now be placed in the
src/scripts
directory (used to besrc/figures
). The TeX files should now be placed in thesrc/tex
directory (used to besrc
). Figure output files should now be generated insrc/tex/figures
(used to besrc/figures
).To help with the transition to the new directory structure, new repositories include a file
src/scripts/paths.py
that specifies absolute Pathlib paths to the main directories in the repository.Figure scripts are no longer inferred from the
\label
command in LaTeX. Instead, users should specify the script associated with a given figure using the new\script
command.Added support for programmatically-generated files that can be included in the TeX manuscript via the new
\variable
command.Users must now manually add
\usepackage{showyourwork}
to their LaTeX manuscript.Overhauled the way
showyourwork
integrates with Zenodo. Static datasets should now be specified using their full DOI. Dynamic datasets are deprecated in favor of “cached” datasets. These are intermediate results that get cached on Zenodo Sandbox alongside a hash of the rules and all upstream dependencies used to generate them, making it possible to automatically restore results from the cloud in a way that preserves the full reproducibility of the workflow.Implemented (experimental) integration with Overleaf projects, allowing users to pull changes to the manuscript and push changes to the figures.
Drastically improved the command-line interface, suppressing most of the noise generated by Snakemake in favor of succinct informational messages describing the build process. All messages now get logged to files in
.showyourwork/logs
for easier debugging. Similarly, improved error catching and added informational error messages for most of the failure modes of the workflow.Several other tweaks, bugfixes, and improvements. Lots of changes to the back end to make
showyourwork
easier to develop, maintain, and extend!
0.2.3 (2022-02-21)#
Bump
jinja2
version to fix issue withmarkupsafe
Changelog: v0.2.2…v0.2.3
0.2.2 (2022-01-05)#
Tweaks to the logo (now an actual font!)
Added option to exclude files from article cache on CI
Fixed behavior of figures labeled with an asterisk (e.g.,
\label{fig*:...}
)Changelog: v0.2.1…v0.2.2
0.2.1 (2021-12-18)#
Implemented custom DAG generation (cleaner, prettier)
Added several entries to the Projects page on the docs
Streamlined arXiv tarball generation step
Added a basic make lint command to check for repo issues
Users can now disable caching on CI by setting the cache number to
null
Switch to installing
graphviz
withconda
Pinned all
conda
dependencies to specific versionsChangelog: v0.2.0…v0.2.1
0.2.0 (2021-12-07)#
Major changes to the Zenodo interface! Please read the Zenodo section of the documentation on the showyourwork.yml file for details on what changed. The tl;dr is that all deposits now require either a concept or a version id (read more about that here: https://help.zenodo.org/#versioning); this id now uniquely identifies the deposit (previously, we relied on the uniqueness of the deposit title & creators).
Added support for non-Python scripts to generate datasets and other dependencies
Fixed issue with large datasets lingering in the arxiv tarball
Added a
make fast
option to reproduce the results locally w/out running expensive stepsSignficiant improvements to the documentation, now with detailed info on LaTeX features
Added a
marginicon
command for custom margin icons next to figuresAdded a progress bar to Zenodo uploads
Now re-downloading datasets on GitHub Actions if a newer version is available
Better path resolution when extracting tarballs
Changelog: v0.1.35…v0.2.0
0.1.35 (2021-11-22)#
Fixed issue with unnecessary downloads of Zenodo datasets on CI.
Fixed issue that prevented downloading the Zenodo datasets if the Zenodo API key belonged to someone other than the creator of the deposit.
Fixed issue that caused the conda env creation to fail. We are now installing snakemake-minimal and pinning the mamba version; this is only a temporary solution.
Changelog: v0.1.34…v0.1.35
0.1.34 (2021-11-18)#
Now uploads a build artifact whenever the workflow fails on CI for easier debugging.
Changelog: v0.1.33…v0.1.34
0.1.33 (2021-11-17)#
Fixed issue with unnecessary reruns of figure scripts
Changelog: v0.1.32…v0.1.33
0.1.32 (2021-11-17)#
Fixed issue #57.
Better documentation for the config file and the
Snakefile
.Changelog: v0.1.31…v0.1.32
0.1.31 (2021-11-15)#
Migrated to the new Zenodo API; previously the limit for uploading files was 100 MB (now 50 GB).
Changelog: v0.1.30…v0.1.31
0.1.30 (2021-11-12)#
Added an example on how to use jinja templating to simplify the
showyourwork.yml
config file.Developers: Undo the reset build cache operation from the previous patch, since this causes race conditions when accessing the cache during the unit tests (since we are concurrently running dozens of actions on a single repo!)
Changelog: v0.1.29…v0.1.30
0.1.29 (2021-11-10)#
Support for creation/download of Zenodo tarballs.
Implements the idea in #48 for specifying custom manuscript dependencies.
Bugfix for rules that subclass the main showyourwork figure rule.
Implements the idea in #47 for custom Zenodo dataset generation.
Developers: Now resetting the build cache before each unit test on
showyourwork-example
and then re-running the cached build.Changelog: v0.1.28…v0.1.29
0.1.28 (2021-11-09)#
Added support for non-Python scripts; users can now define instructions in the YAML config file to execute other kinds of scripts.
Implemented better error messages when figure scripts fail.
Allow users to specify a
graphicspath
for all figures in the document.Allow users to customize the name of the manuscript (it no longer needs to be called
ms.tex
).Changelog: v0.1.27…v0.1.28
0.1.27 (2021-11-03)#
Added support for installing a minimal TeX distribution so that TeX can be rendered in matplotlib; see Custom workflows.
Changelog: v0.1.26…v0.1.27
0.1.26 (2021-11-02)#
Fixed issue causing documentation builds to fail
Changelog: v0.1.25…v0.1.26
0.1.25 (2021-11-02)#
Fixed issue that prevented ORCID badges from showing up when building the PDF on GitHub Actions
Changelog: v0.1.24…v0.1.25
0.1.24 (2021-11-02)#
Fixed issue with
os.get_terminal_size
breaking CI builds when displaying error messagesChangelog: v0.1.23…v0.1.24
0.1.23 (2021-11-02)#
Added explicit support for MNRAS and A&A LaTeX document classes
Improved support for new Apple M1 chips
Fixed options clash for package
hyperref
Changelog: v0.1.22…v0.1.23
0.1.22 (2021-11-02)#
Updated LaTeX package
fontawesome
tofontawesome5
Developers: Can now run tests on PR branches to generate showyourwork-example-dev branches
Changelog: v0.1.21…v0.1.22
0.1.21 (2021-11-01)#
Fixed minor issue with error messages for custom figures
Improved documentation page on projects that use
showyourwork
Changelog: v0.1.20…v0.1.21
0.1.20 (2021-10-28)#
Fixed issue with figure link formatting when enabling linenumbers in AASTeX
Made arxiv_tarball_exclude paths relative to the repository root
Added a make update option to update
showyourwork
to the latest release.Changelog: v0.1.19…v0.1.20
0.1.19 (2021-10-25)#
Fixed typo that causes Zenodo integration to fail.
Changelog: v0.1.18…v0.1.19
0.1.18 (2021-10-25)#
Added more informative error messages that are displayed at the very end of the build logs. Still more work to be done on this front, but error logs should now be much easier to parse.
Implemented the new Zenodo config structure in the
showyourwork.yml
file, as per #31.Changelog: v0.1.17…v0.1.18
0.1.17 (2021-10-22)#
Changed the way Zenodo dependencies are provided in the
showyourwork.yml
file. Dependencies like datasets should still be listed as entries under the corresponding figure scripts infigure_dependencies
, but all information on how togenerate
ordownload
them should now go in a separate top-levelzenodo:
key. This makes it much easier to, e.g., specify datasets used by multiple figures. Please see theCustom workflows
section of the docs for more information.Improved the API documentation.
Changelog: v0.1.16…v0.1.17
0.1.16 (2021-10-22)#
Template repo update: Pared down the
Makefile
in the template repository. This now calls aMakefile
in theshowyourwork
submodule (this repo), which contains all the directives. This makes it easier to improve/update the workflow, since we can just updateshowyourwork
.Changelog: v0.1.15…v0.1.16
0.1.15 (2021-10-21)#
Template repo update: Added options to the
Makefile
to generate a report and a DAG. Added a submodule setup check; if the user didn’t init the showyourwork submodule, does it automatically before building.Changelog: v0.1.14…v0.1.15
0.1.14 (2021-10-21)#
Remove duplicated Zenodo links from figure captions
Changelog: v0.1.13…v0.1.14
0.1.13 (2021-10-21)#
Fixed API documentation
Fixed error with arxiv_tarball_exclude and arxiv tarball issue (#21)
Changelog: v0.1.12…v0.1.13
0.1.12 (2021-10-20)#
Revert code that prevents the Snakefile from being loaded more than once. Turns out that is expected behavior, and is required in order for the module import syntax to work!
Switched to adding checks within the
zenodo.py
script to prevent dependencies from getting ingested multiple times.Changelog: v0.1.11…v0.1.12
0.1.11 (2021-10-20)#
Fix bug preventing figures from being cached properly when one script generates multiple figures
Fixed issues due to Snakefile being loaded multiple times
Auto-populate the
projects
page on the docs via a GitHub API search on every releaseChangelog: v0.1.10…v0.1.11
0.1.10 (2021-10-20)#
Cleaned up the workflow, separating rules into their own files with better documentation.
Added a fix for nested figures (figures under subdirectories in the
src/figures
folder).Fixed issue with multiple Zenodo datasets causing the build to fail.
Added support for figures in figure* environments.
Fixed issue with occasional missing </HTML> closing tags in the showyourwork XML tree.
Added some API documentation; more coming soon.
Changelog: v0.1.9…v0.1.10
0.1.9 (2021-10-18)#
Template repo update: Added a
Makefile
for quick article generation; added docs on how to use it.Changelog: v0.1.8…v0.1.9
0.1.8 (2021-10-18)#
Added “One script, multiple figures” example
Improved the documentation for script dependencies and datasets
Fixed a bug when downloading deposits from Zenodo
Added release testing
Changelog: v0.1.7…v0.1.8
0.1.7 (2021-10-18)#
Added explicit support for Zenodo-hosted datasets.
Template repo update: Added the environment variable
ZENODO_TOKEN
to.github/workflows/showyourwork.yml
.Changelog: v0.1.6…v0.1.7
0.1.6 (2021-10-14)#
Added documentation for the
expensive-figure
example.Changelog: v0.1.5…v0.1.6
0.1.5 (2021-10-14)#
Added the
expensive-figure
example for computationally expensive figure generation.Changelog: v0.1.4…v0.1.5
0.1.4 (2021-10-13)#
Initial release of the workflow.