Inedo Community Forums Forums
    • Recent
    • Tags
    • Popular
    • Login

    Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

    If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

    PEP 700 conformance for PyPI feeds

    Scheduled Pinned Locked Moved Support
    13 Posts 6 Posters 100 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A Offline
      Ashley
      last edited by Ashley

      Hi @dean-houston,

      Can I confirm that this was fixed in the ProGet 2026 26.0.0 release last week?
      PG-3272 ⭐ Major Release ProGet 2026 ⭐

      We are experiencing issues with UV attempting to resolve packages that are too new when configured with the "exclude-newer" property, presumably because it's looking for the upload-time and not published in the response.

      For info, we are currently seeing non-PEP 700 compliance on version 2025.27

      Thanks,
      Ashley

      stevedennisS 1 Reply Last reply Reply Quote 0
      • stevedennisS Offline
        stevedennis inedo-engineer @Ashley
        last edited by

        Hi @Ashley ,

        It should have been; I just double-checked and see a commit for "Add full PEP 700 conformance for PyPI feeds" that appears to add the fields discussed here and some more.

        Thanks,
        Steve

        1 Reply Last reply Reply Quote 0
        • A Offline
          Ashley
          last edited by

          This post is deleted!
          1 Reply Last reply Reply Quote 0
          • A Offline
            Ashley
            last edited by Ashley

            Hi @stevedennis

            I upgraded our dev server to 2026.1 and we are still having issues with the upload-time property. It appears that ProGet will only add the upload-time property when the package has been pulled to ProGet, i.e. not present for remotes.

            2026.1 (Build 14):
            Request:

            $rawBytes = (Invoke-WebRequest http://proget-server/pypi/pypi-public/simple/ty -Headers @{ "Accept" = "application/vnd.pypi.simple.v1+json" }).content
            [System.Text.Encoding]::UTF8.GetString($rawBytes) | Out-File "c:\test.json"
            

            Response:

            {
              "meta": { "api-version": "1.1" },
              "name": "ty",
              "versions": [
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.22",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
                "0.0.23",
              ... //Excluded for brevity
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39",
                "0.0.39"
              ],
              "files": [
                {
                  "filename": "ty-0.0.22.tar.gz",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.22/ty-0.0.22.tar.gz",
                  "requires-python": ">=3.8",
                  "size": 5333861,
                  "upload-time": "2026-05-25T08:36:56.833Z",
                  "hashes": {
                    "md5": "4771ed89add13f88713a6db3875afc5c",
                    "sha1": "1ea16ea77d71ced631d577066855c9ca2bc8d498",
                    "sha256": "391fc4d3a543950341b750d7f4aa94866a73e7cdbf3e9e4e4e8cfc8b7bef4f10",
                    "sha512": "4e1b256aae7d7ae6f5349cd865e03d13c00f6e64183a8c06e6d22438aef6f771aa84da80bd27c280cb3b378c6887c77e559b25ea6366823dfd2629808af1364c"
                  }
                },
                {
                  "filename": "ty-0.0.22-py3-none-linux_armv6l.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.22/ty-0.0.22-py3-none-linux_armv6l.whl",
                  "requires-python": ">=3.8",
                  "size": 10328232,
                  "upload-time": "2026-05-25T08:36:26.603Z",
                  "core-metadata": {
                    "sha256": "91b9b58596f18ff672976d7f04dcab28e9b5ada579303470779c7e2a3be0d131"
                  },
                  "hashes": {
                    "md5": "bcfc8be7ece186f373fa0f1c43d4ba31",
                    "sha1": "04bb25267d898b6cb4b2586e14639f85820b2fe9",
                    "sha256": "03d37220d81016cb9d2a9c9ec11704d84f2df838f1dbf1296d91ea7fba57f8b5",
                    "sha512": "b79e054a90040dc6624f5556dd7444f50a3ad3ffd2d7b64f758a5a69b376e92dc246428599df78d9995c86207bb697eddbf2386898a1f61c50cbee8e71384de8"
                  }
                },
            ... //Excluded for brevity
                {
                  "filename": "ty-0.0.23.tar.gz",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.23/ty-0.0.23.tar.gz",
                  "requires-python": ">=3.8",
                  "size": 5341461,
                  "upload-time": "2026-03-13T12:34:23Z",
                  "hashes": {
                    "md5": "c220bcee84ca26a01a2479388d4ad7af",
                    "sha1": "75dd14d7fcbd3f56313886a1b46c23481930bc76",
                    "sha256": "5fb05db58f202af366f80ef70f806e48f5237807fe424ec787c9f289e3f3a4ef",
                    "sha512": "1dcd3d9a55d0734db1b1335f89db36b3b70d0c77112ad667dc24d556c5e122b6d8b0fced5fc19b99a292bbd98ab0ec0a92aebfe50047e37d627ad3442b2b2ef1"
                  }
                },
                {
                  "filename": "ty-0.0.23-py3-none-linux_armv6l.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.23/ty-0.0.23-py3-none-linux_armv6l.whl",
                  "requires-python": ">=3.8",
                  "size": 10329096,
                  "upload-time": "2026-03-13T12:34:09Z",
                  "core-metadata": {
                    "sha256": "6367da298c587b4db7c8709f079114d1dbbc9f748735deefb4179e295b7a1bb2"
                  },
                  "hashes": {
                    "md5": "62bc86fe02c8109ab3a619b2b5196fa2",
                    "sha1": "dedbdef7ad32e50890f667cd2e8ae2a64ef28625",
                    "sha256": "e810eef1a5f1cfc0731a58af8d2f334906a96835829767aed00026f1334a8dd7",
                    "sha512": "b615aaa871792d14c9ad725ed54c9749976da032eaf19e278787094308ab9ca7438c4d3e4ae46132b783d43a8e6fcf4643b0b9b9cf4450e181edb126e13493ec"
                  }
                },
            ... //Excluded for brevity
                {
                  "filename": "ty-0.0.39-py3-none-linux_armv6l.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-linux_armv6l.whl",
                  "requires-python": ">=3.8",
                  "size": 11360431,
                  "hashes": {
                    "sha256": "c1bb7ac70f1f7d70cc6655fd96558039e4562b10f489fa49c7ebfd5fcee73ad1"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-macosx_10_12_x86_64.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-macosx_10_12_x86_64.whl",
                  "requires-python": ">=3.8",
                  "size": 11096281,
                  "hashes": {
                    "sha256": "3435b64c1e59c14c9aa39c20cc018823937cd38d55db853e74d95b8f420569b0"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-macosx_11_0_arm64.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-macosx_11_0_arm64.whl",
                  "requires-python": ">=3.8",
                  "size": 10529674,
                  "hashes": {
                    "sha256": "5f136377ce46c73677701a9e1ad730bf72f699bcec046e422eb79d0886cac3ab"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
                  "requires-python": ">=3.8",
                  "size": 11055561,
                  "hashes": {
                    "sha256": "36b65fb0cc17f03e851d40e210d420be94ab8bc52d041328ad1e45f616036a61"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
                  "requires-python": ">=3.8",
                  "size": 11127185,
                  "hashes": {
                    "sha256": "4967967bfadf3860ff84c3fccdbaec8edf8aa20d0d727521084733d853de6657"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl",
                  "requires-python": ">=3.8",
                  "size": 11608459,
                  "hashes": {
                    "sha256": "9e10ecb1297099ddf9a1f054f8bd921d1863ce85fb819a3c96ed27865a1ba6ed"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
                  "requires-python": ">=3.8",
                  "size": 12177101,
                  "hashes": {
                    "sha256": "9b19cca70e465d71b0510656343883d62372bbe74b7845cae7c0e701d6d5264b"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl",
                  "requires-python": ">=3.8",
                  "size": 11827815,
                  "hashes": {
                    "sha256": "56c6704b01b9b3d80ff26b2918423b742516d1e469bef830e9254dcedc9185bf"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
                  "requires-python": ">=3.8",
                  "size": 11694429,
                  "hashes": {
                    "sha256": "40b7840ff46764b6a6757f4ade1cd0530fc3e8a0b435ca93e7602360e4cb90b6"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-manylinux_2_31_riscv64.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-manylinux_2_31_riscv64.whl",
                  "requires-python": ">=3.8",
                  "size": 11869846,
                  "hashes": {
                    "sha256": "1c62a3a87ce26b50819f0dbf03bd95f23f19eeb87bbc7aa732ec64277c77f1aa"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-musllinux_1_2_aarch64.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-musllinux_1_2_aarch64.whl",
                  "requires-python": ">=3.8",
                  "size": 11029763,
                  "hashes": {
                    "sha256": "f8c34bc81a9c3516e49904e9d8330aac385377cca98390193ea02b903a40fcf0"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-musllinux_1_2_armv7l.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-musllinux_1_2_armv7l.whl",
                  "requires-python": ">=3.8",
                  "size": 11146761,
                  "hashes": {
                    "sha256": "66f5ab11586a64e79cb692ad685ee5469325c31b5f30bd3554f52f36dbe28cc4"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-musllinux_1_2_i686.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-musllinux_1_2_i686.whl",
                  "requires-python": ">=3.8",
                  "size": 11281843,
                  "hashes": {
                    "sha256": "e8d89732bcbbcb091f439e556dfc4932f198b118b47d5b85212c60662099670e"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-musllinux_1_2_x86_64.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-musllinux_1_2_x86_64.whl",
                  "requires-python": ">=3.8",
                  "size": 11792477,
                  "hashes": {
                    "sha256": "eceb6c91dcd05a231119f82abdd9aa337513de23ca6ac990bc44f88791dc1799"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-win32.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-win32.whl",
                  "requires-python": ">=3.8",
                  "size": 10615377,
                  "hashes": {
                    "sha256": "891c3262314dbc80bf3e872634d23dd216306945daa9a9fcc206ce5ed21ac4c9"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-win_amd64.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-win_amd64.whl",
                  "requires-python": ">=3.8",
                  "size": 11710711,
                  "hashes": {
                    "sha256": "ba7f2d54452535419e90f6f03ff39282999e87b43c21c00559f6d7ad711a36d5"
                  }
                },
                {
                  "filename": "ty-0.0.39-py3-none-win_arm64.whl",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39-py3-none-win_arm64.whl",
                  "requires-python": ">=3.8",
                  "size": 11081409,
                  "hashes": {
                    "sha256": "eb4cf0fefbbfedf9a352597bb2431ebdcb7eb3a595c0f825f228e897a0ec285d"
                  }
                },
                {
                  "filename": "ty-0.0.39.tar.gz",
                  "url": "http://proget-server/pypi/pypi-public/download/ty/0.0.39/ty-0.0.39.tar.gz",
                  "requires-python": ">=3.8",
                  "size": 5702365,
                  "hashes": {
                    "sha256": "f750277e76a01ecd86185960eca73823c26a53c51103568d56d4d904575159fd"
                  }
                }
              ]
            }
            
            

            Note: Only versions 0.0.22 and 0.0.23 have the upload-time property, this is because I manually pulled these version to ProGet.

            upload-time should always be present prior to pulls so that client package managers like uv with exclude-newer = "7 days" can avoid pulling new packages that will be blocked by ProGet due to non-compliance rules.

            atrippA 1 Reply Last reply Reply Quote 0
            • atrippA Offline
              atripp inedo-engineer @Ashley
              last edited by

              Hi @Ashley ,

              Looking over the code that makes sense; the warehouse API is not used for the /simple/ty request, only the /simple/ty/0.0.0 type of request.

              We'll get this addressed via PG-3288 in the upcoming maintenance release

              Cheers,
              Alana

              1 Reply Last reply Reply Quote 0
              • A Offline
                Ashley
                last edited by

                Hi Alana,

                Thanks for investigating! Is the maintenance release this Friday or the week after?

                1 Reply Last reply Reply Quote 0
                • atrippA Offline
                  atripp inedo-engineer
                  last edited by

                  Hi @Ashley ,

                  We're planning this Friday... though it may not make it. Hopefully!

                  It's a bit more involved, since it involves calling the separate API instead of the simple API.

                  Cheers,
                  Alana

                  1 Reply Last reply Reply Quote 0
                  • gdivisG Offline
                    gdivis inedo-engineer
                    last edited by

                    Hi @Ashley,

                    It turns out that we just weren't reading upload-time from the upstream json when using the simple API, so this was pretty trivial to fix and we'll certainly be able to include it in tomorrow's release. Here's the abbreviated result of a quick local test I did after making the fix (also after fixing the issue with the duplicated versions):

                    {
                      "meta": {
                        "api-version": "1.1"
                      },
                      "name": "psycopg",
                      "versions": [
                        "3.0b1",
                        "3.0",
                        "3.0.1",
                        "3.0.2",
                        "3.0.3",
                        "3.0.4",
                        "3.0.5",
                        "3.0.6",
                        "3.0.7",
                        "3.0.8",
                        "3.0.9",
                        "3.0.10",
                        "3.0.11",
                        "3.0.12",
                        "3.0.13",
                        "3.0.14",
                        "3.0.15",
                        "3.0.16",
                        "3.0.17",
                        "3.0.18",
                        "3.1",
                        "3.1.1",
                        "3.1.2",
                        "3.1.3",
                        "3.1.4",
                        "3.1.5",
                        "3.1.6",
                        "3.1.7",
                        "3.1.8",
                        "3.1.9",
                        "3.1.10",
                        "3.1.11",
                        "3.1.12",
                        "3.1.13",
                        "3.1.14",
                        "3.1.15",
                        "3.1.16",
                        "3.1.17",
                        "3.1.18",
                        "3.1.19",
                        "3.1.20",
                        "3.2.0",
                        "3.2.1",
                        "3.2.2",
                        "3.2.3",
                        "3.2.4",
                        "3.2.5",
                        "3.2.6",
                        "3.2.7",
                        "3.2.8",
                        "3.2.9",
                        "3.2.10",
                        "3.2.11",
                        "3.2.12",
                        "3.2.13",
                        "3.3.0",
                        "3.3.1",
                        "3.3.2",
                        "3.3.3",
                        "3.3.4"
                      ],
                      "files": [
                        {
                          "filename": "psycopg-3.0b1-py3-none-any.whl",
                          "url": "http://localhost:5000/pypi/snake/download/psycopg/3.0b1/psycopg-3.0b1-py3-none-any.whl",
                          "requires-python": ">=3.6",
                          "size": 131830,
                          "upload-time": "2021-09-03T21:34:46.638478Z",
                          "hashes": {
                            "sha256": "fd510caaaa90aec11781c0581a8a03f847e35925db6de293404db87d625a44e8"
                          }
                        },
                        {
                          "filename": "psycopg-3.0b1.tar.gz",
                          "url": "http://localhost:5000/pypi/snake/download/psycopg/3.0b1/psycopg-3.0b1.tar.gz",
                          "requires-python": ">=3.6",
                          "size": 108312,
                          "upload-time": "2021-08-30T04:25:06.027667Z",
                          "hashes": {
                            "sha256": "90188a415f2132eabccfa58ae41330d3bfc1c5c410add4d6194e783521478189"
                          }
                        },
                        {
                          "filename": "psycopg-3.0-py3-none-any.whl",
                          "url": "http://localhost:5000/pypi/snake/download/psycopg/3.0/psycopg-3.0-py3-none-any.whl",
                          "requires-python": ">=3.6",
                          "size": 140812,
                          "upload-time": "2021-10-12T16:20:12.084578Z",
                          "hashes": {
                            "sha256": "65b9fb8838dae61040ad3e0cfc184d4ffd17f740ef4c0353d76050a6eb061a9c"
                          }
                        }
                        //...SNIP
                      ]
                    }
                    
                    1 Reply Last reply Reply Quote 0
                    • A Offline
                      Ashley
                      last edited by

                      Hi,

                      We just upgraded to 2026.2 and it looks good, thanks for getting the update out so quick!

                      1 Reply Last reply Reply Quote 1
                      • atrippA Offline
                        atripp inedo-engineer
                        last edited by

                        @Ashley thanks for letting us know!

                        1 Reply Last reply Reply Quote 0

                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                        With your input, this post could be even better 💗

                        Register Login
                        • 1 / 1
                        • First post
                          Last post
                        Inedo Website Home • Support Home • Code of Conduct • Forums Guide • Documentation