This repository contains the content and source code for the ArchivesSpace TechDocs site.
The documentation content is found in src/content/docs/ with the following structure:
- Architecture - System architecture and components overview
- Administration - Running and maintaining ArchivesSpace
- Provisioning - Deployment and scaling
- Migrations - Data migration guides
- Customization - Configuration and customization options
- Development - Local development and contributing
- API - API documentation and usage
- About - About the TechDocs repository
TechDocs is a Node.js application, built with Astro and its Starlight documentation site framework. Content is written in Markdown. Automated testing is done with Cypress. The source code is hosted on GitHub. The site is statically built and hosted via Cloudflare Pages. When the source code changes, a new set of static files are generated and published shortly after.
- Node.js v18.17.1 or v20.3.0, v22.0.0 or higher (v19 and v21 are not supported) - this is an Astro requirement
# First clone the repository and install its dependencies
git clone https://github.com/archivesspace/tech-docs.git
cd tech-docs
npm install
# Next, either run the dev server at http://localhost:4321/ which instantly reflects changes to the source code,
npm run dev
# or build the static site for production
npm run build
# and optionally serve the static build to http://localhost:4321/
npm run previewRunning the tests requires either the dev server or the production build to be running at http://localhost:4321/, ie:
# Build and serve the production build in one terminal,
npm run build
npm run preview
# then run the tests from another terminal
npm run testThe following scripts are made available via package.json:
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run test:dev- Run tests in development modenpm run test:prod- Run tests in production modenpm run test- Run tests in production mode by defaultnpm run prettier:check- Check code formattingnpm run prettier:fix- Fix code formattingnpm run stylelint:check- Check stylesnpm run stylelint:fix- Fix style issues
Issues for ArchivesSpace's technical documentation are tracked in Jira. If there isn't a ticket in this system, go ahead and make one. Be sure to include a title and clear description with as much relevant information as possible.
When you are ready to start working on an issue, please assign it to yourself as an indication that you are working on it. Then [fork TechDocs][https://github.com/archivesspace/tech-docs/fork] and create a branch with a descriptive name.
A good branch name would include the ticket number in it. For example, if you are working on JIRA ticket TD-123:
git checkout -b TD-123-descriptive-short-titleBefore running any tests, you will need to set up your environment. See Running TechDocs locally.
At this point, you're ready to make your changes! Feel free to ask for help; remember everyone is a beginner at first
- ArchivesSpace Program Team - [email protected]
Before making a pull request, make sure tests run successfully and code adheres to style rules. See Testing for running tests. To apply style rules automatically:
npm run prettier:fix
npm run stylelint:fixAt this point, you should switch back to your main branch and make sure it's up to date with ArchivesSpace's main branch:
git remote add upstream [email protected]:archivesspace/tech-docs.git
git checkout main
git pull upstream mainThen update your feature branch from your local copy of main, and push it!
git checkout TD-123-descriptive-short-title
git rebase main
git push --set-upstream origin TD-123-descriptive-short-titleFinally, go to GitHub and [make a Pull Request][https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request] :D
Our CI process will run all test suites against the pushed branch. We care about quality, so your Pull Request won't be merged until all test suites pass. If any linting checks fail, the PR reviewer can fix those issues.
All Pull Requests are reviewed by at least one member of the ArchivesSpace Core Committer's Group.
A core committer reviews the issue/ticket associated with the Pull Request to make sure they understand what the code changes are supposed to do. Next, they review the code changes to see the proposed solution. Then they checkout the branch to test the solution in a running instance of ArchivesSpace.
During the review, the core committer may have comments or ask questions in the Pull Request. Once the comment/questions have been answered/resolved, a Pull Request can only be accepted and merged into the core code base by a core committer if:
- All test suites are passing.
- It is up-to-date with current main.
- ArchivesSpace Help Center (requires member login)
- ArchivesSpace API Documentation
- ArchivesSpace Website
This project is licensed under the ECL-2.0 License.