# Packaging

Kx Control contains a complete import/export facility to support deployment between environments. The package structure contains a definition file and a series of content files separated into different directories based on the entity class.

So far we've grouped everything we created into the KxWarehouse package. This can be pushed to Git for versioning and integration with deployment and testing pipelines.

### Git commit

The package pushed directly to Git using the Package Exporter.

Repo creation

When pushing packages to Git, the repository needs to be pre-created manually on the Git server.

• Right-click on the KxWarehouse package and select Open Package Exporter from the context menu.

• A new tab opens with a list of all the entities in the package. Add the remote git location to Git info.

• In the Package Exporter uncheck Include Child Dependencies.

• Check Include Permissions. This means the permissions are automatically exported which will allow the set up of the same user groups, users and permissioning levels when a package is imported.

• Click on Git commit/push.

• The Git Commit tab lists the staged changes. Add a commit message here.
• The Content Diff allows you to diff the changes to be committed.
• Upon checking if the repository, branch and staged files are correct, click on Commit to push the package directly to Git.

### Export to disk

Packages may be exported to disk in a similar manner.

• In Package Exporter, make sure to specify the Directory.
• Click on Export All to save onto disk.

See below for further documentation:

### Import from disk

Packages can be imported from disk using the Package Importer.

• In Package Importer, you can import the zip file of the previously exported package or you can import from disk if package already there.

See below for further documentation: