blob: fba6e595a2e18e32cf6a7b9240285c9a616a1859 [file] [log] [blame]
``skywater-pdk-actions`` - ``modules-pr-backporter``
====================================================
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.
Workflow
========
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.
Usage:
======
In Pull-Request Invoked Workflow, add the following:
.. code:: yml
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
Examples
========
There is an example `here <examples/pull_request_merger.yml>`__
How to Contribute
=================
We'd love to accept your patches and contributions to this project.
There are just a few small guidelines you need to follow.
Contributor License Agreement
-----------------------------
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.
Code reviews
------------
All submissions, including submissions by project members, require
review. We use GitHub pull requests for this purpose. Consult `GitHub
Help <https://help.github.com/articles/about-pull-requests/>`__ for more
information on using pull requests.
Community Guidelines
--------------------
This project follows `Google's Open Source Community
Guidelines <https://opensource.google/conduct/>`__.
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 <https://opensource.google/docs/releasing/preparing/#conduct>`__
an explicit project code of conduct, which may have additional detailed
expectations for participants. Most of those projects will use our
`modified Contributor Covenant <https://opensource.google/docs/releasing/template/CODE_OF_CONDUCT/>`__.
Resolve peacefully
~~~~~~~~~~~~~~~~~~
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.
Reporting problems
~~~~~~~~~~~~~~~~~~
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 <https://indieweb.org/code-of-conduct>`_
*and can also be found at* <https://opensource.google/conduct/>.
License
=======
The SkyWater Open Source PDK GitHub actions are released under the
`Apache 2.0 license <https://github.com/google/skywater-pdk/blob/master/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.