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!
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 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)
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.
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.
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.
- 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
andgit pull
to ensure local repository is up to date.
- 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
, orgit 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
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