Here is a list of frequently asked questions:
- How to know what packages I can deploy into my workspace ?
- What is the best way to create a new package ?
- How to publish contributions to a contribution space I have no push rights to ?
- How to remove obsolete versions of a package ?
- What should I do after my host environment has been updated ?
How to know what packages I can deploy into my workspace
Basically use the
ìnfo command of the workspace.
- Search for available packages using the
- Get more detailed information about the package using the
For instance if you want to know if
DLib is wrapped into PID:
You can use the web pages to grab more information.
Now use the
package command to get more detailed information:
First you know that DLib is managed as an external project. You also have contact information to ask for question either about the external package wrapper (“PID PACKAGE CONTACT”) or original authors and license of the project. You also know what versions of
DLib are available and if among those versions there are prebuilt binaries for them (here there is none).
What is the best way to create a new package
Anytime use the
create command of the workspace. Follow these steps:
- create a repository online to host your package. Copy its SSH address.
- then into your local workspace launch the create command:
That’s it you can start working and your new package is properly initialized.
How to publish contributions to a contribution space I have no push rights to
This situation appear when you are the maintainer of a package that is published in an contribution space where you have no push rights. This is typically the case whenever you want to publish contributions into the official pid contribution space so we take it as example.
- First you need to configure your workspace:
- Fork the contribution space repository you want to publish in, here the official pid contribution space: https://gite.lirmm.fr/pid/pid-contributions. The fork is a repository you can push to.
- Copy the SSH address of the fork repository
- Configure the corresponding contribution space (here
pid) in your local workspace:
This simply tells to use the fork instead of the officiel repository when you want to publish new/updated references.
That’s it, this step is done one time only : you do not have to perform this operation again in this workspace.
- Second, publishing your references:
- Use the dedicated command to publish references into your fork:
- Propose a merge request to the official repository using your git environment (e.g. gitlab, github). Once the merge request is accepted you updates are published into the official contribution space.
How to remove obsolete versions of a package
Sometimes you may want to remove some old versions that you consider as obsolete. Thi sis tyically the situation after the first steps of developement of a package when a first stable release version has been publish (i.e.
1.0.0) where many interdemdiary development versions
0.X.Y still reside in the repository.
WARNING: remmeber that removing a version can impact third party code configuration. So use the following instructions carefully.
Identify the list of version to deprecate. Let’s suppose you want to make obsolete all
That’s it all versions with major
0 are now untagged and find files no more memorize them.
Remark: if you want to deprecatea specific minor version
0.X then simply do:
All patches for that minor version will be untagged and find file regenerated.
What should I do after my host environment has been updated
After a system update your host environment may contain numerous changfes that you probably want to use, like new version of compilers or standard libraries for your favorite languages. In PID the update is not automatic for any profile using the
host environment, typically the
default profile. So you need to ask PID to reload the corresponding profile for these changes to take effect.
For instance to do this for default profile (most common use case):
And to do this for a profile (lets call it
my_profile) also based on
Also remember that profiles not based on
host environment can also be impacted as some of their configuration may also have been updated. But it is more rare as those “non host” environments are typically used to set precise and static version of compilers and other build tools.