Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/upstream/master' into bloo…
Browse files Browse the repository at this point in the history
…m-http_relay-1

# Conflicts:
#	rosdep/python.yaml
  • Loading branch information
peci1 committed Mar 3, 2024
2 parents a1850e3 + 4336a95 commit 0c78d08
Show file tree
Hide file tree
Showing 26 changed files with 6,423 additions and 1,069 deletions.
13 changes: 7 additions & 6 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
---
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
# only notify on security updates and not version updates.
open-pull-requests-limit: 0
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
# only notify on security updates and not version updates.
open-pull-requests-limit: 0
49 changes: 22 additions & 27 deletions .github/labeler-config.yaml
Original file line number Diff line number Diff line change
@@ -1,44 +1,39 @@
# Add 'melodic' label if any files in melodic/ folder are changed by a PR
melodic:
- melodic/*

---
# Add 'noetic' label if any files in noetic/ folder are changed by a PR
noetic:
- noetic/*

# Add 'foxy' label if any files in foxy/ folder are changed by a PR
foxy:
- foxy/*
- noetic/*

# Add 'humble' label if any files in humble/ folder are changed by a PR
humble:
- humble/*
- humble/*

# Add 'iron' label if any files in iron/ folder are changed by a PR
iron:
- iron/*
- iron/*

# Add 'rolling' label if any files in rolling/ folder are changed by a PR
rolling:
- rolling/*
- rolling/*

# Add 'rosdep' label if any files in rosdep/ folder are changed by a PR
rosdep:
- rosdep/*
- rosdep/*

# Add 'end-of-life' label if any files are in folders for versions that are no longer supported
end-of-life:
# ROS 1
- groovy/*
- hydro/*
- indigo/*
- jade/*
- kinetic/*
- lunar/*
# ROS 2
- ardent/*
- bouncy/*
- crystal/*
- dashing/*
- eloquent/*
- galactic/*
# ROS 1
- groovy/*
- hydro/*
- indigo/*
- jade/*
- kinetic/*
- lunar/*
- melodic/*
# ROS 2
- ardent/*
- bouncy/*
- crystal/*
- dashing/*
- eloquent/*
- foxy/*
- galactic/*
48 changes: 26 additions & 22 deletions .github/mergify.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
---
pull_request_rules:
- name: Comment on PRs with an end-of-life label
conditions:
- label=end-of-life
actions:
comment:
message: This pull request changes files for a ROS distribution that is no longer supported (End Of Life) and the distribution will not have any future syncs to include this change.
- name: Close on changes only to EOL folders
conditions:
- and:
- label=end-of-life
# Active ROS 1 distros
- label!=melodic
- label!=noetic
# Active ROS 2 distros
- label!=foxy
- label!=galactic
- label!=humble
- label!=rolling
# Other labels
- label!=rosdep
actions:
close:
- name: Comment on PRs with an end-of-life label
conditions:
- label=end-of-life
actions:
comment:
message: >
This pull request changes files for a ROS distribution
that is no longer supported (End Of Life)
and the distribution will not have any future syncs to include this change.
- name: Close on changes only to EOL folders
conditions:
- and:
- label=end-of-life
# Active ROS 1 distros
- label!=melodic
- label!=noetic
# Active ROS 2 distros
- label!=foxy
- label!=galactic
- label!=humble
- label!=rolling
# Other labels
- label!=rosdep
actions:
close:
4 changes: 3 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!-- Thank you for contributing a change to the rosdistro. There are two primary types of submissions.
Please select the appropriate template from below: ROSDEP_RULE_TEMPLATE or DOC_INDEX_TEMPLATE
If you're making a new release with bloom please use bloom to create the pull request automatically.
If you're making a new release with bloom please use bloom to create the pull request automatically (except for the naming review request which must be made manually).
If you've already run the release bloom has a `--pull-request-only` option you can use.-->

<!-- ROSDEP_RULE_TEMPLATE: Submitter Please review the contributing guidelines: https://github.com/ros/rosdistro/blob/master/CONTRIBUTING.md -->
Expand Down Expand Up @@ -45,6 +45,8 @@ More info at https://github.com/ros/rosdistro/blob/master/CONTRIBUTING.md#guidel
- OPTIONAL
- openSUSE: https://software.opensuse.org/package/
- IF AVAILABLE
- rhel: https://rhel.pkgs.org/
- IF AVAILABLE

<!-- DOC_INDEX_TEMPLATE: add package to rosdistro for documentation indexing -->

Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/build_test.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
---
name: Validate rosdistro
on:
# this is fine since gha runs with yaml 1.2
on: # yamllint disable-line rule:truthy
push:
branches: ['master']
pull_request:
Expand All @@ -22,7 +24,8 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Fetch upstream (to enable diff)
run: |
git remote add unittest_upstream_comparison https://github.com/ros/rosdistro.git || git remote set-url unittest_upstream_comparison https://github.com/ros/rosdistro.git
git remote add unittest_upstream_comparison https://github.com/ros/rosdistro.git \
|| git remote set-url unittest_upstream_comparison https://github.com/ros/rosdistro.git
git fetch --no-tags --depth=1 unittest_upstream_comparison master
- name: Install Dependencies
run: |
Expand All @@ -47,4 +50,4 @@ jobs:
python -m pip install --upgrade pip setuptools wheel
pip install yamllint
- name: Run yamllint
run: yamllint */
run: yamllint .
4 changes: 3 additions & 1 deletion .github/workflows/labeler.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
---
name: "Pull Request Labeler"
on:
# this is fine since gha runs with yaml 1.2
on: # yamllint disable-line rule:truthy
- pull_request_target

permissions:
Expand Down
29 changes: 29 additions & 0 deletions .github/workflows/stale_labeler.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: 'Label inactive PRs as stale'

# this is fine since gha runs with yaml 1.2
on: # yamllint disable-line rule:truthy
schedule:
- cron: '0 11 * * *' # runs at 11am UTC every day => early morning in US

jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v8 # https://github.com/marketplace/actions/close-stale-issues
with:
stale-pr-label: 'stale'
stale-pr-message: >
This PR hasn't been activity in 14 days.
If you are still are interested in getting it merged
please provide an update.
Otherwise it will likely be closed by a rosdistro maintainer
following our [contributing policy](https://github.com/ros/rosdistro/blob/master/CONTRIBUTING.md).
It's been labeled "stale" for visibility to the maintainers.
If this label isn't appropriate,
you can ask a maintainer to remove the label and add the 'persistent' label.
days-before-pr-stale: 14
days-before-pr-close: -1 # don't close PRs automatically
days-before-issue-stale: -1 # don't label issues as stale
days-before-issue-close: -1 # don't close issues automatically
exempt-pr-labels: 'persistent'
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
*~
.DS_STORE
*.pyc
.venv/*
8 changes: 6 additions & 2 deletions .yamllint
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
extends:
default

Expand All @@ -8,10 +9,13 @@ rules:
rosdep/*.yaml
indentation:
spaces: consistent
indent-sequences: no
indent-sequences: false
key-duplicates: enable
line-length:
max: 125
allow-non-breakable-words: yes
allow-non-breakable-words: true
ignore: |
rosdep/*.yaml

ignore: |
.venv
39 changes: 18 additions & 21 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ Work has been proposed to add a separate installer for AUR packages [ros-infrast

* [NixOS unstable channel](https://github.com/NixOS/nixpkgs/tree/nixos-unstable), search available at https://search.nixos.org/packages
* [nix-ros-overlay](https://github.com/lopsided98/nix-ros-overlay)
* Following the [NixOS Python Guide](https://nixos.org/manual/nixpkgs/stable/#python), use `pythonPackages` for Python 2 and `python3Packages` for Python 3 keys.

#### openSUSE

Expand Down Expand Up @@ -297,31 +298,27 @@ How to submit pull requests
When submitting pull requests it is expected that they pass the unit tests for formatting.
The unit tests enforce alphabetization of elements and a consistent formatting to keep merging as clean as possible.

If you want to run the tests before submitting, first install the dependencies. Using `pip` is recommended.
### Unit Testing

```bash
python3 -m pip install -r test/requirements.txt
```
It is recommended to use a virtual environment and pip to install the unit test dependencies.
The test dependencies are listed in tests/requirements.txt.

To run the tests run ``nosetests`` in the root of the repository.
These tests require several dependencies that can be installed either from the ROS repositories or via pip(list built based on the content of [.travis.yaml](https://github.com/ros/rosdistro/blob/master/.travis.yml):
```bash
# create the virtual environment
python3 -m venv .venv
| Dependency | Ubuntu package (<=20.04)| Pip package |
| :------------: | --------------------------------- | -------------- |
| catkin_pkg | python-catkin-pkg | catkin-pkg |
| github | python-github | PyGithub |
| nose | python-nose | nose |
| rosdistro | python-rosdistro | rosdistro |
| ros_buildfarm | python-ros-buildfarm | ros-buildfarm |
| unidiff | python-unidiff (Zesty and higher) | unidiff |
| yamllint | yamllint | yamllint |
# "activate" the virtual environment
# this will let pip install dependencies into the virtual environment
# use activate.zsh if you use zsh, activate.fish if you use fish, etc.
source .venv/bin/activate
There is a tool [scripts/check_rosdep](./scripts/check_rosdep.py) which will check most formatting errors such as alphabetization and correct formatting.
It is recommended to run it before submitting your contribution.
# install the dependencies
pip3 install -r test/requirements.txt
For example, to check a change to `rosdep/base.yaml`:
```bash
python3 scripts/check_rosdep.py rosdep/base.yaml
# run the tests!
pytest
```

Note: There's a [known issue](https://github.com/disqus/nose-unittest/issues/2) discovered [here](https://github.com/ros/rosdistro/issues/16336) that most tests won't run if you have the python package `nose-unitttest` installed.
It is highly recommended to run the unit tests before submitting a pull request.
(the CI system will run them anyways, but it will save you time)

40 changes: 40 additions & 0 deletions REVIEW_GUIDELINES.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,43 @@ There are a few different types of pull requests that are opened against this re
1. Changes to the rosdistro code. These pull requests change any of the scripts or tests that are housed in the rosdistro repositories. They will be reviewed as any other code change in the ROS ecosystem.

1. Miscellaneous. Any other pull requests adding or modifying documentation, or anything else will be reviewed as any other code change in the ROS ecosystem.

Reviewer utilities
------------------

### New package review checklist

You can copy-paste the below into your review comment when reviewing a new package addition into rosdistro.

- [ ] At least one of the following must be present
- [ ] Top level license file:
- [ ] Per package license files:
- [ ] License is [OSI-approved](https://opensource.org/licenses):
- [ ] License correctly listed in package.xmls
- [ ] Public source repo:
- [ ] Source repository contains ROS packages
- [ ] Each package meets [REP-144](https://www.ros.org/reps/rep-0144.html) naming conventions

<details><summary>Package name details</summary>

```console
$ find . -name "package.xml" -exec grep --color=auto -e "<name>" "{}" ";"
<OUTPUT HERE>
```
</details>

<details><summary>License details</summary>

```console
$ find . -name "package.xml" -exec grep --color=auto -e "<license>" "{}" "+"
<OUTPUT HERE>
```
</details>

### pip keys standard disclaimer

You can copy-paste the following as a comment when reviewing a new rosdistro key using `pip` (even if you are approving!)

Standard pip disclaimer: ROS packages that depend on `pip` keys cannot be released into a ROS distribution.
They can only be depended on by from-source builds.
Because of this, system packages are highly preferred to pip packages.
Loading

0 comments on commit 0c78d08

Please sign in to comment.