Artifactory with Julia

An idle question, but might have some interesting answers.
Does anyone use JFrog Artifactory with Julia

I’m not aware that Artifactory supports Julia. an issue is open there Jira

If I may expand the question: what people do in institutions that don’t allow the import of Julia packages?

If I may expand the question: what people do in institutions that don’t allow the import of Julia packages?

For Julia to work at my organization, I need a solution that:

  • Doesn’t require internet access
  • Doesn’t require Docker
  • Doesn’t require users to have admin privileges
  • Preferably integrates with our existing DevOps infrastructure.

To date, the solution has been to give up and use Python instead. The issue isn’t necessarily the importation and self-hosting of packages, but the management and hosting of the artifacts in a way that’s consistent with security and quality assurance requirements. I too would be curious to hear what solutions people are using when subject to the above constraints.

The Manifest.toml should tell you everything that you need. Grab git clones of everything there.

To date, the solution has been to give up and use Python instead. The issue isn’t necessarily the importation and self-hosting of packages, but the management and hosting of the artifacts in a way that’s consistent with security and quality assurance requirements. I too would be curious to hear what solutions people are using when subject to the above constraints.`To date, the solution has been to give up and use Python instead. The issue isn’t necessarily the importation and self-hosting of packages, but the management and hosting of the artifacts in a way that’s consistent with security and quality assurance requirements. I too would be curious to hear what solutions people are using when subject to the above constraints.

Is it because you have Artifactory that you can use Python but not Julia in that environment?

Is it because you have Artifactory that you can use Python but not Julia in that environment?

Not exclusively, but it makes a lot of headaches go away on the administration and support side. It’s certainly possible to manually go and download all the packages, set up an internal hosting repository, and serve it to a community of users. This ad hoc approach is not scalable when you have potentially hundreds of active users using it for production work, and it quickly winds up consuming multiple FTE’s worth of labor just maintaining that arrangement. This also used to be the situation with Python, and migrating to Artifactory yielded huge savings in terms of the time and labor needed to serve the package environment, and led to a much better user experience.

While it isn’t really on the Julia community to support any particular vendor’s tooling, I do want to stress that there are institutional use cases out there that could greatly benefit from self-hosting approaches that integrate with existing enterprise IT infrastructure. The more users we can support, the more the language can continue to grow and flourish.

Why? Just copying the Julia depot ($HOME/.julia), like in this relevant recent thread, seems much less laborious and less error-prone.

1 Like

You are assuming several things.

  1. The architecture of the current system is exactly the same as the air gapped system. But sure you could just delete .julia/compiled
  2. On the air gapped system the user would not want to add the packages to a new environment. You need the git repos for this.

if GitHub is not blocked you can set the proxy to have Julia download the packages from there. you can include it in the startup script

The network here is airgapped

In many institutions, individual users dont’t have access to a proxy or GitHub is blacklisted. That is when a solution as Artifactory becomes attractive. But for the time being Julia isn’t supported

There is an update to the issue logged with JFrog
RTFACT-22535] Support for Julia Package Server [#RTFACT-22535] Support for Julia Package Server

1 Like

Julia doesn’t directly download packages from github, it downloads them from the community-run package servers (https://pkg.julialang.org/).

Also, I think JuliaHub provides a commercial service to run package servers for companies (or used to? that doesn’t seem to be emphasized on Overview - JuliaHub anymore).

3 Likes

I also struggled finding information about this but talking to some of the JH folks they do still have their on-prem PackageServer with inbuilt package management

So I guess if you are an engineering team that needs what Artifactory provides you should probably reach out to JH (or JFrog).

3 Likes