Package Hub
To extend the functionality of a project, you can download packages from the Package Hub. Packages are versioned projects that contain shareable components, such as pipelines, gems, business rules, user-defined functions, jobs, macros, models, and more.
The Package Hub includes both Prophecy-provided packages, as well as packages that you can publish yourself!
Add to the Package Hub
If you want to create reuseable components for yourself and others:
- Create a project.
- Build the component(s).
- Release and deploy the project.
- Share your project with other teams in the Access tab of the project metadata page.
- Publish the project to the Package Hub.
Importantly, if you add a project to the Package Hub, all of its components will be available for reuse.
Packages in the Package Hub are only available to users in teams that you have shared the project with.
Update package
When you update a project that is published as a package, the changes will only be available in the Package Hub when you release and deploy the project as a new version.
The release must be made from the branch specified on project creation (usually main
or master
). This ensures that teams will review code before releasing the project.
Use package in project
There are a few different ways to add a package to a project:
- Open the project and click the plus sign in the Gem Drawer.
- Open the project dependencies and add a dependency.
- Open the package in Package Hub and select Use Package.
You cannot change package components that have been imported in a project. You can only change the components from the source project.
FAQ
Q: I shared a dependency to a team, but we don’t see any email notification. A: The share “invitation” is not sent via email. Rather, the team would be able to add that project as a dependency to their new or existing projects.
Q: I shared a dependency to a team, but they don’t see the package listed when they try to add as a dependency. A: Be sure the new project and dependent project are using the same language, like Scala or Python. If the new project is a Scala project, only Scala Packages can be added as dependencies.
Q: How do I use subgraphs from a dependency? A: Like pipelines, subgraphs can be used by dependent projects via configurable variables.
Q: How can I change how the package works for only my project? A: If you want to tweak the functionality of a package for your own needs without affecting others, you can clone the packaged project and make your changes. This way, you will not change the original package.
What's next
Check out our in-depth tutorials on creating shareable components!
📄️ Build Shareable Pipelines
Shareable Pipelines within the project and to other projects
📄️ Build Shareable Datasets
Shareable Datasets within the project
📄️ Build Shareable Subgraphs
Sharable Subgraphs within the project and to other projects
📄️ Build Shareable UDFs
Sharable UDFs within the project and to other projects