{"id":23442303,"url":"https://github.com/repronim/reproschema-protocol-cookiecutter","last_synced_at":"2025-04-09T21:48:51.250Z","repository":{"id":213185889,"uuid":"733237282","full_name":"ReproNim/reproschema-protocol-cookiecutter","owner":"ReproNim","description":"A cookiecutter for reproschema protocols.","archived":false,"fork":false,"pushed_at":"2024-07-01T02:55:24.000Z","size":105,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-09T21:48:43.845Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ReproNim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-18T21:51:32.000Z","updated_at":"2024-07-01T02:55:27.000Z","dependencies_parsed_at":"2024-01-11T20:25:23.918Z","dependency_job_id":"7e7e901f-9456-4623-9af3-ed46b27f39c2","html_url":"https://github.com/ReproNim/reproschema-protocol-cookiecutter","commit_stats":null,"previous_names":["repronim/reproschema-protocol-cookiecutter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReproNim%2Freproschema-protocol-cookiecutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReproNim%2Freproschema-protocol-cookiecutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReproNim%2Freproschema-protocol-cookiecutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReproNim%2Freproschema-protocol-cookiecutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ReproNim","download_url":"https://codeload.github.com/ReproNim/reproschema-protocol-cookiecutter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119403,"owners_count":21050754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-23T17:29:20.620Z","updated_at":"2025-04-09T21:48:51.232Z","avatar_url":"https://github.com/ReproNim.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# reproschema-protocol-cookiecutter\nA [Cookiecutter](https://cookiecutter.readthedocs.io/en/stable/) for [ReproSchema](https://github.com/ReproNim/reproschema) protocols.\n\nYou can find a demo protocol [here](https://github.com/ReproNim/reproschema-demo-protocol) generated by this cookiecutter. Here is our [online document](https://www.repronim.org/reproschema/) to help you customize your newly generated protocol based on specific research needs. The relevant chapters are as follows:\n- [Creating a Research Protocol Using Cookiecutter](https://www.repronim.org/reproschema/41_create_new_protocol/)\n- [Adopting Assessments from the reproschema-library](https://www.repronim.org/reproschema/42_adopt_assessments/)\n- [Creating New Assessments for Unique Research Needs](https://www.repronim.org/reproschema/43_create_new_assess/)\n- [Add a Feedback Section](https://www.repronim.org/reproschema/44_setup_feedback/)\n- [Finalizing the Protocol](https://www.repronim.org/reproschema/45_finalize_protocol/)\n- [Toolkit](https://www.repronim.org/reproschema/46_tools/)\n\n## Prerequisites\n\nThe following are required and recommended tools for using this cookiecutter and the ReproSchema protocol it generates. This is all a one-time setup, so if you have already done it, skip to the [next section](#creating-a-new-project)!\n\n  * **pipx**\n\n    pipx is a tool for managing isolated Python-based applications. It is the recommended way to install Poetry and cruft. To install `pipx` follow the instructions here: https://pypa.github.io/pipx/installation/\n\n  * **cruft**\n\n    cruft is a tool for generating projects based on a cookiecutter (like this one!) and keeping those projects updated if the original cookiecutter changes. Install it with `pipx` by running:\n    ```shell\n    pipx install cruft\n    ```\n    You may also choose to not have a persistent installation of cruft, in which case you would replace any calls to the `cruft` command below with `pipx run cruft`.\n\n## Creating a new protocol\n\n### Step 1: Generate the protocol files\n\nTo generate a new Reproschema protocol, run the following:\n\n```bash\ncruft create https://github.com/ReproNim/reproschema-protocol-cookiecutter\n```\n\nYou will be prompted for a few values.  The defaults are fine for most\nprotocols, but do name your protocol something that makes sense to you!\nThe interactive session will guide you through the process:\n\n1. `protocol_name`: Name of the protocol; use kebab-case with no spaces.\nSuggestions:\n    - `reproschema-protocol`\n    - `mood-protocol`\n    - `media-selection`\n    - `mental-health-survey`\n2. `github_org`: Your GitHub username or organization name. This is used to construct links to documentation pages.\n3. `protocol_description`: Description of the protocol.\n    - A single brief sentence is recommended\n    - Can easily be modified later\n4. `number_of_activities`: How many activities/assessments do you want to create? Choose between 1 and 5; later, it will randomly generate the number of activities you choose for your protocol.\n5. `full_name`: Your name\n6. `email`: Your email\n7. `license`: Choose a license for the project. If your desired license is not listed, you can update or remove the `LICENSE` file in the generated project.\n\nThen, go to your protocol folder\n```bash\ncd my-reproschema-protocol  # using the folder example above\nmake setup\n```\n\n### Step 2: Create a GitHub repository\n\n1. Go to https://github.com/new and follow the instructions, being sure NOT to add a `README` or `.gitignore` file (this cookiecutter template will take care of those files for you). Be sure your GitHub repo uses the same `protocol_name`\n\n2. Add the remote to your local git repository\n\n   ```bash\n   git remote add origin https://github.com/{github-user-or-organization}/{protocol_name}.git\n   git branch -M main\n   git push -u origin main\n   ```\n3. Create the gh-pages branch\n    - Fetch the latest changes from your repository (if any):\n        ```bash\n        git fetch origin\n        ```\n    - Create and switch to the new gh-pages branch:\n        ```bash\n        git checkout -b gh-pages\n        ```\n    - Push the gh-pages branch to remote:\n        ```bash\n        git push --set-upstream origin gh-pages\n        ```\n    This branch allows you to deploy your ReproSchema UI publicly.\n\n## Keeping your project up to date\n\nTo be up-to-date with the template, first check if there is a mismatch\nbetween the project's boilerplate code and the template by running:\n\n```bash\ncruft check\n```\n\nThis indicates if there is a difference between the current project's\nboilerplate code and the latest version of the project template. If the project\nis up-to-date with the template:\n\n```output\nSUCCESS: Good work! Protocol's cruft is up to date and as clean as possible :).\n```\n\nOtherwise, it will indicate that the project's boilerplate code is not\nup-to-date by the following:\n\n```output\nFAILURE: Protocol's cruft is out of date! Run `cruft update` to clean this mess up.\n```\n## Credits\n\nThis cookiecutter was made with pieces from\n[Cookiecutter](https://cookiecutter.readthedocs.io/en/stable/) and [linkml-project-cookiecutter](https://github.com/linkml/linkml-project-cookiecutter).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frepronim%2Freproschema-protocol-cookiecutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frepronim%2Freproschema-protocol-cookiecutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frepronim%2Freproschema-protocol-cookiecutter/lists"}