Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Default owners for everything in the repo.
* @Arm-Software/golang-utils-admin
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!--
Copyright (C) 2020-2026 Arm Limited or its affiliates and Contributors. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->
### Description

<!--
A detailed description of what is being reported. Please include steps to reproduce the problem.

Things to consider sharing:
- What version of the package is being used ?
- What is the host platform and version (e.g. macOS 10.15.2, Windows 10, Ubuntu 18.04 LTS) ?
-->



### Issue request type

<!--
Please add only one `x` to one of the following types. Do not fill multiple types (split the issue otherwise).

-->

- [ ] Enhancement
- [ ] Bug
- [ ] Question
21 changes: 21 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<!--
Copyright (C) 2020-2026 Arm Limited or its affiliates and Contributors. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->
### Description

<!--
Please add any detail or context that would be useful to a reviewer.
-->



### Test Coverage

<!--
Please put an `x` in the correct box e.g. `[x]` to indicate the testing coverage of this change.
-->

- [ ] This change is covered by existing or additional automated tests.
- [ ] Manual testing has been performed (and evidence provided) as automated testing was not feasible.
- [ ] Additional tests are not required for this change (e.g. documentation update).
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
timezone: Europe/London
open-pull-requests-limit: 10
rebase-strategy: disabled
106 changes: 106 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
#
# Copyright (C) 2020-2026 Arm Limited or its affiliates and Contributors. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
name: CI

concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ inputs.branch ||
github.head_ref || github.ref }}
cancel-in-progress: true

on:
push:
branches: [ main ]
tags-ignore:
- "**"
pull_request:
branches: [ main ]

env:
python_version: "3.11"

jobs:
assert-news:
name: Assert news files (See CONTRIBUTING.md)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: actions/setup-python@v6
with:
python-version: ${{ env.python_version }}
- uses: FranzDiebold/github-env-vars-action@e8118971bd6b60524ae66a2d870bc83088e3a3c9 # v2.9.0
- name: Install CI/CD tools
run: pip install continuous-delivery-scripts && pip list
- name: Assert news
run: cd-assert-news -b ${CI_ACTION_REF_NAME}
env:
GIT_TOKEN: ${{ secrets.ARM_SOFTWARE_TOKEN }}
- name: Report failure if needed
if: ${{ failure() }}
run: |
echo "::error:: News file missing (See CONTRIBUTING.md guide for details)."

assert-package-version-pin-file:
name: Assert package version pin file
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- name: Check underlying tool package version file is set
shell: bash
run: |
if [[ ! -f arm-docs-github-action-package-version.txt ]]; then
echo "::error:: arm-docs-github-action-package-version.txt must exist."
exit 1
fi

arm_docs_package_version="$(tr -d '[:space:]' < arm-docs-github-action-package-version.txt)"

if [[ -z "$arm_docs_package_version" ]]; then
echo "::error:: arm-docs-github-action-package-version.txt must set a specific package version."
exit 1
fi

arm-docs-package:
name: Check arm-docs package
runs-on: ubuntu-latest
needs:
- assert-package-version-pin-file
steps:
- uses: actions/checkout@v6

- name: Install arm-docs package
run: |
ARM_DOCS_PACKAGE_VERSION="$(tr -d '[:space:]' < arm-docs-github-action-package-version.txt)"

echo "::notice::arm-docs-github-action version $ARM_DOCS_PACKAGE_VERSION."

echo "deb [trusted=yes] https://artifacts.tools.arm.com/tools-deb bionic main" | sudo tee -a /etc/apt/sources.list.d/artifactory.list
sudo apt-get update
sudo apt install -y "arm-docs-github-action=$ARM_DOCS_PACKAGE_VERSION"
sudo rm /etc/apt/sources.list.d/artifactory.list
sudo apt-get clean

- name: Check arm-docs help
run: arm-docs --help

- name: Check publish help
run: arm-docs publish --help

- name: Check validate help
run: arm-docs validate --help

action-files:
name: Check action files exist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- name: Check validate action metadata exists
run: test -f validate/action.yml

- name: Check publish action metadata exists
run: test -f publish/action.yml
40 changes: 40 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#
# Copyright (C) 2020-2026 Arm Limited or its affiliates and Contributors. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
name: GitHub Release

env:
python_version: "3.11"

on:
workflow_dispatch:
inputs:
release_type:
description: "Enter type of release to perform (i.e. development, beta, release):"
required: true
Comment thread
joshjennings98 marked this conversation as resolved.
type: choice
options:
- development
- beta
- release

jobs:
release:
name: Carry out a release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: actions/setup-python@v6
with:
python-version: ${{ env.python_version }}
- uses: FranzDiebold/github-env-vars-action@e8118971bd6b60524ae66a2d870bc83088e3a3c9 # v2.9.0
- name: Install CI/CD tools
run: pip install 'continuous-delivery-scripts==2.7' && pip list
- name: Tag and release
run: cd-tag-and-release -b ${CI_ACTION_REF_NAME} -t ${{
github.event.inputs.release_type }} -vv
env:
GIT_TOKEN: ${{ secrets.ARM_SOFTWARE_TOKEN }}
88 changes: 88 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<!--
Copyright (C) 2020-2026 Arm Limited or its affiliates and Contributors. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.

Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at support@arm.com. All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series of actions.

**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within the project community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0,
available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.
91 changes: 91 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<!--
Copyright (C) 2020-2026 Arm Limited or its affiliates and Contributors. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->
# Contribution Guide

We really appreciate your contributions to the worklow. We are committed to
fostering a welcoming community, please see our Code of Conduct, which can be found here:

- [Code of Conduct](./CODE_OF_CONDUCT.md)

There are several ways to contribute:

- Raise an issue found via this repository's GitHub Issues page.
- Open a pull request to:
- Provide a fix.
- Add an enhancement feature.
- Correct, update or add documentation.


## How to Contribute Documentation or Code

Please keep contributions small and independent. We would much rather have multiple pull requests for each thing done
rather than have them all in the same one. This will help us review, give feedback and merge in the changes. The
normal process to make a change is as follows:

1. Fork the repository.
2. Make your change and write unit tests, please try to match the existing documentation and coding style.
3. Add a news file describing the changes and add it in the `/changes` directory, see the section [News Files](#news_files) below.
4. Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
5. Push to your fork.
6. Submit a pull request.

We will review the proposed change as soon as we can and, if needed, give feedback. Please bear in mind that the framework
is complex and cover a large number of use cases. This means we may ask for changes not only to ensure
that the proposed change meets our quality criteria, but also to make sure the that the change is generally useful and
doesn't impact other uses cases or maintainability.

### News Files

News files serve a different purpose to commit messages, which are generally written to inform developers of the
project. News files will form part of the release notes so should be written to target the consumer of the GitHub action.

- At least, one news file should be added for each Merge/Pull request to the directory `/changes`.
- The text of the file should be a single line describing the change and/or impact to the user.
- The filename of the news file should take the form `<number>.<extension>`, e.g, `20191231.feature` where:
- The number is either the issue number or, if no issue exists, the date in the form `YYYYMMDDHHMM`.
- The extension should indicate the type of change as described in the following table:

| Change Type | Extension | Version Impact |
|-------------------------------------------------------------------------------------------------------------------------|------------|-----------------|
| Backwards compatibility breakages or significant changes denoting a shift direction. | `.major` | Major increment |
| New features and enhancements (non breaking). | `.feature` | Minor increment |
| Bug fixes or corrections (non breaking). | `.bugfix` | Patch increment |
| Documentation impacting the consumer of the package (not repo documentation, such as this file, for this use `.misc`). | `.doc` | N/A |
| Deprecation of functionality or interfaces (not actual removal, for this use `.major`). | `.removal` | None |
| Changes to the repository that do not impact functionality e.g. build scripts change. | `.misc` | None |

You can also use the [continuous delivery tools](https://github.com/ARMmbed/continuous-delivery-scripts) to generate those files.
```bash
pip install continuous-delivery-scripts
cd-create-news-file --type <change type> "<message>"
```

## Merging the Pull Request

When merging the pull request we will squash merge the changes, give it a title which provides context to
the changes:

- `<emoji> <Issue-Number> <Change Summary> (#<Pull Request Number>)`

An emoji is used to highlight what has occurred in the change. Commonly used emojis can be seen below, but for a full
list please see [Gitmoji](https://gitmoji.carloscuesta.me/):

Emoji | Topic(s)
------|---------
✨ | New features or enhancements.
🐛 | Bug / defect fixes.
🔒 | Fixing security issues.
⚡️ | Improving performance.
♻️ | Refactoring or addressing technical debt.
💥 | Breaking changes or removing functionality.
❗️ | Notice of deprecation.
📝 | Writing or updating documentation.
👷 | Adding to the CI or build system.
💚️ | Fixing CI or build system issues.
🚀 | Releasing or deploying.

For more on the version number scheme please see the [ReadMe](./README.md).

Thank you
Loading
Loading