I started looking into Libraries (reusable components) today and i’m having an issue with something. It might be that im not using library function the way its intended, if so let me know.
Lest say i have 2 Processes: ProcessA and ProcessB, they both use my LibraryA.
If i update LibraryA and publish it to Orchestrator, how can i make sure that ProcessA and ProcessB always runs with the latest version of the library?
I know i can open the projects in studio and manually update to the latest version, but this is really cumbersome and doesn’t scale very well if i need to update 50 processes which is a concern for me.
Yeah, I think you have the option in 18.4 to use “Strict” or “Lowest Applicable Version”. From my understanding, they were going to add another option for “Highest Applicable Version” or whatever.
Essentially, you could remove all old versions of the library from the feed, so the “Lowest Applicable Version” would be the newest version, therefore you would not need to update all processes.
Hello @mircea, @loginerror is there an update here on the Highest Applicable Version setting? This is sorely needed in our processes for a library to be scalable.
I’d like to add my voice to the voices here. It would be most helpful if all automations would use the most recent version of the published library automatically.
But this begs another question:
If I have version 1.01, 1.02, and 1.03 of a library published to my orchestrator and I have automations that use all three different versions of that library, is that what is in fact happening? The version of the library that’s being used is controlled by the version in the package?
To be more clear, Process A was published using version 1.02 of the library. Do I understand correctly that it will keep using version 1.02 of the library until I update packages from Studio and republish?
This would be very bad. You don’t want it to be automatic, because changes in the later package version could break the automation.
To be more clear, Process A was published using version 1.02 of the library. Do I understand correctly that it will keep using version 1.02 of the library until I update packages from Studio and republish?
I answered yes to this, but there is one caveat. If you have conflicting dependency versions then the “strict” or “lowest applicable version” setting would come into play, and the automation might use a higher version of one of the dependencies.
I recommend reading this, specifically the Setting Dependency Rules and Resolving Dependency Conflicts sections.
I wouldn’t say that it would be “bad”. If the implementation is robust enough it could have various version constraints and logical operators to signify what explicate, range, or minimum, maximum versions can be used. This can be used to constrain referenced packages to their minor or patch releases only for a major branch and that sort of thing.
While you cannot ensure that 3rd party projects/developers are conforming to a certain versioning scheme, this would put the flexibility and choice to each maintainer.
For those that are unaware UiPath also have the Project Dependencies Mass Update Tool
@Forum_Staff - It might be worthwhile to convert this topic into an idea if one doesn’t already exist.
Seems more of your specifics companies process in change management. We also do Change Management in this space, but building a package is done outside of that governance and the change/release management looks after the ‘enablement’ and configuration of the processes to be used in production.
Currently we publish packages to Orchestrator directly but will eventually publish to an external feed available to multiple environment/instances and after that move towards CI/CD pipeline.
Imagine I’ve got 1000 automations all of whom log in to the same system to get started, and I’ve built a reusable component to handle the process of logging in (since it’s the same every time).
Now imagine that the login page changes and I have to adjust the login procedure.
Isn’t it far better to be able to change it in once place, publish, and be done with it rather than having to go to each of the 1000 automations and update them?