Skip to content

Latest commit

 

History

History
183 lines (150 loc) · 7.19 KB

CONTRIBUTING.md

File metadata and controls

183 lines (150 loc) · 7.19 KB

Contributing Guidelines

Thank you for considering contributing to Memories! All code contributions are made using merge requests.

If you are new to the GNOME community and software ecosystem, the Memories project would like to give you a warm welcome to the GNOME community. We highly encourage you to visit welcome.gnome.org, a website made by the GNOME foundation to introduce new users to GNOME.

Users interested in making contributions to the software behind Memories are encouraged to check out developer.gnome.org.

Before starting to write your own contribution, please make sure to read the project README beforehand!

Getting Started

The most important first step is to read the GNOME Code of Conduct.

If you are planning on contributing to the translation work, please see GNOME Damned Lies.

  • If you don't yet have an account with GNOME's GitLab instance, please register on GitLab, this will be important for submitting your changes!
  • Set up your SSH cryptographic key in your GNOME GitLab account. Alternatively, you can also register a PGP cryptographic key for signing your commits within Git. welcome.gnome.org has a good tutorial on setting up your GNOME GitLab account.
  • Once you have your account setup and signed in, fork the project Git repository. This will create your own copy of the source under your user's namespace.
  • Next, clone your new fork on your local machine. If you have your SSH key configured on your GNOME GitLab account, run the following:
git clone [email protected]:maxrdz/Memories.git

If you do not have SSH set up, you can also clone via HTTPS.

git clone https://gitlab.gnome.org/maxrdz/Memories.git
  • Before starting to write your contribution, create a new branch for your patch/contribution within Git:
git checkout -b new-patch
  • After writing your changes, commit your changes:
git commit -am 'src: Fixed bug and resolved #1234'

and push your new branch to your remote fork.

git push origin new-patch
  • The remote Git server at GNOME GitLab may recognize that you pushed to your fork and will send you a message containing a link to create a new merge request on the GitLab website. If you do not receive this message by any chance, there is also a guide by GNOME on creating a new merge request at welcome.gnome.org.

Git Commit Naming Convention

Git commit messages should follow the guidelines for commit messages provided in the GNOME Handbook.

There is a job in the CI/CD pipeline that validates commit messages. All commits that follow the specification below are considered valid: Conventional Commits v1.0.0

The commit validation job will automatically validate commits from the GNOME Damned Lies translation system.

The following is the structure of a commit message, along with an example of a standard commit message.

<directory>: <summary> e.g. "po: Updated Mexican Spanish translation"

We also encourage to provide a more elaborate description of your changes inside your commit description.

po: Updated Mexican Spanish translation

Update the translation for "Library", which was previously
"Biblioteca" to "Fototeca". This word is unique to the
language and is a more suitable translation for a library
of photos, not books!

Closes #1234

"As a general rule, it is always better to write too much in the commit message body than too little." (GNOME/gnome-shell)

Draft Merge Requests

Merge requests marked as draft will not be reviewed by Memories' maintainers or merged. When the change is ready for review please mark the merge request as ready.

Inactive Merge Requests

If a merge request has comments from maintainers that have not been responded to within 4 weeks this merge request is considered to be inactive and will be closed. The reporter may re-open it at a later date if they respond to the comments.

Making a Release

This section of the document is more of a personal note for the maintainer, and future maintainers of Memories. See the GNOME Handbook for more details.

Release versioning for Memories should follow the GNOME release schedule. See the GNOME Handbook.

Setup Checklist

  • Ensure git-evtag is installed on your machine. This software will be used to provide strong signing guarantees when creating a new git release tag.
  • Verify your user .gitconfig file has your SSH key and PGP (GPG) key configured for authentication to GNOME GitLab and signing Git commits and tags.
  • Verify that your GNOME GitLab account has your public SSH/PGP keys up to date. These should always match the keys used when releasing. To verify, go to your GitLab key settings.
  • git status and git pull to ensure local repository is up to date.

Release Commit Checklist

  • Update project version in root meson.build file.
  • Update the CHANGELOG text document.
  • Add a <release> entry in the Appstream app metadata file. You should read through the Git commit log for this release and come up with a bullet point for each significant change and credit the people who did the work. Refer to the Appstream specification.
  • Review the README.md document and update if necessary.
  • Commit changes via git commit, or git commit -S<key-id> if your PGP (GPG) key is not globally configured in your user .gitconfig.
  • Run meson dist to create the tarball for the release. If successful, Meson should output similar to the following:
Distribution package /opt/gnome/build/glib/meson-dist/glib-2.57.3.tar.xz tested.
  • Run git evtag sign 47.0. git-evtag is required, see setup. The message included in the Git tag should be in the following format:
Memories 47.0

* The contents of the CHANGELOG file for this release.
* Dependency updates
* A bug fix
* Small maintenance tasks
* Translation updates with credits
  • Upload the tarball (this applies once Memories uses GNOME master):
$ scp memories-47.0.tar.xz [email protected]:~
$ ssh [email protected]
$ ftpadmin install memories-47.0.tar.xz

Updating Memories' Application Screenshots

Clone the following repository locally and set it as the only root directory in the library collection by modifying the DEFAULT_LIBRARY_COLLECTION static in globals.rs: https://gitlab.gnome.org/maxrdz/memories-stock-photos