This is a Pull Request Merger Action that works on repos with release branch structure. This will overwrite the master branch to match the latest release branch everytime.
This is mainly done for the google/skywater-pdk-libs-* repositories.
In collaboration with [@ax3ghazy](https://github.com/ax3ghazy), we created this workflow for the Pull Request Merger.
Current Workflow when the action is invoked: - The Action will loop over
all open PRs and download each as a patch. - The Action will apply the
patch to all version branches merging upward whenever applying is
possible. - The Action will reset the master to the latest version
branch. - The changes will be saved in new branches named as
pullrequest/temp/<PR ID>/<sequence number>/<branch name>
where
sequence number reflects the number of the latest commit added to this
PR incremented with each commit to that PR. - If a PR is labeled
ready-to-merge
, branch
pullrequest/temp/<PR ID>/<sequence number>/<branch name>
becomes
<branch name>
for all the branches in the repository to which the
patch applies.
Release branches should follow this structure: branch-..*
Each branch should have a tag with this strucutre: v*.*.*
This action should only be invoked in case of a Pull Request. We don’t handle corner cases at the moment.
In Pull-Request Invoked Workflow, add the following:
steps:
- uses: actions/checkout@v2
with:
ref: master
fetch-depth: '50'
- name: Run The Pull Request Merger
uses: agorararmard/skywater-pdk-modules-pull-request-backporter-action@main
There is an example here
We'd love to accept your patches and contributions to this project. There are just a few small guidelines you need to follow.
Contributions to this project must be accompanied by a Contributor License Agreement. You (or your employer) retain the copyright to your contribution; this simply gives us permission to use and redistribute your contributions as part of the project. Head over to https://cla.developers.google.com/ to see your current agreements on file or to sign a new one.
You generally only need to submit a CLA once, so if you've already submitted one (even if it was for a different project), you probably don't need to do it again.
All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. Consult GitHub Help for more information on using pull requests.
This project follows Google's Open Source Community Guidelines.
At Google, we recognize and celebrate the creativity and collaboration of open source contributors and the diversity of skills, experiences, cultures, and opinions they bring to the projects and communities they participate in.
Every one of Google's open source projects and communities are inclusive environments, based on treating all individuals respectfully, regardless of gender identity and expression, sexual orientation, disabilities, neurodiversity, physical appearance, body size, ethnicity, nationality, race, age, religion, or similar personal characteristic.
We value diverse opinions, but we value respectful behavior more.
Respectful behavior includes:
- Being considerate, kind, constructive, and helpful.
- Not engaging in demeaning, discriminatory, harassing, hateful, sexualized, or physically threatening behavior, speech, and imagery.
- Not engaging in unwanted physical contact.
Some Google open source projects may adopt an explicit project code of conduct, which may have additional detailed expectations for participants. Most of those projects will use our modified Contributor Covenant.
We do not believe that all conflict is necessarily bad; healthy debate and disagreement often yields positive results. However, it is never okay to be disrespectful.
If you see someone behaving disrespectfully, you are encouraged to address the behavior directly with those involved. Many issues can be resolved quickly and easily, and this gives people more control over the outcome of their dispute. If you are unable to resolve the matter for any reason, or if the behavior is threatening or harassing, report it. We are dedicated to providing an environment where participants feel welcome and safe.
Some Google open source projects may adopt a project-specific code of conduct. In those cases, a Google employee will be identified as the Project Steward, who will receive and handle reports of code of conduct violations. In the event that a project hasn’t identified a Project Steward, you can report problems by emailing opensource@google.com.
We will investigate every complaint, but you may not receive a direct response. We will use our discretion in determining when and how to follow up on reported incidents, which may range from not taking action to permanent expulsion from the project and project-sponsored spaces. We will notify the accused of the report and provide them an opportunity to discuss it before any action is taken. The identity of the reporter will be omitted from the details of the report supplied to the accused. In potentially harmful situations, such as ongoing harassment or threats to anyone's safety, we may take action without notice.
This document was adapted from the IndieWeb Code of Conduct and can also be found at <https://opensource.google/conduct/>.
The SkyWater Open Source PDK GitHub actions are released under the Apache 2.0 license.
The copyright details (which should also be found at the top of every file) are;
Copyright 2021 SkyWater PDK Authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.