forked from riscv/docs-spec-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
283 additions
and
232 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,79 +1,73 @@ | ||
# This workflow installs dependencies for PDF generation, generates the PDF, | ||
# and uploads the PDF as an artifact. | ||
|
||
name: Build Document PDF | ||
name: Create Specification Document | ||
|
||
# The workflow is triggered by pull request, push to main, and manual dispatch. | ||
on: | ||
push: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
inputs: | ||
version: | ||
description: 'Release version, e.g. X.Y.Z:' | ||
required: true | ||
type: string | ||
revision_mark: | ||
description: 'Set revision mark as Draft, Release or Stable:' | ||
required: true | ||
type: string | ||
default: 'Draft' | ||
prerelease: | ||
description: 'Tag as a pre-release?' | ||
required: false | ||
type: boolean | ||
default: true | ||
draft: | ||
description: 'Create release as a draft?' | ||
required: false | ||
type: boolean | ||
default: false | ||
pull_request: | ||
push: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
workflow_call: | ||
outputs: | ||
name: | ||
description: "The base name of the pdf file (without .pdf extensions)" | ||
value: ${{ jobs.build.outputs.name }} | ||
pdf-name: | ||
description: "The name of the pdf file (with .pdf extensions)" | ||
value: ${{ jobs.build.outputs.pdf-name }} | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-22.04 | ||
|
||
env: | ||
NAME: example-spec | ||
APT_PACKAGES_FILE: ${{ github.workspace }}/dependencies/apt_packages.txt | ||
BUNDLE_GEMFILE: ${{ github.workspace }}/dependencies/Gemfile | ||
BUNDLE_BIN: ${{ github.workspace }}/bin | ||
NPM_PACKAGE_FOLDER: ${{ github.workspace }}/dependencies | ||
outputs: | ||
name: ${{ steps.step1.outputs.name }} | ||
pdf-name: ${{ steps.step2.outputs.pdf-name }} | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Set outputs.name | ||
id: step1 | ||
run: echo "name=$NAME" >> $GITHUB_OUTPUT | ||
- name: Set outputs.pdf-name | ||
id: step2 | ||
run: echo "pdf-name=$NAME.pdf" >> $GITHUB_OUTPUT | ||
# Step 1: Checkout the repository | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
with: | ||
submodules: 'true' | ||
- name: Install Ubuntu packages | ||
run: | | ||
sudo apt-get update | ||
grep -vE '^#' ${APT_PACKAGES_FILE} | xargs sudo apt-get install --yes --no-install-recommends | ||
# Ruby for asciidoctor | ||
- name: Setup Ruby and Gemfile content | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: "2.6" | ||
bundler-cache: true | ||
# Node.js for wavedrom | ||
- uses: actions/cache@v3 | ||
with: | ||
path: ~/.npm | ||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | ||
restore-keys: | | ||
${{ runner.os }}-node- | ||
- name: Setup Node.js | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: '16' | ||
- name: Install Node.js dependencies | ||
run: npm install ${NPM_PACKAGE_FOLDER} | ||
- name: Generate PDF | ||
run: | | ||
PATH=${PATH}:${BUNDLE_BIN}:$(npm bin) \ | ||
make | ||
- name: Archive PDF result | ||
submodules: 'recursive' | ||
|
||
# Step 2: Pull the latest RISC-V Docs container image | ||
- name: Pull Container | ||
run: docker pull riscvintl/riscv-docs-base-container-image:latest | ||
|
||
# Step 3: Build Files | ||
- name: Build Files | ||
run: make | ||
env: | ||
VERSION: v${{ github.event.inputs.version }} | ||
REVMARK: ${{ github.event.inputs.revision_mark }} | ||
|
||
# Step 4: Upload the built PDF files as a single artifact | ||
- name: Upload Build Artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ${{ env.NAME }}.pdf | ||
path: ${{ env.NAME }}.pdf | ||
retention-days: 7 | ||
name: Build Artifacts | ||
path: ${{ github.workspace }}/*.pdf | ||
retention-days: 30 | ||
|
||
# Create Release | ||
- name: Create Release | ||
uses: softprops/action-gh-release@v1 | ||
with: | ||
files: ${{ github.workspace }}/*.pdf | ||
tag_name: v${{ github.event.inputs.version }} | ||
name: Release ${{ github.event.inputs.version }} | ||
draft: ${{ github.event.inputs.draft }} | ||
prerelease: ${{ github.event.inputs.prerelease }} | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GHTOKEN }} | ||
if: github.event_name == 'workflow_dispatch' | ||
# This condition ensures this step only runs for workflow_dispatch events. |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,23 @@ | ||
# Contribution Guidelines | ||
|
||
As an open-source project, we welcome and encourage the community to submit patches directly to the project. In our collaborative open source environment, standards and methods for submitting changes help reduce the chaos that can result from an active development community. | ||
As an open-source project, we appreciate and encourage community members to submit patches directly to the project. To maintain a well-organized development environment, we have established standards and methods for submitting changes. This document outlines the process for submitting patches to the project, ensuring that your contribution is swiftly incorporated into the codebase. | ||
|
||
This document explains how to submit patches to the project so your patch will be accepted quickly in the codebase. | ||
# Licensing | ||
|
||
## Licensing | ||
Licensing is crucial for open-source projects, as it guarantees that the software remains available under the conditions specified by the author. | ||
|
||
Licensing is very important to open source projects. It helps ensure the software continues to be available under the terms that the author desired. | ||
This project employs the Creative Commons Attribution 4.0 International license, which can be found in the LICENSE file within the project's repository. | ||
|
||
This project uses the Creative Commons Attribution 4.0 International license, as found in the [LICENSE](https://github.com/riscv/docs-spec-template/blob/main/LICENSE) file in the project's repo. | ||
Licensing defines the rights granted to you as an author by the copyright holder. It is essential for contributors to fully understand and accept these licensing rights. In some cases, the copyright holder may not be the contributor, such as when the contributor is working on behalf of a company. | ||
|
||
A license tells you what rights you have as an author, as provided by the copyright holder. It is important that the contributor fully understands the licensing rights and agrees to them. Sometimes the copyright holder isn't the contributor, such as when the contributor is doing work on behalf of a company. | ||
# Developer Certificate of Origin (DCO) | ||
To uphold licensing criteria and demonstrate good faith, this project mandates adherence to the Developer Certificate of Origin (DCO) process. | ||
|
||
## Developer Certification of Origin (DCO) | ||
The DCO is an attestation appended to every contribution from each author. In the commit message of the contribution (explained in greater detail later in this document), the author adds a Signed-off-by statement, thereby accepting the DCO. | ||
|
||
To make a good faith effort to ensure licensing criteria are met, this project requires the Developer Certificate of Origin (DCO) process to be followed. | ||
When an author submits a patch, they affirm that they possess the right to submit the patch under the designated license. The DCO agreement is displayed below and at https://developercertificate.org. | ||
|
||
The DCO is an attestation attached to every contribution made by every author. In the commit message of the contribution (described more fully later in this document), the author simply adds a ``Signed-off-by`` statement and thereby agrees to the DCO. | ||
|
||
When an author submits a patch, it is a commitment that the contributor has the right to submit the patch per the license. The DCO agreement is shown below and at https://developercertificate.org. | ||
|
||
``` | ||
Developer's Certificate of Origin 1.1 | ||
|
||
By making a contribution to this project, I certify that: | ||
|
@@ -38,27 +35,24 @@ By making a contribution to this project, I certify that: | |
in the file; or | ||
|
||
(c) The contribution was provided directly to me by some other | ||
person who certified (a), (b) or (c) and I have not modified | ||
person who certified (a), (b), or (c), and I have not modified | ||
it. | ||
|
||
(d) I understand and agree that this project and the contribution | ||
are public and that a record of the contribution (including all | ||
personal information I submit with it, including my sign-off) is | ||
maintained indefinitely and may be redistributed consistent with | ||
this project or the open source license(s) involved. | ||
``` | ||
|
||
### DCO Sign-Off Methods | ||
|
||
The DCO requires that a sign-off message, in the following format, appears on each commit in the pull request: | ||
|
||
`Signed-off-by: Stephano Cetola <[email protected]>` | ||
# DCO Sign-Off Methods | ||
The DCO necessitates the inclusion of a sign-off message in the following format for each commit within the pull request: | ||
|
||
You are required to use your real name in the sign-off message. | ||
Signed-off-by: Stephano Cetola <[email protected]> | ||
|
||
The DCO text can either be manually added to your commit body, or you can add either ``-s`` or ``--signoff`` to your usual Git commit commands. If you forget to add the sign-off you can also amend a previous commit with the sign-off by running ``git commit --amend -s``. If you've pushed your changes to GitHub already you'll need to force push your branch after this with ``git push -f``. | ||
Please use your real name in the sign-off message. | ||
|
||
You can manually add the DCO text to your commit body or include either -s or --signoff in your standard Git commit commands. If you forget to incorporate the sign-off, you can also amend a previous commit with the sign-off by executing git commit --amend -s. If you have already pushed your changes to GitHub, you will need to force push your branch afterward using git push -f. | ||
|
||
**Note:** | ||
Note: | ||
|
||
The name and email address of the account you use to submit your PR must match the name and email address on the ``Signed-off-by`` line in your commit message. | ||
Ensure that the name and email address associated with your GitHub account match the name and email address in the Signed-off-by line of your commit message. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,65 @@ | ||
# Makefile for RISC-V Doc Template | ||
# | ||
# This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 | ||
# International License. To view a copy of this license, visit | ||
# http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to | ||
# Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. | ||
# | ||
# SPDX-License-Identifier: CC-BY-SA-4.0 | ||
# | ||
# Description: | ||
# | ||
# This Makefile is designed to automate the process of building and packaging | ||
# the Doc Template for RISC-V Extensions. | ||
|
||
DATE ?= $(shell date +%Y-%m-%d) | ||
VERSION ?= v0.0.0 | ||
REVMARK ?= Draft | ||
DOCKER_RUN := docker run --rm -v ${PWD}:/build -w /build \ | ||
riscvintl/riscv-docs-base-container-image:latest | ||
|
||
HEADER_SOURCE := header.adoc | ||
PDF_RESULT := example-spec.pdf | ||
PDF_RESULT := spec-sample.pdf | ||
|
||
ASCIIDOCTOR_PDF := asciidoctor-pdf | ||
OPTIONS := --trace \ | ||
-a compress \ | ||
-a mathematical-format=svg \ | ||
-a revnumber=${VERSION} \ | ||
-a revremark=${REVMARK} \ | ||
-a revdate=${DATE} \ | ||
-a pdf-fontsdir=docs-resources/fonts \ | ||
-a pdf-theme=docs-resources/themes/riscv-pdf.yml \ | ||
--failure-level=ERROR | ||
REQUIRES := --require=asciidoctor-bibtex \ | ||
--require=asciidoctor-diagram \ | ||
--require=asciidoctor-mathematical | ||
|
||
.PHONY: all build clean build-container build-no-container | ||
|
||
all: build | ||
|
||
build: | ||
build: | ||
@echo "Checking if Docker is available..." | ||
@if command -v docker >/dev/null 2>&1 ; then \ | ||
echo "Docker is available, building inside Docker container..."; \ | ||
$(MAKE) build-container; \ | ||
else \ | ||
echo "Docker is not available, building without Docker..."; \ | ||
$(MAKE) build-no-container; \ | ||
fi | ||
|
||
build-container: | ||
@echo "Starting build inside Docker container..." | ||
$(DOCKER_RUN) /bin/sh -c "$(ASCIIDOCTOR_PDF) $(OPTIONS) $(REQUIRES) --out-file=$(PDF_RESULT) $(HEADER_SOURCE)" | ||
@echo "Build completed successfully inside Docker container." | ||
|
||
@echo "Building asciidoc" | ||
asciidoctor-pdf \ | ||
--attribute=mathematical-format=svg \ | ||
--attribute=pdf-fontsdir=docs-resources/fonts \ | ||
--attribute=pdf-style=docs-resources/themes/riscv-pdf.yml \ | ||
--failure-level=ERROR \ | ||
--require=asciidoctor-bibtex \ | ||
--require=asciidoctor-diagram \ | ||
--require=asciidoctor-mathematical \ | ||
--out-file=$(PDF_RESULT) \ | ||
$(HEADER_SOURCE) | ||
build-no-container: | ||
@echo "Starting build..." | ||
$(ASCIIDOCTOR_PDF) $(OPTIONS) $(REQUIRES) --out-file=$(PDF_RESULT) $(HEADER_SOURCE) | ||
@echo "Build completed successfully." | ||
|
||
clean: | ||
rm $(PDF_RESULT) | ||
@echo "Cleaning up generated files..." | ||
rm -f $(PDF_RESULT) | ||
@echo "Cleanup completed." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,2 @@ | ||
Dependencies for the build environment for various package managers. Used in | ||
`.github/workflows/`. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,31 @@ | ||
bison | ||
build-essential | ||
python3-pip | ||
cmake | ||
curl | ||
flex | ||
fonts-lyx | ||
git | ||
graphviz | ||
# For wavedrom | ||
default-jre | ||
libcairo2-dev | ||
libffi-dev | ||
libgdk-pixbuf2.0-dev | ||
libpango1.0-dev | ||
libxml2-dev | ||
libglib2.0-dev | ||
make | ||
pkg-config | ||
ruby | ||
ruby-dev | ||
libgif-dev | ||
libwebp-dev | ||
libzstd-dev | ||
ruby-full | ||
gem | ||
npm | ||
texlive-latex-base | ||
texlive-fonts-recommended | ||
texlive-fonts-extra | ||
texlive-latex-extra | ||
texlive-science |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,8 @@ | ||
{ | ||
"name": "local", | ||
"version": "0.0.1", | ||
"dependencies": { | ||
"bytefield-svg": "^1.8.0", | ||
"wavedrom-cli": "^2.6.8" | ||
} | ||
}, | ||
"name": "local", | ||
"version": "0.0.1" | ||
} |
Oops, something went wrong.