A REMARK refers to an open git repository that is indexed in this repository with appropriate metadata.
Preparing your Repository¶
Minimal Repository Structure¶
.
|-- reproduce.sh
|-- reproduce_min.sh?
|-- CITATION.cff
`-- binder/
|-- environment.yml
# |-- {optional binder files}?
# ? indicates an optional requirement
# {optional binder files} are neither prohibited nor required but allow one to
# further customize the execution environment of their repository. For a list
# of full files you can place in this folder see:
# https://mybinder.readthedocs.io/en/latest/using/config_files.html.Have a tagged release.
If you make changes to your work, please release a new version/tag.
Commonly, tags will follow semantic versioning having a 3 part numeric identifier
v{major}.{minor}.{patch}where:major version changes represent large refactors, new features, and/or new analyses.
minor version changes represent small refactoring efforts and small added functionality.
patch changes represent small fixes made in the codebase, but no change in overall functionality.
In that repository at that release, there must be:
A
binder/directory containing configuration files to recreate your execution environment:A
binder/environment.ymlfile that can be used non-interactively to create an environment in whichreproduce.shruns successfully. For compatibility with the REMARK tooling (which currently builds environments withconda env update -f binder/environment.yml), this file MUST exist, but it may be either:a fully specified conda environment with appropriately pinned dependencies; or
a minimal conda environment that installs your chosen environment manager (for example,
uv,poetry, orpip-tools) and any tools it needs to install dependencies from a separate, pinned lockfile (for example,uv.lock,poetry.lock, or a compiledrequirements.txt).
You are encouraged to maintain your primary environment configuration in the format of your chosen tool (for example,
pyproject.toml/uv.lock,pyproject.toml/poetry.lock, orrequirements.in/requirements.txt). In this case,binder/environment.ymlserves as an adapter that ensures your tool is available inside the Binder/REMARK execution environment.Optionally, you may include any other files as part of the binder configuration specification
A
reproduce.shscript that:Runs and reproduces all the results. If this script fails, your reproduction is assumed to not have worked.
Optionally:
reproduce_min.shYou may include this file if your full
reproduce.shtakes ≥5 minutes to run on your local machine.
Include a valid CITATION.cff document with bibliographic metadata for the repository.
To create a CITATION.cff file, you may use the citation file format initializer
For “Published” REMARKs (ready for permanent archival and citation), additional requirements apply:
Zenodo DOI Required: Obtain a permanent Zenodo DOI for your repository
Specific Git Tag Required: The Zenodo archive must correspond to a specific git tag (e.g.,
v1.0.0)Version Verification: The tag provides cryptographic proof that the econ-ark fork matches your Zenodo archive exactly
📋 Complete Step-by-Step Guide: See ZENODO-GUIDE.md for detailed instructions with troubleshooting
Quick Process Summary:
Create a git tag for the version to archive:
git tag -a v1.0.0 -m "Published version"Push the tag to GitHub:
git push origin v1.0.0Enable Zenodo-GitHub integration (see ZENODO-GUIDE.md for detailed setup)
Create a GitHub release from that tag, which triggers Zenodo archival
Obtain the Zenodo DOI from the archived version
Add the DOI to your CITATION.cff:
doi: 10.5281/zenodo.XXXXXXWhen submitting to econ-ark/REMARK, specify the exact git tag that was archived
Why This Matters:
The git tag creates an immutable snapshot at a specific commit
The commit SHA-1 hash provides cryptographic verification
Anyone can verify versions match by comparing commit hashes
This guarantees: econ-ark fork = Zenodo archive = your tagged version
Timeline: 30-45 minutes following the ZENODO-GUIDE.md checklist
Submitting a REMARK¶
To index your repository as a REMARK, please file a Pull Request in this repository. Your Pull Request should either create a new catalog entry or increment the existing version entry for your REMARK.
Once you open a Pull Request, the Econ-ARK team will review your submission to ensure that your reproduce.sh script
is able to run in the provided environment. If you would like to test this process on your own, you may clone this
repository, update the cataloged version, and build/execute your REMARK using the provided cli.py script.