riscv / riscv-fast-interrupt

Proposal for a RISC-V Core-Local Interrupt Controller (CLIC)
https://jira.riscv.org/browse/RVG-63
Creative Commons Attribution 4.0 International
245 stars 49 forks source link

= RISC-V Specification Template

This repository serves as a template for creating GitHub repositories within the RISC-V organization for the purpose of developing specifications. It aims to facilitate and standardize the process of specification development.

NOTE: If you are viewing this in a specification repository, kindly update the title for this section and provide an introduction relevant to your repository.

== License

This work is licensed under a Creative Commons Attribution 4.0 International License (CC-BY-4.0). For details, see the link:LICENSE[LICENSE] file.

== Maintainers

The list of maintainers of this specification is maintained in the link:MAINTAINERS.md[MAINTAINERS] file.

== Contributors

The list of contributors to this specification is maintained in the link:src/contributors.adoc[contributors] file.

For guidelines on how to contribute, refer to the link:CONTRIBUTING.md[CONTRIBUTING] file.

== Governance

The governance for this project is defined in the link:GOVERNANCE.md[GOVERNANCE] file.

Community information, including meeting (if held) and mailing lists are detailed in this file.

== Building the Document

=== Directory Structure

The following directories are used to organize the contents of this repo:

=== Prerequisites

To build the document, you'll need the following tools installed on your system:

=== Cloning the Repository

git clone --recurse-submodules https://github.com/riscv/riscv-fast-interrupt.git

All in one single line:

git clone --recurse-submodules https://github.com/riscv/riscv-fast-interrupt.git && cd docs-spec-template && git submodule update --init --recursive

=== Building the Documentation

To start the build process, run:

cd ./riscv-fast-interrupt && make build

The link:Makefile[] script will check the availability of Docker on your system:

The documentation is generated from the AsciiDoctor source files in your project. The primary source file is specified by the HEADER_SOURCE variable in the Makefile.

The build process utilizes several options, including theming and font settings, and generates a PDF document as output.

=== Cleaning up

To clean up the generated files, run:

make clean

== Enabling pre-commit checks locally

The repository has some basic commit checks set up with https://pre-commit.com/[pre-commit] that will be enforced by the GitHub CI. To ensure these checks are also run in the local repository while making changes the following can be done:

.Installing pre-commit tool [source,shell]

Do once on your system

pip3 install pre-commit

.Installing pre-commit git hook in repo [source,shell]

Do once in local repo

pre-commit install

Rather than doing the above pre-commit install in every repo that uses it, you can do it https://pre-commit.com/#automatically-enabling-pre-commit-on-repositories[once on your system.]

When enabling additional checks https://pre-commit.com/#plugins[by editing .pre-commit-config.yaml], it is recommended running the newly added check on all files in the repository. This can be done with the following command:

.Running all pre-commit hooks on all files [source,shell]

pre-commit run --all-files