Inedo Community Forums Forums
    • Recent
    • Tags
    • Popular
    • Login
    1. Home
    2. dean-houston
    3. Posts

    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!

    dean-houstonD Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 222
    • Groups 1

    Posts

    Recent Best Controversial
    • RE: Otter: Eliminate extraneous changes from the "Review Changes..." screen

      Hi @MY_9476 ,

      I'm afraid this isn't technically feasible.

      When you edit in Visual Mode, the statement is basically "serialized" to OtterScript, and the property order is determined by however the operation's code (i.e. C#) is laid out. Fortunately this is really consistent, and really only is a problem when you go back-and-forth.

      But in this case, there must have been some change to the C# / order of properties (refactoring perhaps?) so it's inconsistent across versions of Otter? If you edit it again, the order will be the same.

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Use pgutil to create a feed

      Hi @steviecoaster,

      We're currently working on the pgutil feeds commands, and expected create and update to be finished in a week or so. In the mean time, I just published pgutil-1.1.2, so please check that out - it will have a basic version of pgutil feeds create.

      As for the PowerShell command, you'll need to pass the JSON structure that's documented in that article. You would want to use something like ConvertTo-Json to convert a Hash table to JSON.

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Silent installation of ProGet

      Hi @steviecoaster,

      If you want to use the offline installer in a script (which I think is best for a Chocolatey script), then just unzip it after downloading. I know it's an .exe file, but you can just unzip it like any other zip file (e.g. with Expand-Archive or something in PowerShell).

      Once you've done that, you can just run the hub.exe per the silent installation instructions.

      Alternatively, you can write a script like this, which will instruct hub.exe to download a version:

      # create working directories
      mkdir C:\InedoHub
      cd C:\InedoHub
      
      # download and extract file to working directory
      Invoke-WebRequest "https://proget.inedo.com/upack/Products/download/InedoReleases/DesktopHub?contentOnly=zip&latest" -OutFile C:\InedoHub\InedoHub.zip
      Expand-Archive -Path InedoHub.zip -DestinationPath C:\InedoHub
      
      # perform silent installation
      hub.exe install ProGet:5.2.3 --ConnectionString="Data Source=localhost; Integrated Security=True;"
      

      The only downside to this approach is that it's not really version controlled (i.e. it's always using latest Inedo Hub) and the package can't be realizably internalized, since hub.exe will download files from the internet.

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Azure feed not syncing with ProGet

      Hi @cstekelenburg_4169 ,

      If you created a connector with the proper URL, username, and password, then you've set it up correctly.

      Please note, you will not be able to list or search remote packages in the ProGet UI. This is a limitation, since ADO is rudimentary and does not support listing/searching.

      Instead, you will need to use the NuGet API (Visual Studio, Nuget.exe) to pull packages. Once package has been pulled through ProGet, you will "see it" in the UI since it's been cached.

      I'm not trying to be pedantic with terminology, but please note it's not a "sync" -- it's more of a "proxy" or "pass through". When you make a request via the NuGet API, that API request is forwarded to your connector (I.e. Azure DevOps).

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Azure feed not syncing with ProGet

      Hi @cstekelenburg_4169,

      Azure Artifacts does not support the NuGet Search API, so this means you won't see packages on the feed/search page in ProGet. This is expected behavior with rudimentary NuGet repositories that don't support listing/searching.

      In the past, I'm guessing that you either:

      • used the Azure Feed Import Wizard, which will perform a one-time download using a special (non-NuGet API)
      • pulled packages via the NuGet API (e.g. with nuget.exe, visual studio, etc), which will then would cache them in ProGet

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Azure feed not syncing with ProGet

      Hi @cstekelenburg_4169 ,

      ProGet does not "sync" remote repositories, but instead displays and caches results through a "connector" you configure. If there are any connector errors, they will be logged when you do a query.

      Azure artifacts do not support searching or listing packages, so you won't "see" a package unless you type in the exact package name.

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Enforcing Licence Policies/Blocking?

      Hi @johnsen_7555 ,

      Thanks for sharing the additional details; I was able to reproduce this, and its a regression/bug.

      We fixed this via PG-2723 (FIX: Noncompliant Pypi packages can be downloaded when blocking is enabled on trial licenses), which is going to be shipped in the next maintenance release.

      However, in the mean time, you can try a patch/prerelease version that contains the fix; since you mentioned Docker, the tag to pull would be 24.0.9-ci.1.

      Hopefully that will solve the issue!

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Enforcing Licence Policies/Blocking?

      Hi @johnsen_7555 ,

      Thanks for sharing all of the configuration details; can you navigate to one of the GPL packages that you're trying to install, and see what it says on the package page within ProGet?

      On that page, you can also ReAnalyze the package (using the dropdown button ) and get a log of which policies/rules were applied.

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Scaling Proget as an Azure Container Web App, what about the SQL DB?

      Hi @carl-westman_8110,

      Thank you so much for the kind words, and it sounds like you're on the right track for setup/configuration!

      ProGet is designed for the scenario you described (i.e. a multiple instances that point to the same database/files), and we call it a server cluster:
      https://docs.inedo.com/docs/installation-high-availability-load-balancing

      The above instructions are for Windows, but the same principle would apply for Azure Web Apps, Kubernetes, etc. We just don't have documentation or the ability to support the underlying platform. What I mean by that, if the "scale out" feature in Azure doesn't do what it's supposed to, you would need to contact Azure support.

      All that said, do note that a ProGet clustered installation requires a ProGet Enterprise license:
      https://docs.inedo.com/docs/proget-administration-license

      Hope that helps,

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: ProGet Lock Issues

      Hi @scott-wright_8356 ,

      That procedure is ancient and hasn't caused problems before. I suspect the issue might be the size of the data in that able - you can see what that looks like on the connector cache management page.

      You could also try to optimize the query like so:

      ALTER PROCEDURE [dbo].[Connectors_GetCachedResponse]
      (
        @Connector_Id INT,
        @Request_Hash BINARY(32)
      )
      AS BEGIN
      
      SELECT * INTO #ConnectorResponses
         FROM [ConnectorResponses] WITH (READUNCOMMITTED)
         WHERE [Connector_Id] = @Connector_Id
         AND [Request_Hash] = @Request_Hash
      
      UPDATE [ConnectorResponses]
         SET [LastUsed_Date] = GETUTCDATE(),
             [Request_Count] = CR.[Request_Count] + 1
       FROM  [ConnectorResponses] CR 
        JOIN #ConnectorResponses _CR ON CR.[Connector_Id] = _CR.[Connector_Id]
      
      SELECT * FROM #ConnectorResponses
        
      END
      

      Let us know if that works, we can update the code accordingly if so.

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: [OT] Modifying a server configuration triggers a full "Server Check"

      Hi @philippe-camelio_3885,

      Troubleshooting the database can be a pain, but there are a lot of tools that can help. Here is a nice guide from Microsoft, which includes a script that shows you how to use the sys.dm_exec_query_stats and sys.Dm_exec_sql_text views:
      https://learn.microsoft.com/en-us/troubleshoot/sql/database-engine/performance/troubleshoot-slow-running-queries

      Just make sure to remove WHERE t.text like '<Your Query>%' from the sample, if you want to see all queries. Some red flags on that query will a disproportional total_elapsed_time , etc.

      That said, there are two different jobs:

      • "Server Checker" attempts to connect to each server and make sure the agent is up to date; when this fails, a server will go into an Agent Error state
      • "Routine Configuration" attempts to check desired configuration against each server using OtterScript; this is what puts a server in Failed or Drift state

      A "Server Checker" is run frequently and should be very fast. There is very little database activity (just Servers_GetServers to get all servers, then Servers_UpdateServerStatus per server).

      A "Routine Configuration" is obviously more complicated, and may involve a lot more database activity.

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: ProGet Lock Issues

      Hi @scott-wright_8356 ,

      Thanks for sharing a lot of the details; it's not really clear what objects the locks are on, can you look at the XML view of the deadlock report to find out?

      Since you're "already there", you're welcome to try doing what we would do --- just add WITH (READUNCOMMITTED) to the problematic queries (i.e. the ones where object locks are occurring on).

      For example, like this: SELECT * INTO #PgvdPackageNames FROM [PgvdPackageNames_Extended] WITH (READUNCOMMITTED) WHERE [PackageName_Id] = @PackageName_Id

      As an FYI, this should not be an issue in ProGet 2024, since package analysis is cached for a short while. Also, our internal development practices (going forward) are to READUNCOMMITTED in "hot" queries this anyway.

      -- Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Many timeouts in ProGet log when restoring packages

      hi @andreas-unverdorben_1551 ,

      The timeout message you shared is for a NuGet feed - so the issue isn't the 727 packages that you're installing (which often results in 1400-2100 requests being fired off simultaneously) , but the NuGet build(s) that are also going on at the same time and hammering the server.

      The server cluster will definitely help with this peak load.

      FYI --- that error message you shared is is from NuGet v2 API, so something is still calling it.

      Cheers,
      Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Many timeouts in ProGet log when restoring packages

      Hi @andreas-unverdorben_1551 ,

      What's happening here is your server is being overloaded due to lots and lots of traffic -- effectively you are doing a Denial of Service attack on you server. As I mentioned in npm install slow on proxy feed, ProGet is not a static file server and there is a lot of processing required for each request.

      The best way to handle this is to run a load-balanced ProGet server cluster.

      Alternatively, you will need to reduce or throttle traffic.

      • ProGet has a built-in traffic throttle under Advanced Settings (concurrent web request limit)
      • Stop using the NuGet v2 API, that's very inefficient
      • Stop or reduce connector usage, so ProGet doesn't have to contact nuget.org etc.
      • Do not use multiple sources in your nuget configuration, since NuGet will issue all of those requests simultaneously
      • Disable parallel restore on NuGet and npm

      See How to Prevent Server Overload in ProGet to learn more.

      Best,
      Steve

      posted in Support
      dean-houstonD
      dean-houston
    • RE: npm install slow on proxy feed

      Hi @andreas-unverdorben_1551 ,

      npmjs.org primarily serves static content and runs on massive server farms running in Microsoft's datacenters.

      Your ProGet server is much less powerful and does not serve static content. Not only is every request is dynamic (authentication, authorization, vulnerability checking, license checking, etc), but most requests (such as "what is the latest version of package X") need to be forwarded to npmjs.org and aggregated with local data.

      So, a much less powerful server doing a lot more processing is going to be a little slower ;)

      Running ProGet in a server cluster will certainly help.

      Cheers,
      Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Unable to upload tar.gz file to NPM feed through web UI in Proget

      Hi @devops-services_2004 ,

      In this case, can you open a ticket and send us that tar.gz file (attach on the ticket)?

      From there we will load it in a debug version of ProGet and identify where the problem is occurring. Not something that will be easy to spot by inspecting a file :)

      Thanks,
      Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Unable to upload tar.gz file to NPM feed through web UI in Proget

      Hi @devops-services_2004 ,

      This means that the file you uploaded contained unexpected data; like maybe something in the package.json file was wrong, or it was in the wrong format, etc.

      How did you create this npm package? Or did you download it from somewhere? We could probably look at the file and say what's wrong with it.

      Best,
      Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: attempt to write to readonly database

      Hi @henh-lieu_7061 ,

      This error indicates that you don't have access to the c:\ProgramData\Romp directory, or there is otherwise a file error when writing to that folder.

      You can try deleting that folder, then reinstalling again.

      Best,
      Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Installed ProGet Server on EC2, setting up HTTPS and associating with existing Domain Name

      Hi @Ricardo_C_RST ,

      For EC2 (a virtual server), you can just follow the ordinary Inedo Hub installation process. As for HTTPS and Domain, that's a setting probably easiest to do in AWS. I'm not familiar with AWS, but something like CloudFront might help?

      Dean

      posted in Support
      dean-houstonD
      dean-houston
    • RE: Multiple builds as part of an application

      Hi @Justinvolved,

      I don't know if I'm totally tracking the structure, and what you mean by "referencing the latest builds" in the deployment scripts.

      Are you looking to have three applications? One app per repo, and then a "controller" application?

      Or, do you want to have one application that builds from two repos? And it will always build/deploy content from those at the same time?

      Dean

      posted in Support
      dean-houstonD
      dean-houston
    • 1
    • 2
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 9 / 12