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!

Question about the ProGet 2023 Symbol Server Preview implementation



  • The blog posting on Feb 9th, 2023 about ProGet 2023: What's Coming and When discusses improved NuGet Symbol Support. It points to a preview feature that is currently available in the latest build (2022.26).

    I have two questions.

    1. It is my impression that the symbols package will need to be stored in the same feed as the library package. Is that correct?

    2. The posting states that when this feature is enabled, you should use the --symbol option on the dotnet nuget push command.

    The dotnet nuget push doesn't have a --symbol option. The only available options are --symbol-api-key and --symbol-source

    What is the correct syntax for pushing symbols at the same time as the package?

    I remember reading someplace that --symbol-source verifies that the feed description contains the SymbolPackagePublish @type?

    Is the correct URL to add to Visual Studio http://server/symbols/feed?

    Thank you.

    -marc


  • inedo-engineer

    Hi @msimkin_1572 ,

    The blog article was technically incorrect on the arguments, so I changed that.

    However, the documentation is updated and should be accurate:
    https://docs.inedo.com/docs/proget-feeds-nuget-symbol-and-source-server

    Basically, if you have both a nupkg and a snupkg in your folder, then you should only have to use

    dotnet nuget push kramericalib.4.1.2.nupkg  --source https://proget.kramerica.corp/nuget/internal-nuget
    

    The .snupkg file will be stored on the same feed.

    The symbol server url hasn't changed (it's still /symbols/feed).

    hope that helps :)



  • @atripp , thank you.



  • Hi @atripp. My apologies for taking so long to get back to you on this.

    I have been doing some testing. Neither
    dotnet nuget push or nuget push with the --source <url> doesn't push the symbol file.

    I have checked that my feed has been configured to server symbols and is set for Standard format.

    After executing the push command, I go to the package details and there is no information for under the symbol tab.

    I have checked the feed's folder on the hard drive and I don't see any snupkg files.

    I even tried NuGet push mypackage.nupkg -apikey ******** -source http://progetserver/nuget/InternalLibs -symbolapikey ******** -symbolsource http://progetserver/nuget/InternalLibs -verbosity detailed

    That also didn't push the symbol file.

    I'm currently running ProGet Free ver 2022.26 (Build 6).

    Any thoughts as to why this is not working?

    -marc


  • inedo-engineer

    Hi @msimkin_1572,

    Can you please verify that you enabled the standard symbol server on your feed? Also can you please verify that the .snupkg file exists at the same location and name (minus the extension) before you run nuget push?

    Thanks,
    Rich



  • Yes, the feed was enabled to support the standard symbol server on the feed.

    Yes, the .snupkg file exists in the same folder as the .nupkg file.

    FYI, the only way I have ever gotten this to work was to use a drop folder.

    From stepping through the nuget push code, when a push happens, the first step in the process is to pull the feed description document. Then is looks for the @type of SymbolPackagePublish. If that type is not found, a symbol file will not be found.

    I have not tracked code back to the specific nuget version this dependency was introduced, I know I started to have issues when using nuget versions from 4.4 to current.


  • inedo-engineer

    Hi @msimkin_1572 ,

    Sorry I didn't realize this before... the URL needs to be the Feed Endpoint URL, which would end in /index.json. I also updated the documentation to make this clear.

    The URL you have now is the v2 endpoint url, which doesn't have a feed description document.

    Hopefully it'll work as soon as you add /index.json to the URL :)

    Cheers,
    Alana



  • Hi @atripp, unfortunately that doesn't work. When I execute the following from a command shell:

    dotnet nuget push mypackage.nupkg --source http://my-internal-server/nuget/InternalLibs/index.json --api-key 1234567890

    I receive an error:

    error: Unable to load the service index for source http://my-internal-server/nuget/InternalLibs/index.json. error: Response status code does not indicate success: 404 (Not Found).

    When I attempt to just navigate via a browser to:

    http://my-internal-server/nuget/InternalLibs/index.json

    I get this response:

    OData method is not implemented.

    I also tried running nuget.exe directly from the command line. Same response as dotnet nuget push

    -marc


  • inedo-engineer

    Hi @msimkin_1572,

    Can you please navigate to your Manage Feed page and verify that JSON-LD (v3) is enabled under the Supported API?

    Thanks,
    Rich



  • @rhessinger, I have confirmed that the feed has both OData (v2) and JSON-LD (v3) enabled as Supported APIs.


  • inedo-engineer

    So sorry @msimkin_1572 , I just double checked.. the Endpoint URL should be formatted like v3/index.json not index.json.

    http://my-internal-server/nuget/InternalLibs/v3/index.json

    It "looked" right when I typed it, but I should have double checked. Normally I just copy/paste this from the Endpoint URL in the feed page.



  • Hi @atripp. Yes, that worked. Thank you for all the help. -marc


Log in to reply
 

Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation