{"id":20987749,"url":"https://github.com/shailshouryya/test-project","last_synced_at":"2026-05-20T20:10:17.107Z","repository":{"id":68303501,"uuid":"603978259","full_name":"shailshouryya/test-project","owner":"shailshouryya","description":"Test project in python to see how packaging works for python","archived":false,"fork":false,"pushed_at":"2023-04-17T05:33:10.000Z","size":336,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-15T19:16:41.494Z","etag":null,"topics":["pypi","pypi-package","python3","skeleton","skeleton-application","skeleton-template","template","template-project"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/test-project-python/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shailshouryya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-20T04:17:42.000Z","updated_at":"2023-03-16T06:57:20.000Z","dependencies_parsed_at":"2025-01-20T07:43:06.089Z","dependency_job_id":"da8ca7cc-b37e-45dd-84ca-dc0dca5466a0","html_url":"https://github.com/shailshouryya/test-project","commit_stats":{"total_commits":89,"total_committers":1,"mean_commits":89.0,"dds":0.0,"last_synced_commit":"7a8c752299ec3f7aa34f38a2e8784ef0700fcad2"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/shailshouryya/test-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shailshouryya%2Ftest-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shailshouryya%2Ftest-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shailshouryya%2Ftest-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shailshouryya%2Ftest-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shailshouryya","download_url":"https://codeload.github.com/shailshouryya/test-project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shailshouryya%2Ftest-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33273711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-20T15:12:43.734Z","status":"ssl_error","status_checked_at":"2026-05-20T15:12:42.300Z","response_time":356,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pypi","pypi-package","python3","skeleton","skeleton-application","skeleton-template","template","template-project"],"created_at":"2024-11-19T06:18:03.236Z","updated_at":"2026-05-20T20:10:17.078Z","avatar_url":"https://github.com/shailshouryya.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\nThis repository contains dummy projects in different programming languages to test how packaging works for that programming language.\n\n\n## Programming language agnostic tools\n\n### GPG\n\n- the easiest way to download and install GnuPG is to\n  - navigate to the `GnuPG binary releases` section at https://gnupg.org/download/\n  - select the application for your operating system and follow the download link\n  - follow the instructions for verifying the download and installing the software for your operating system from there\n- if you want to download GnuPG and install from the source files\n  - navigate to the `Source code releases` section at https://gnupg.org/download/\n  - download GnuPG and install (may need to extract and/or unzip the source files first)\n  - download Pinentry and install (may need to extract and/or unzip the source files first)\n- keep in mind\n  - the setup process may vary depending on your operating system\n  - the specific applications you get along with your GPG installation may vary depending your operating system and the bundle you select\n    - recent distributions of `debian` come pre-installed with `gpg`\n    - most GnuPG application bundles install a GUI to streamline the process of creating and managing keys\n      - the GPG Suite installed with [Mac GPG](https://gpgtools.org/) comes with `gpg` (binary), GPG Keychain, GPG Mail, and Pinentry\n      - [GnuPG for OS X](https://gnupg.org/download/) comes with `gpg` (binary) and Pinentry, but not with GPG Keychain nor GPG Mail\n      - [Gpg4win](https://gpg4win.org/download.html) comes with GpgOL, GpgEX, GnuPG, Kleopatra and pinentry-qt (includes both `pinentry.exe` and `pinentry-w32.exe`, not sure which one is run by default)\n      - 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\n- some potentially useful tutorials\n  - targeted for Windows, but includes platform agnostic information (see the `Option B: Command Line` sections): [Setting Up GPG on Windows (The Easy Way)](https://www.git-tower.com/blog/setting-up-gpg-windows/)\n  - targeted for macOS, but includes platform agnostic concepts about `gpg` and 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)](https://gpgtools.tenderapp.com/kb/how-to/first-steps-where-do-i-start-where-do-i-begin-setup-gpgtools-create-a-new-key-your-first-encrypted-email)\n\n\n## General Guidelines\n\n## Version tag rules\n\n- `git` enforces no restrictions on naming conventions for tags\n  - `git` sorts tags in alphabetical order\n- GitHub enforces no restrictions on naming conventions for tags either (and uses `git` under the hood), but is more nuanced with the tag sorting\n  - 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,\n    - in reverse chronological order [with the tag/commit date as the sort key, not the release date as the sort key](https://github.com/Shadowsocks-NET/QvStaticBuild/releases#discussioncomment-1728546) (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\n      - semantic versioning as the tiebreaker when the tag uses a **valid** semantic versioning tag (starts with a digit or a lowercase `v` and follows the `MAJOR.MINOR.PATCH` format, where `MAJOR`, `MINOR`, and `PATCH` are 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**\n        - 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)\n        - 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](https://semver.org/) document\n        - NOTE that an uppercase `v`, such as `V1.2.3`, does not qualify as a valid semantic versioning tag by this definition\n      - reverse alphabetical order as the tiebreaker (so `tag-d` will appear before `tag-c`) when the tag uses an **invalid** semantic versioning tag (starts with anything **other than** a digit or a lowercase `v`)\n  - example sort order (same order on both the [Tags page](https://github.com/shailshouryya/test-project/tags) and [Releases page](https://github.com/shailshouryya/test-project/releases):\n\n```text\n# these are correctly sorted in reverse chronological order\n0.0.2.post7-python\n0.0.2.post6-python\n0.0.2.post5-python\n0.0.0.post0\n0.0.0\n0.0.2.post4-python\n0.0.2.post3-python\n0.0.2_post_2-python\n0.0.2-post-1-python\n0.0.2.post0-python\n0.0.2-python\n0.0.1-python\n```\n\n  - see the following references for more information:\n    - 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.](https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#get-the-latest-release)\n      - however, the SORTING of ALL the releases is more nuanced: GitHub currently uses [a mix of](https://github.com/Shadowsocks-NET/QvStaticBuild/releases#discussioncomment-4697709)) [Semver 2.0.0](https://semver.org/spec/v2.0.0.html) and [pep440](https://peps.python.org/pep-0440/)\n      - 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](https://github.com/Shadowsocks-NET/QvStaticBuild/releases#discussioncomment-1728546)), and when there is a tie (multiple releases on the same date), GitHub uses semantic versioning as the tiebreaker\n        - [when the tag does not use semantic versioning (does not start with 'v' or a number)](https://github.com/community/community/discussions/8226#discussioncomment-1853768), uses [reverse alphabetical order](https://github.com/community/community/discussions/8226#discussioncomment-1982190) (so 'tag0' would come AFTER 'tag1' if both releases have the same date for their corresponding tag/commit linked to the release)\n        - 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\n          - [for `v4.10.0-alpha.3.10.geb2e56af` and `v4.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, so `3.10` appears below `3.9` because `1` comes before `9`.](https://github.com/Shadowsocks-NET/QvStaticBuild/releases#discussioncomment-4694630)\n          - NOTE that if [the version starts with an upper case `V` (instead of a lower case `v`), 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 case `v`.]\n- the `Compare` buttons on the [Releases page](https://github.com/shailshouryya/test-project/releases) seem to follow some entirely different order, with no obvious pattern:\n\n```text\n# these are sorted in NEITHER reverse chronological order NOR reverse alphabetical order\n0.0.2.post5-python\n0.0.2.post4-python\n0.0.2.post3-python\n0.0.2_post_2-python   # this should be first if sorted reverse alphabetically\n0.0.2.post0-python\n0.0.2-python\n0.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)\n0.0.1-python\n0.0.0                 # this should be LAST if sorted reverse alphabetically\n0.0.0.post0\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshailshouryya%2Ftest-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshailshouryya%2Ftest-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshailshouryya%2Ftest-project/lists"}