From 73a7c00d032ff280d4bdcce97f364ae8ee85541c Mon Sep 17 00:00:00 2001 From: Ikey Doherty Date: Sat, 6 May 2017 19:20:30 +0100 Subject: [PATCH 1/2] Update all references to the Solus git URI As of today Solus has fully migrated away from the legacy cgit/gitolite combination, to the fully configured Phabricator instance. As such, the old URLs are no longer valid. Signed-off-by: Ikey Doherty --- packaging/building-a-package/en.md | 6 +++--- packaging/updating-an-existing-package/en.md | 4 ++-- software/powerline-shell-prompt/en.md | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packaging/building-a-package/en.md b/packaging/building-a-package/en.md index 490004f..92e3b89 100644 --- a/packaging/building-a-package/en.md +++ b/packaging/building-a-package/en.md @@ -42,7 +42,7 @@ To update solbuild, run: `sudo solbuild update` Next you need to set up `common`, a set of make scripts that enables you to more easily manage, build, check, and publish packages. -You need to clone the common repository with git `sudo eopkg it git` by doing `git clone https://git.solus-project.com/common` in the same directory you will have sub-folders for packages you are building. +You need to clone the common repository with git `sudo eopkg it git` by doing `git clone https://dev.solus-project.com/source/common.git` in the same directory you will have sub-folders for packages you are building. Next you need to set up symlinks. Do this from the same directory you executed the `git` command: @@ -77,7 +77,7 @@ make You will be prompted to enter your password by sudo so dependencies may be downloaded and the necessary eopkg files may be generated. -You may find other `common` commands [here](https://git.solus-project.com/common/about/). +You may find other `common` commands [here](https://dev.solus-project.com/source/common/browse/master/about/). Once you’ve achieved a successful build, the resulting `.eopkg` files will be moved to the current directory, along with the machine file, `pspec_*.xml` (currently `pspec_x86_64.xml`). We recommending checking the contents of your -generated eopkg file(s) to ensure everything is located in the appropriate locations. You can do this by using `lseopkg file_name.eopkg`. \ No newline at end of file +generated eopkg file(s) to ensure everything is located in the appropriate locations. You can do this by using `lseopkg file_name.eopkg`. diff --git a/packaging/updating-an-existing-package/en.md b/packaging/updating-an-existing-package/en.md index 736d66d..5ac0119 100644 --- a/packaging/updating-an-existing-package/en.md +++ b/packaging/updating-an-existing-package/en.md @@ -5,7 +5,7 @@ title = "Updating an Existing Package" This article will go over updating a package that is already in the Solus git repository. -The instructions below assume you have cloned the package's repository using the http link provided on the respective git page, [for example nano](https://git.solus-project.com/packages/nano). The process for submitting an updated package is the same as if it is a new package. Follow the steps [here](/articles/packaging/submitting-a-package/en). +The instructions below assume you have cloned the package's repository using the http link provided on the respective git page, [for example nano](https://dev.solus-project.com/source/nano/). The process for submitting an updated package is the same as if it is a new package. Follow the steps [here](/articles/packaging/submitting-a-package/en). ## Bumping a packaging @@ -32,4 +32,4 @@ Example: ``` bash /usr/share/ypkg/yupdate.py 1.0 http://example.com/example-1.0.tar.xz -``` \ No newline at end of file +``` diff --git a/software/powerline-shell-prompt/en.md b/software/powerline-shell-prompt/en.md index c6716b2..88b48a0 100644 --- a/software/powerline-shell-prompt/en.md +++ b/software/powerline-shell-prompt/en.md @@ -7,8 +7,8 @@ title = "Powerline Shell Prompt" ## Installation -Powerline has two components, the plugin system itself ([powerline](https://git.solus-project.com/packages/powerline/)) and the -fonts ([powerline-fonts](https://git.solus-project.com/packages/powerline-fonts)). Both are available in the Software Center or via eopkg in a terminal: +Powerline has two components, the plugin system itself ([powerline](https://dev.solus-project.com/source/powerline/)) and the +fonts ([powerline-fonts](https://dev.solus-project.com/source/powerline-fonts/)). Both are available in the Software Center or via eopkg in a terminal: ``` bash sudo eopkg it powerline powerline-fonts From 8557a00a64e457388d2da6eae07370785a533899 Mon Sep 17 00:00:00 2001 From: Ikey Doherty Date: Sat, 6 May 2017 19:45:04 +0100 Subject: [PATCH 2/2] packaging: Update to document the new Arcanist approach This change adds documentation for the initialisation of arcanist, and gives brief tutorials on using git basics. Additionally it shows how to send the patch via arc, and importantly, how to fix a patch that has had changes requested. Signed-off-by: Ikey Doherty --- packaging/submitting-a-package/en.md | 107 +++++++++++++++++++++++++-- 1 file changed, 100 insertions(+), 7 deletions(-) diff --git a/packaging/submitting-a-package/en.md b/packaging/submitting-a-package/en.md index 5609f8b..1e51dac 100644 --- a/packaging/submitting-a-package/en.md +++ b/packaging/submitting-a-package/en.md @@ -5,14 +5,107 @@ title = "Submitting the Package" This article will walk you through submitting a patch for a package for review and inclusion in the Solus repository. -When sending patches to include your package in our repo, note that we do not accept binary files. We will need the `package.yml`, the `pspec_*.xml`, the `Makefile`, any ABI files generated, as well as the -`files/` directory if applicable included within the patch. These patches are required to be [git format patches](https://git-scm.com/docs/git-format-patch) and submitted to the Patch Submissions Tag, in -Maniphest, on our [Developer Portal](https://dev.solus-project.com). +When contributing patches to Solus, please note that we do not accept the upload of binary files (i.e. `.eopkg`). +All repository packages are built by a dedicated build server, from the source files provided in your patch upload. -To generate a patch, first ensure your package directory is a git repo by running `git init`. Next, use `git add filename` to add files, where filename is, for example, the package.yml. Next, do `git commit` and -write an appropriate commit message, such as "Initial commit of packagename". +At minimum, your patch will include changes for the following: + + * `package.yml` + * `pspec_*.xml` + +If any additional files were required for the build, then you must also include the `files/` directory. +If you are creating a new package, you will also need to include a `Makefile` containing the following text: + +``` +include ../Makefile.common +``` + +Lastly, many package builds may result in the generation of an ABI report. These files start with `abi_*` and must also +be included, as they allow simple tracking of changes to symbols and dependencies. + +For all patch submissions you must be using the `arcanist` utility to communicate with the [Solus Developer Portal](https://dev.solus-project.com/) + +## Setting up Arcanist + +In three easy steps, you can set up arcanist for the first time: + +``` +sudo eopkg it arcanist +arc set-config default https://dev.solus-project.com +arc install-certificate +``` + +On the third step you will be given a unique link to log into the Developer Portal, to create a `Conduit API Token`. This +token will be used to allow the CLI `arc` utility to communicate with Phabricator. + + +## Creating the patch + +For every file you change or add, you must let git know about them: + +``` +git add someFile +``` + +For files that must be removed, you must do so using git: + +``` +git rm someFile +``` + +Likewise, for renaming a file, you must do so via git: + +``` +git mv someFile someFileName2 +``` + +Once you're happy with your change, and you have verified locally that it works by having first built and +installed it, it's time to commit your changes. + +``` +git commit +``` + +Make sure you provide a meaningful summary and a separate body to your commit message. For more information +on suitable commit messages, please check the [tooling central documentation](https://github.com/solus-project/tooling-central/blob/master/README.rst#using-git). + +If you want to link this patch to an issue on the Developer portal, simply mention it in your commit message: + +``` +The inclusion of fixes T1234 +``` + + +If you need a change to depend on another change, mention it in the commit message too: + +``` +Depends on D5 +``` + +Now you have your git commit, it's time to send it to us for review. Using the CLI again, simply issue: + +``` +arc diff +``` + +A new editor session will open, where you can provide optional details. Note that the default reviewer will +be assigned after you submit, so it is not necessary to specify anyone here. Once you're finished, save and +exit the editor (`CTRL+O` + `CTRL+X` for nano), and the patch will then be uploaded. You'll be presented +with the Differential URL, and a review will happen as soon as possible. + +## Fixing a patch that needs changes + +That's easy. Don't make a new commit, just make any relevant changes to your local tree, adding + removing as +before, but this time run: + +``` +git commit --amend +``` + +This will amend your original changes, and you can submit the patch once more with `arc diff`. The web UI will +automatically update with the latest patch, without having to create any new tasks. Once accepted, your patch +will be merged, and a build will be issued. -Once a git commit is made, use `git format-patch -n1` to create a .patch file. ## Maintainership @@ -26,4 +119,4 @@ over to a repository. Currently, the request mechanism [contact Ikey on IRC](/articles/contributing/getting-involved/en). It is far easier to grant access to active community members than those unknown to the project. -Finally, note that the management reserve the right to revoke access at any time, in order to preserve project safety and integrity. \ No newline at end of file +Finally, note that the management reserve the right to revoke access at any time, in order to preserve project safety and integrity.