contributing: add development workflow notes

This commit is contained in:
Maciej Barć 2020-09-28 14:16:25 +02:00
parent 9bc7286e02
commit 1f65ee76fc
No known key found for this signature in database
GPG Key ID: 031C9FE65BED714A
2 changed files with 83 additions and 11 deletions

View File

@ -74,3 +74,85 @@ and you have fixed an error, the commit or merge request should look like this:
`mail-client/freelook-bin: fix QA - EROOT missing slash` `mail-client/freelook-bin: fix QA - EROOT missing slash`
**This system also applies on your metadata.xml and Manifest.** **This system also applies on your metadata.xml and Manifest.**
## Development workflow
### Add the overlay to the system
Edit /etc/portage/repos.conf/src_prepare-overlay.conf (as root)
```toml
[src_prepare-overlay]
auto-sync = yes
location = /var/db/repos/src_prepare-overlay
sync-git-clone-extra-opts = --depth=999999999 --no-shallow-submodules --no-single-branch --verbose
sync-git-pull-extra-opts = --depth=999999999 --verbose
sync-type = git
sync-uri = git@gitlab.com:src_prepare/src_prepare-overlay.git
sync-user = <your_user_developer>:portage
```
If you dont have write access to the cloned branch yet use "sync-uri = https://gitlab.com/src_prepare/src_prepare-overlay.git" instead.
### Sync the overlay
As root
```bash
emaint sync -r src_prepare-overlay
```
### Add new package
#### Basics
As user
```bash
cd /var/db/repos/src_prepare-overlay
mkdir -p category/package-name
cd category/package-name
touch metadata.xml
touch package-name-package-version.ebuild
```
Now edit the ebuild and metadata files accordingly.
[https://devmanual.gentoo.org/](For ebuild developemnt details look here)
#### Tests
If a package's upstream has tests don't forget to enable them.
If they fail describe why in the comments inside the ebuild
(but please make the descriptions reasonably short).
##### Package testing
Make sure you have FEATURES="test" enabled in the make.conf
```bash
echo 'FEATURES="${FEATURES} test"' >> make.conf
```
And then, as root
```bash
echo "categroy/package-name test" >> /etc/portage/package.use/development-tests
```
##### Ebuild testing
repoman (app-portage/repoman) and pkgcheck (dev-util/pkgcheck)
will give you a report of what should be fixed.
```bash
repoman -Idx full
pkgcheck scan
```
#### Metadata
metadata.xml should contain at least these lines:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<upstream>
<remote-id type="githosting">organization-or-user/package</remote-id>
</upstream>
</pkgmetadata>
```
Adjust the "type" and "organization-or-user/package" accordingly.
#### Installation
If the (system wide) repository is set up correctly you should be able to just emerge the package you added right away
```bash
emegre --ask --verbose --jobs=1 --quiet-build=n categroy/package-name
```
#### Git
Follow the rules described in "Submitting Merge Requests" section.
GPG signing is not required but encouraged. Gentoo Wiki provides a great example [https://wiki.gentoo.org/wiki/Project:Infrastructure/Generating_GLEP_63_based_OpenPGP_keys](how to create a strong key).

View File

@ -88,13 +88,3 @@ See [examples/package.accept_keywords/src_prepare-overlay](https://gitlab.com/sr
## Contributing ## Contributing
We appreciate and encourage for contribution. If you want a specific package or want to create a package for us to maintain, see [CONTRIBUTING.md](/CONTRIBUTING.md). We appreciate and encourage for contribution. If you want a specific package or want to create a package for us to maintain, see [CONTRIBUTING.md](/CONTRIBUTING.md).
## Quick maintainer guide
### Testing ebuilds
``` sh
repoman manifest
ebuild FILE clean merge
```