This repository contains dummy projects in different programming languages to test how packaging works for that programming language.
- the easiest way to download and install GnuPG is to
- navigate to the
GnuPG binary releasessection at https://gnupg.org/download/ - select the application for your operating system and follow the download link
- follow the instructions for verifying the download and installing the software for your operating system from there
- navigate to the
- if you want to download GnuPG and install from the source files
- navigate to the
Source code releasessection at https://gnupg.org/download/ - download GnuPG and install (may need to extract and/or unzip the source files first)
- download Pinentry and install (may need to extract and/or unzip the source files first)
- navigate to the
- keep in mind
- the setup process may vary depending on your operating system
- the specific applications you get along with your GPG installation may vary depending your operating system and the bundle you select
- recent distributions of
debiancome pre-installed withgpg - most GnuPG application bundles install a GUI to streamline the process of creating and managing keys
- the GPG Suite installed with Mac GPG comes with
gpg(binary), GPG Keychain, GPG Mail, and Pinentry - GnuPG for OS X comes with
gpg(binary) and Pinentry, but not with GPG Keychain nor GPG Mail - Gpg4win comes with GpgOL, GpgEX, GnuPG, Kleopatra and pinentry-qt (includes both
pinentry.exeandpinentry-w32.exe, not sure which one is run by default) - the Simple installer for the current GnuPG for Windows (gnupg-w32-X.Y.Z_yyyymmdd.exe) comes with GnuPg and Pinentry (
pinentry-basic.exe), but not with GpgOL, GpgEX, nor Kleopatra
- the GPG Suite installed with Mac GPG comes with
- recent distributions of
- some potentially useful tutorials
- targeted for Windows, but includes platform agnostic information (see the
Option B: Command Linesections): Setting Up GPG on Windows (The Easy Way) - targeted for macOS, but includes platform agnostic concepts about
gpgand public/private keys ("private key" is also referred to as a "secret key"): First steps - where do I start, where do I begin? (Setup GPGTools, Create a new key, Your first encrypted email)
- targeted for Windows, but includes platform agnostic information (see the
gitenforces no restrictions on naming conventions for tagsgitsorts tags in alphabetical order
- GitHub enforces no restrictions on naming conventions for tags either (and uses
gitunder the hood), but is more nuanced with the tag sorting- it appears the releases page (github.com/yourusername/yourreponame/releases) and the tags page (github.com/yourusername/yourreponame/tags) sort the releases and tags, respectively,
- in reverse chronological order with the tag/commit date as the sort key, not the release date as the sort key (so a tag/commit with a more recent date will appear before a tag/commit with an older date), but when there is a tie (multiple tags/commits have the same date), GitHub uses
- semantic versioning as the tiebreaker when the tag uses a valid semantic versioning tag (starts with a digit or a lowercase
vand follows theMAJOR.MINOR.PATCHformat, whereMAJOR,MINOR, andPATCHare decimal values between 0-9) with only the first 3 numeric parts of the tag ordered using semantic version ordering, and the remaining part of the tag sorted in reverse alphabetical order- NOTE that the reverse chronological order uses the date and does not use the datetime of the tag/commit (so 2 tags from the same date with different release times will still be tied)
- NOTE that if there are multiple tags that use a valid semver tag and are released on the same date and have the same value for the first three numeric fields
MAJOR.MINOR.PATCH, the sorting will use reverse alphabetical order using the rest of the tag/release name as the sort key and not use the rules specified in number 10 under the "Semantic Versioning Specification (SemVer)" section on the Semantic Versioning 2.0.0 document - NOTE that an uppercase
v, such asV1.2.3, does not qualify as a valid semantic versioning tag by this definition
- reverse alphabetical order as the tiebreaker (so
tag-dwill appear beforetag-c) when the tag uses an invalid semantic versioning tag (starts with anything other than a digit or a lowercasev)
- semantic versioning as the tiebreaker when the tag uses a valid semantic versioning tag (starts with a digit or a lowercase
- in reverse chronological order with the tag/commit date as the sort key, not the release date as the sort key (so a tag/commit with a more recent date will appear before a tag/commit with an older date), but when there is a tie (multiple tags/commits have the same date), GitHub uses
- example sort order (same order on both the Tags page and Releases page:
- it appears the releases page (github.com/yourusername/yourreponame/releases) and the tags page (github.com/yourusername/yourreponame/tags) sort the releases and tags, respectively,
# these are correctly sorted in reverse chronological order
0.0.2.post7-python
0.0.2.post6-python
0.0.2.post5-python
0.0.0.post0
0.0.0
0.0.2.post4-python
0.0.2.post3-python
0.0.2_post_2-python
0.0.2-post-1-python
0.0.2.post0-python
0.0.2-python
0.0.1-python
- see the following references for more information:
- GitHub REST API docs indicate the latest release on the releases page (github.com/yourusername/yourreponame/releases) uses the the most recent non-prerelease, non-draft release, sorted by the created_at attribute. The created_at attribute is the date of the commit used for the release, and not the date when the release was drafted or published.
- however, the SORTING of ALL the releases is more nuanced: GitHub currently uses a mix of) Semver 2.0.0 and pep440
- seems to order tags in reverse chronological order (with the tag/commit date as the sort key, not the release date as the sort key), and when there is a tie (multiple releases on the same date), GitHub uses semantic versioning as the tiebreaker
- when the tag does not use semantic versioning (does not start with 'v' or a number), uses reverse alphabetical order (so 'tag0' would come AFTER 'tag1' if both releases have the same date for their corresponding tag/commit linked to the release)
- when the tag does use semantic versioning, only the first 3 numeric parts of a tag are used for the semantic version ordering, and then everything after is not parsed, and is sorted (reverse) alphabetically
- for
v4.10.0-alpha.3.10.geb2e56afandv4.10.0-alpha.3.9.ge0d22139, semver only cares about the first 3 numeric parts (v4.10.0), and then everything after the-is not parsed and only sorted (reverse) alphabetically, so3.10appears below3.9because1comes before9. - NOTE that if [the version starts with an upper case
V(instead of a lower casev), the sorting falls back to string sorting. The version is only parsed as semver if the first character of the version is exactly the lower casev.]
- for
- GitHub REST API docs indicate the latest release on the releases page (github.com/yourusername/yourreponame/releases) uses the the most recent non-prerelease, non-draft release, sorted by the created_at attribute. The created_at attribute is the date of the commit used for the release, and not the date when the release was drafted or published.
- the
Comparebuttons on the Releases page seem to follow some entirely different order, with no obvious pattern:
# these are sorted in NEITHER reverse chronological order NOR reverse alphabetical order
0.0.2.post5-python
0.0.2.post4-python
0.0.2.post3-python
0.0.2_post_2-python # this should be first if sorted reverse alphabetically
0.0.2.post0-python
0.0.2-python
0.0.2-post-1-python # order after 0.0.2-python makes sense if reverse alphabetical order, but there are other inconsistencies for the reverse alphabetical sort (see comment above and below)
0.0.1-python
0.0.0 # this should be LAST if sorted reverse alphabetically
0.0.0.post0