Prepare project#3
Open
kou wants to merge 1 commit into
Open
Conversation
Contributor
kou
commented
May 21, 2026
- Add missing license information
- Add CoC
- Add CI
- Add linter
- Add release scripts
- Prepare issues
31b31ee to
dc1598c
Compare
There was a problem hiding this comment.
Pull request overview
This PR prepares the openarm_control repository for public consumption by adding licensing/community docs and wiring up automation for linting, testing, packaging, and releases.
Changes:
- Add project metadata and tooling configuration (PyPI metadata, Ruff, pre-commit).
- Add GitHub automation (lint/test/package workflows, dependabot, release config).
- Add community and compliance artifacts (LICENSE, Code of Conduct, Contributing, issue templates) plus minor formatting/docstring touch-ups in the Python sources.
Reviewed changes
Copilot reviewed 21 out of 23 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
src/openarm_control/poses.py |
Minor formatting cleanup in pose conversion helper. |
src/openarm_control/kinematics.py |
Docstring/formatting adjustments; CLI arg formatting. |
src/openarm_control/config.py |
Add numpy import for type hints; minor docstring/formatting tweaks. |
src/openarm_control/__init__.py |
Add module docstring; switch to relative imports. |
README.md |
Improve title and add links/license/CoC sections. |
pyproject.toml |
Add authors/license/urls and Ruff configuration; adjust Python requirement. |
main.py |
Minor formatting change. |
LICENSE.txt |
Add Apache 2.0 license text. |
dev/release.sh |
Add release helper script. |
dev/README.md |
Document release script usage. |
CONTRIBUTING.md |
Add contribution guidance and links to issue templates/community. |
CODE_OF_CONDUCT.md |
Add Contributor Covenant Code of Conduct. |
.pre-commit-config.yaml |
Add pre-commit hooks (Ruff + shfmt). |
.gitignore |
Add license header (no ignore pattern changes shown in diff). |
.github/workflows/test.yaml |
Add test workflow using uv + pytest. |
.github/workflows/package.yaml |
Add source packaging + GitHub Release + PyPI publish workflow. |
.github/workflows/lint.yaml |
Add pre-commit based lint workflow. |
.github/release.yml |
Add changelog author exclude config for releases. |
.github/ISSUE_TEMPLATE/config.yml |
Configure issue templates + contact links. |
.github/ISSUE_TEMPLATE/1-bug-report.yml |
Add bug report issue form. |
.github/ISSUE_TEMPLATE/2-feature-request.yml |
Add feature request issue form. |
.github/dependabot.yml |
Enable Dependabot for GitHub Actions updates. |
.github/copilot-instructions.md |
Add repository Copilot PR description rules. |
.editorconfig |
Add editor config for shell script formatting. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
159
to
+163
| print(active_qpos) | ||
| print(freeze_dofs) | ||
| self._freeze_task: mink.DofFreezingTask | None = ( | ||
| mink.DofFreezingTask(model=setup.model, dof_indices=freeze_dofs) | ||
| if freeze_dofs else None | ||
| if freeze_dofs |
| ] | ||
|
|
||
| [tool.ruff.lint.per-file-ignores] | ||
| "!src/**.py" = ["D"] |
Comment on lines
14
to
16
|
|
||
|
|
||
| def main(): |
| if [ $# -ne 1 ]; then | ||
| echo "Usage: $0 version" | ||
| echo " e.g.: $0 1.0.0" | ||
| exit 0 |
Comment on lines
+31
to
+37
| repository_name=$( | ||
| python3 <<PY | ||
| import tomllib | ||
| with open("pyproject.toml", "rb") as f: | ||
| repository = tomllib.load(f)["project"]["urls"]["Repository"] | ||
| print(repository.split("/")[-1].removesuffix(".git")) | ||
| PY |
Comment on lines
+34
to
+46
| - name: Prepare environment variables | ||
| run: | | ||
| PACKAGE_NAME=$(yq --unwrapScalar .project.name pyproject.toml) | ||
| echo "PACKAGE_NAME=${PACKAGE_NAME}" >> "${GITHUB_ENV}" | ||
| if [ "${GITHUB_REF_TYPE}" = "tag" ]; then | ||
| echo "VERSION=${GITHUB_REF_NAME}" >> "${GITHUB_ENV}" | ||
| else | ||
| VERSION=$(yq --unwrapScalar .project.version pyproject.toml) | ||
| echo "VERSION=${VERSION}" >> "${GITHUB_ENV}" | ||
| fi | ||
| - uses: actions/setup-python@v6 | ||
| with: | ||
| python-version: 3 |
|
|
||
| Instances of abusive, harassing, or otherwise unacceptable behavior may be | ||
| reported to the community leaders responsible for enforcement at | ||
| hi_public@reazon.jp. |
| --discussion-category Announcements \ | ||
| --generate-notes \ | ||
| --repo ${GITHUB_REPOSITORY} \ | ||
| --title "OpenArm Driver ${version}" \ |
Comment on lines
151
to
160
| @@ -159,7 +160,8 @@ def __init__(self, setup: ArmSetup, params: IKParams) -> None: | |||
| print(freeze_dofs) | |||
Comment on lines
213
to
228
| try: | ||
| vel = mink.solve_ik( | ||
| self._config, tasks, self._dt, self._solver_name, | ||
| limits=[], constraints=constraints, | ||
| safety_break=False, **self._solver_params, | ||
| self._config, | ||
| tasks, | ||
| self._dt, | ||
| self._solver_name, | ||
| limits=[], | ||
| constraints=constraints, | ||
| safety_break=False, | ||
| **self._solver_params, | ||
| ) | ||
| except mink.exceptions.NoSolutionFound: | ||
| print("Warning: IK solver failed (constrained and unconstrained). Skipping step.") | ||
| print( | ||
| "Warning: IK solver failed (constrained and unconstrained). Skipping step." | ||
| ) | ||
| return None |
Comment on lines
+34
to
+46
| - name: Prepare environment variables | ||
| run: | | ||
| PACKAGE_NAME=$(yq --unwrapScalar .project.name pyproject.toml) | ||
| echo "PACKAGE_NAME=${PACKAGE_NAME}" >> "${GITHUB_ENV}" | ||
| if [ "${GITHUB_REF_TYPE}" = "tag" ]; then | ||
| echo "VERSION=${GITHUB_REF_NAME}" >> "${GITHUB_ENV}" | ||
| else | ||
| VERSION=$(yq --unwrapScalar .project.version pyproject.toml) | ||
| echo "VERSION=${VERSION}" >> "${GITHUB_ENV}" | ||
| fi | ||
| - uses: actions/setup-python@v6 | ||
| with: | ||
| python-version: 3 |
| if [ $# -ne 1 ]; then | ||
| echo "Usage: $0 version" | ||
| echo " e.g.: $0 1.0.0" | ||
| exit 0 |
Comment on lines
+31
to
+37
| repository_name=$( | ||
| python3 <<PY | ||
| import tomllib | ||
| with open("pyproject.toml", "rb") as f: | ||
| repository = tomllib.load(f)["project"]["urls"]["Repository"] | ||
| print(repository.split("/")[-1].removesuffix(".git")) | ||
| PY |
| if [ "${RELEASE_CHECK_ORIGIN:-yes}" = "yes" ]; then | ||
| git_origin_url="$(git remote get-url origin)" | ||
| if [ "${git_origin_url}" != "git@github.com:enactic/${repository_name}.git" ]; then | ||
| echo "This script must be ran with working copy of enactic/${repository_name}." |
* Add missing license information * Add CoC * Add CI * Add linter * Add release scripts * Prepare issues * Remove a needless file
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.