Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/create/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ Quix now introduces the concept of a "monorepo" known as a **project**, where al

The monorepo (project) contains all the branches for the project, and all revision history for all services that make up the pipeline. This enables you to manage the complete pipeline development with full revision history, and use branches to develop features that are then merged after testing, as is usual for development processes based around Git.

Your project repository can also include [Git submodules](submodules.md) to reference external repositories for shared code.

With these changes, you now start your pipeline development by creating a project. A project is an entity that corresponds to a Git repository. That Git repository can be hosted for you on Quix, or you can use another provider such as GitHub or Bitbucket.

A project contains one or more environments (which is mapped to a Git branch), so typically you create an environment as part of the project creation workflow, and then create additional environments as required.
Expand Down
6 changes: 5 additions & 1 deletion docs/create/project-structure.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,8 @@ There is also a `requirements.txt` file - this is the standard Python file that

Any data files required by the application can also be located in the application's folder. In this example there is a `demo-data.csv` file that is loaded by the application code.

While this documentation has explored a simple project consisting of a pipeline with one application (service), pipelines with multiple applications have a similar structure, with a `quix.yaml` defining the pipeline, and with each application having its own folder, containing its application-specific files and an `app.yaml` file.
While this documentation has explored a simple project consisting of a pipeline with one application (service), pipelines with multiple applications have a similar structure, with a `quix.yaml` defining the pipeline, and with each application having its own folder, containing its application-specific files and an `app.yaml` file.

!!! tip

Your project repository can also include Git submodules to reference external repositories. See [Git submodules](submodules.md) for details and limitations.
39 changes: 39 additions & 0 deletions docs/create/submodules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: Git submodules
description: Learn how Quix handles Git submodules in your projects.
---

# Git submodules

If your Git repository includes submodules, Quix supports them automatically. Submodules enable you to include external Git repositories within your main project repository. This helps you share common code or dependencies across multiple projects.

## How Quix handles submodules

When you connect a repository that contains submodules to Quix, Quix automatically initializes and updates them. You do not need to configure anything. Quix clones your repository and fetches the content of all first-level submodules.

Files and applications within submodules appear alongside your main repository files, with no visual distinction. You can view their contents directly in Quix.

## Authentication requirements

Submodules must be accessible using one of the following methods:

- **Same SSH key**: You can access the submodule repository using the same SSH key configured for your main project repository.
- **Public repository**: The submodule repository is public and requires no authentication.

!!! note

If a submodule uses a private repository, ensure that the SSH key you configured for your project also has access to that submodule repository. Quix uses the same credentials for all submodule operations.

## Limitations

### Read-only access

Files within submodules are read-only in Quix. You can view and browse submodule content, but you cannot modify, delete, or move files that reside within a submodule.

!!! important

To modify content within a submodule, make changes directly in the submodule's own repository. Quix reflects those changes the next time it updates the submodule.

### No recursive submodules

Quix supports first-level submodules only. If a submodule itself contains submodules (nested submodules), Quix does not initialize or display them.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ nav:
- 'Protected environments': 'create/protected-environment.md'
- 'Syncing an environment': 'create/syncing-environment.md'
- 'Project structure': 'create/project-structure.md'
- 'Git submodules': 'create/submodules.md'
- 'Create a topic': 'create/create-topic.md'
- 'Data tiers': 'create/data-tiers.md'
- 'Create a scratchpad': 'create/create-scratchpad.md'
Expand Down