This document provides advice and guidance on using and contributing to the Enlightenment Project git repositories. Please read through this document before providing pull requests, patches, or working on a repository for the first time.
A web interface to the Enlightenment Foundation repositories is available at git.enlightenment.org.
You will require
git to be installed. Linux distributions using the
apt package manager can install this prerequisite with the following
sudo apt install git
You are also expected to already possess a working knowledge of git; for more information see the Git User Manual. You should also have read the Coding Conventions guide before writing any code destined for submission.
Use https://git.enlightenment.org to fork a repository and create pull requests for changes on the original.
Ensure that you have git set to rebase, rather than merge, by running the following command against your copy of the Enlightenment repository.
$ git config branch.master.rebase true
You can also make this configuration globally, but be aware this applies to all git repositories you access:
$ git config --global branch.master.rebase true
Due to a bug in the Go SSH implementation used by Gitea, you may have to add this to your ~/.ssh/config file:
host git.enlightenment.org HostKeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
Commit messages should be detailed rather than terse and include as much information about the commit as is reasonable. Please use the imperative form in the commit message in order to be consistent with the commit messages generated by git merge and revert. Write "Fix text bug", rather than "Fixed text bug".
The general layout of a commit message should be as follows:
Depending on the nature of your commit some of the following tags might apply:
All these tags should live in the commit body with the detailed description, and not in the summary line. It is preferred if the tags are added as a separate line at the end of the commit message, though they will function from anywhere in the commit body.
spinner: Uncomment ctype.h inclusion because isspace is used. It looks like ctype.h is included in some other headers by luck but it is recommended to explicitly include the necessary header. Confirmed by glima as he commented this out.
eina: Add purple/yellow cherry tree algorithm implementation Newest research shows that the purple/yellow cherry tree algo is way more efficient memory wise. Add a implementation to eina so we can try it out in the real world. @feature
evas textblock: Fix buffer overflow in anchor code If we set the anchor on a long text block the buffer might overflow. Take string len into account. Long-standing bug. @fix CID: 123456
Use cherry-pick for small changes if you don't want to push everything into master. If you did work into your own branch and worked on some big feature then you should push to master using the following workflow:
git fetch; git rebase -p origin/master.
rebase interactiveto make sure all your pending patch notes are meaningful; merge them and change their commit messages as necessary.
git checkout master
git merge --no-ff your-feature-branch-name
git push origin master.