Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
c63720a
Move docs generations to bazel distribution (#393)
krishnangovindraj Jan 12, 2024
b3618bb
Migrate artifact hosting to cloudsmith (#394)
krishnangovindraj Jan 13, 2024
4a01d09
Fix bug with maven deployment (#395)
krishnangovindraj Jan 13, 2024
ad6cc19
Release candidate support (#397)
dmitrii-ubskii Jan 25, 2024
1a507e7
Fix maven pre-deploy snapshot version validation: require SemVer-SHA …
dmitrii-ubskii Jan 29, 2024
6ecb2a5
Add unizp_file utility rule (#399)
dmitrii-ubskii Jan 30, 2024
c473d17
targz_edit: add support for glob exclusion patterns (#400)
dmitrii-ubskii Jan 31, 2024
ebb4a9b
Artifact deployment: use version_file, fix version validation (#401)
dmitrii-ubskii Feb 6, 2024
fbec2a3
Add version to uploaded apt package filename (#405)
krishnangovindraj Mar 21, 2024
5e8c09d
Add Bazel rules for C# packaging, distribution and documentation. (#406)
farost Apr 4, 2024
425493c
Fix docs target build (#407)
farost Apr 4, 2024
3f88eb2
Upgrade Packer and increase GCP packer image disk size (#409)
Apr 5, 2024
0040e49
Bump rules python to 0.31.0 (#413)
krishnangovindraj May 14, 2024
8767cde
Remove leading and trailing whitespaces from VERSION files for crate …
farost Jun 3, 2024
d51b838
In `assemble_apt`, make dependency declarations optional (#415)
alexjpwalker Jun 24, 2024
8bd4781
npm deployer: use the provided npm path directly (#417)
dmitrii-ubskii Jul 31, 2024
6874e2a
Add reformatting for alphas and betas (#418)
farost Oct 4, 2024
4c7539d
Renamed workspace to typedb_bazel_distribution
haikalpribadi Nov 6, 2024
0de07eb
Renamed Java/Kotlin package addresses to com.typedb.bazel.distribution
haikalpribadi Nov 6, 2024
6521268
Updated rules_kotlin repo address to github.com/typedb/rules_kotlin
haikalpribadi Nov 6, 2024
94c4f7b
Update FactoryCI image to typedb-ubuntu-22.04
haikalpribadi Nov 7, 2024
1cd0800
Align function name with workspace name for @typedb_bazel_distributio…
haikalpribadi Nov 15, 2024
f607a9a
Streamline macro names with the workspace they load
haikalpribadi Nov 15, 2024
1e99c86
Update pull_request_template.md
alexjpwalker Nov 22, 2024
c5a49f7
Improve Apple code signing (#419)
sam-butcher Nov 22, 2024
056a8d7
Update type hint in brew deployment script (#420)
krishnangovindraj Feb 7, 2025
a9a5878
Pip dependencies for cloudsmith uploader accepts python interpreter (…
krishnangovindraj Nov 4, 2025
ec43dca
Revise contribution guidelines in CONTRIBUTING.md
alexjpwalker Jan 7, 2026
19868c2
Handle output directory differently in python sphinx_docs rule (#424)…
farost Feb 18, 2026
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: 1 addition & 1 deletion .factory/automation.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
build:
correctness:
build:
image: vaticle-ubuntu-22.04
image: typedb-ubuntu-22.04
type: foreground
command: |
bazel build //...
Expand Down
8 changes: 3 additions & 5 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
Please replace every line in curly brackets ( { like this } ) with an appropriate description, and remove this line.
## Usage and product changes

## What is the goal of this PR?

{ Please describe the goal of this PR, why they are valuable to achieve, and reference the related GitHub issues. }
## Motivation

## What are the changes implemented in this PR?

{ Please explain what you implemented, why your changes are the best way to achieve the goal(s) above, and reference the GitHub issues to be automatically closed, such like 'closes #number'. }
## Implementation
10 changes: 5 additions & 5 deletions BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ stardoc(
"//brew:lib",
"//common:lib",
"//crates:lib",
"//docs:lib",
"//gcp:lib",
"//github:lib",
"//maven:lib",
Expand All @@ -40,7 +41,6 @@ stardoc(
"//npm/deploy:lib",
"//packer:lib",
"//pip:lib",
"//rpm:lib",
],
symbol_names = [
# From: //apt:rules.bzl
Expand Down Expand Up @@ -77,6 +77,10 @@ stardoc(
"assemble_crate",
"deploy_crate",

# From: //docs:*/rules.bzl
"doxygen_docs",
"sphinx_docs",

# From: //gcp:rules.bzl
"assemble_gcp",

Expand All @@ -101,9 +105,5 @@ stardoc(
# From: //pip:rules.bzl
"assemble_pip",
"deploy_pip",

# From: //rpm:rules.bzl
"assemble_rpm",
"deploy_rpm",
],
)
21 changes: 12 additions & 9 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
Want to contribute? Your contribution is warmly welcomed! Please be aware of the following caveats:
## Want to contribute?
Your contributions are warmly welcomed! To make the process as smooth as possible, please note:

### Large contributions
### Large Contributions
Before starting work on a major feature, architectural change, or large refactor, please get in touch to discuss your idea. This ensures your work aligns with the project roadmap and has the best chance of being merged.

Before you start working on a larger contribution, you should get in touch with us first to
explain your idea so we can help and possibly guide you, which you can do using:
You can do this via:

- The GitHub issue tracker;
- [Discord](https://discord.gg/typedb).
- [GitHub Issues](../../issues)
- [Discord](https://typedb.com/discord)

If you don't do this, large contributions are unlikely to be reviewed.
Note: Large PRs submitted without prior discussion may be closed without review.

### Code reviews and other contributions.
### Bug Fixes & Small Changes
Small improvements, documentation fixes, and bug reports are welcome via direct Pull Request or Issue.

All submissions, including submissions by project members, require review.
### Code Quality
All submissions, including those from core maintainers, undergo a mandatory code review process.
25 changes: 0 additions & 25 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -175,28 +175,3 @@
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2018 Vaticle.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
4 changes: 0 additions & 4 deletions NOTICE

This file was deleted.

86 changes: 43 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -275,9 +275,9 @@ deploy_npm(<a href="#deploy_npm-name">name</a>, <a href="#deploy_npm-release">re
## How to generate an auth token

### Using the command line (`npm adduser`)
1. Run `npm adduser &lt;repo_url&gt;` (example: `npm adduser --registry=https://repo.vaticle.com/repository/npm-private`)
1. Run `npm adduser &lt;repo_url&gt;` (example: `npm adduser --registry=https://npm.cloudsmith.io/typedb/private/`)
2. When prompted, provide login credentials to sign in to the user account that is used in your CI and has permissions to publish the package
3. If successful, a line will be added to your `.npmrc` file (`$HOME/.npmrc` on Unix) which looks like: `//repo.vaticle.com/repository/npm-snapshot/:_authToken=NpmToken.00000000-0000-0000-0000-000000000000`. The token is the value of `_authToken`, in this case `NpmToken.00000000-0000-0000-0000-000000000000`.
3. If successful, a line will be added to your `.npmrc` file (`$HOME/.npmrc` on Unix) which looks like: `//npm.cloudsmith.io/typedb/private/:_authToken=NpmToken.00000000-0000-0000-0000-000000000000`. The token is the value of `_authToken`, in this case `NpmToken.00000000-0000-0000-0000-000000000000`.
4. Save the auth token somewhere safe and then delete it from your `.npmrc` file

### Using a UI
Expand Down Expand Up @@ -321,28 +321,30 @@ Execute Packer to perform deployment
| <a id="deploy_packer-target"></a>target | <code>assemble_packer</code> label to be deployed. | <a href="https://bazel.build/concepts/labels">Label</a> | optional | <code>None</code> |


<a id="deploy_rpm"></a>
<a id="doxygen_docs"></a>

## deploy_rpm
## doxygen_docs

<pre>
deploy_rpm(<a href="#deploy_rpm-name">name</a>, <a href="#deploy_rpm-release">release</a>, <a href="#deploy_rpm-snapshot">snapshot</a>, <a href="#deploy_rpm-target">target</a>)
doxygen_docs(<a href="#doxygen_docs-name">name</a>, <a href="#doxygen_docs-desc">desc</a>, <a href="#doxygen_docs-main_page_md">main_page_md</a>, <a href="#doxygen_docs-project_name">project_name</a>, <a href="#doxygen_docs-sources">sources</a>, <a href="#doxygen_docs-strip_prefix">strip_prefix</a>, <a href="#doxygen_docs-version">version</a>)
</pre>

Deploy package built with `assemble_rpm` to RPM repository.

Select deployment to `snapshot` or `release` repository with `bazel run //:some-deploy-rpm -- [snapshot|release]

Creates HTML documentation for C++ projects using Doxygen.

**ATTRIBUTES**


| Name | Description | Type | Mandatory | Default |
| :------------- | :------------- | :------------- | :------------- | :------------- |
| <a id="deploy_rpm-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
| <a id="deploy_rpm-release"></a>release | Remote repository to deploy rpm release to | String | required | |
| <a id="deploy_rpm-snapshot"></a>snapshot | Remote repository to deploy rpm snapshot to | String | required | |
| <a id="deploy_rpm-target"></a>target | <code>assemble_rpm</code> target to deploy | <a href="https://bazel.build/concepts/labels">Label</a> | optional | <code>None</code> |
| <a id="doxygen_docs-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
| <a id="doxygen_docs-desc"></a>desc | A description for the project | String | optional | <code>""</code> |
| <a id="doxygen_docs-main_page_md"></a>main_page_md | The file to use as main page for the generate docs | <a href="https://bazel.build/concepts/labels">Label</a> | optional | <code>None</code> |
| <a id="doxygen_docs-project_name"></a>project_name | The project name for the doxygen docs | String | required | |
| <a id="doxygen_docs-sources"></a>sources | A list of files made available to doxygen. This is NOT automatically included in the doxyfile | <a href="https://bazel.build/concepts/labels">List of labels</a> | required | |
| <a id="doxygen_docs-strip_prefix"></a>strip_prefix | Prefix to strip from path of files being processed | String | optional | <code>""</code> |
| <a id="doxygen_docs-version"></a>version | The version of the project being documented | String | optional | <code>""</code> |


<a id="generate_json_config"></a>
Expand Down Expand Up @@ -370,7 +372,8 @@ Fills in JSON template with provided values
## java_deps

<pre>
java_deps(<a href="#java_deps-name">name</a>, <a href="#java_deps-java_deps_root">java_deps_root</a>, <a href="#java_deps-java_deps_root_overrides">java_deps_root_overrides</a>, <a href="#java_deps-maven_name">maven_name</a>, <a href="#java_deps-target">target</a>, <a href="#java_deps-version_file">version_file</a>)
java_deps(<a href="#java_deps-name">name</a>, <a href="#java_deps-allowed_conflicting_jars">allowed_conflicting_jars</a>, <a href="#java_deps-ignore_missing_maven_name">ignore_missing_maven_name</a>, <a href="#java_deps-java_deps_root">java_deps_root</a>,
<a href="#java_deps-java_deps_root_overrides">java_deps_root_overrides</a>, <a href="#java_deps-maven_name">maven_name</a>, <a href="#java_deps-target">target</a>, <a href="#java_deps-version_file">version_file</a>)
</pre>

Packs Java library alongside with its dependencies into archive
Expand All @@ -381,13 +384,40 @@ Packs Java library alongside with its dependencies into archive
| Name | Description | Type | Mandatory | Default |
| :------------- | :------------- | :------------- | :------------- | :------------- |
| <a id="java_deps-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
| <a id="java_deps-allowed_conflicting_jars"></a>allowed_conflicting_jars | List of allowed JAR names that can conflict (ie. the same JAR name produced by two different dependencies). | List of strings | optional | <code>[]</code> |
| <a id="java_deps-ignore_missing_maven_name"></a>ignore_missing_maven_name | Don't fail if bundling using maven names when encountering a target that is missing a maven name | Boolean | optional | <code>False</code> |
| <a id="java_deps-java_deps_root"></a>java_deps_root | Folder inside archive to put JARs into | String | optional | <code>""</code> |
| <a id="java_deps-java_deps_root_overrides"></a>java_deps_root_overrides | JARs with filenames matching the given patterns will be placed into the specified folders inside the archive, instead of the default folder. Patterns can be either the full name of a JAR, or a prefix followed by a '*'. | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional | <code>{}</code> |
| <a id="java_deps-maven_name"></a>maven_name | Name JAR files inside archive based on Maven coordinates | Boolean | optional | <code>False</code> |
| <a id="java_deps-target"></a>target | Java target to pack into archive | <a href="https://bazel.build/concepts/labels">Label</a> | required | |
| <a id="java_deps-version_file"></a>version_file | File containing version string. Alternatively, pass --define version=VERSION to Bazel invocation. Not specifying version at all defaults to '0.0.0' | <a href="https://bazel.build/concepts/labels">Label</a> | optional | <code>None</code> |


<a id="sphinx_docs"></a>

## sphinx_docs

<pre>
sphinx_docs(<a href="#sphinx_docs-name">name</a>, <a href="#sphinx_docs-out">out</a>, <a href="#sphinx_docs-package_subdir">package_subdir</a>, <a href="#sphinx_docs-sphinx_conf">sphinx_conf</a>, <a href="#sphinx_docs-sphinx_rst">sphinx_rst</a>, <a href="#sphinx_docs-target">target</a>)
</pre>


Creates an HTML documentation for python module using Sphinx.


**ATTRIBUTES**


| Name | Description | Type | Mandatory | Default |
| :------------- | :------------- | :------------- | :------------- | :------------- |
| <a id="sphinx_docs-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
| <a id="sphinx_docs-out"></a>out | Output directory | <a href="https://bazel.build/concepts/labels">Label</a> | required | |
| <a id="sphinx_docs-package_subdir"></a>package_subdir | Directory with the module files in the package archive | String | required | |
| <a id="sphinx_docs-sphinx_conf"></a>sphinx_conf | Configuration file for the Sphinx documentation builder | <a href="https://bazel.build/concepts/labels">Label</a> | required | |
| <a id="sphinx_docs-sphinx_rst"></a>sphinx_rst | Sphinx documentation master file for the package | <a href="https://bazel.build/concepts/labels">Label</a> | required | |
| <a id="sphinx_docs-target"></a>target | Package including .tar.gz archive | <a href="https://bazel.build/concepts/labels">Label</a> | required | |


<a id="tgz2zip"></a>

## tgz2zip
Expand Down Expand Up @@ -597,36 +627,6 @@ Assemble files for HashiCorp Packer deployment
| <a id="assemble_packer-files"></a>files | Files to include into deployment | <code>{}</code> |


<a id="assemble_rpm"></a>

## assemble_rpm

<pre>
assemble_rpm(<a href="#assemble_rpm-name">name</a>, <a href="#assemble_rpm-package_name">package_name</a>, <a href="#assemble_rpm-spec_file">spec_file</a>, <a href="#assemble_rpm-version_file">version_file</a>, <a href="#assemble_rpm-workspace_refs">workspace_refs</a>, <a href="#assemble_rpm-installation_dir">installation_dir</a>,
<a href="#assemble_rpm-archives">archives</a>, <a href="#assemble_rpm-empty_dirs">empty_dirs</a>, <a href="#assemble_rpm-files">files</a>, <a href="#assemble_rpm-permissions">permissions</a>, <a href="#assemble_rpm-symlinks">symlinks</a>, <a href="#assemble_rpm-tags">tags</a>)
</pre>

Assemble package for installation with RPM

**PARAMETERS**


| Name | Description | Default Value |
| :------------- | :------------- | :------------- |
| <a id="assemble_rpm-name"></a>name | A unique name for this target. | none |
| <a id="assemble_rpm-package_name"></a>package_name | Package name for built .rpm package | none |
| <a id="assemble_rpm-spec_file"></a>spec_file | The RPM spec file to use | none |
| <a id="assemble_rpm-version_file"></a>version_file | File containing version number of a package. Alternatively, pass --define version=VERSION to Bazel invocation. Not specifying version defaults to '0.0.0' | <code>None</code> |
| <a id="assemble_rpm-workspace_refs"></a>workspace_refs | JSON file with other Bazel workspace references | <code>None</code> |
| <a id="assemble_rpm-installation_dir"></a>installation_dir | directory into which .rpm package is unpacked at installation | <code>None</code> |
| <a id="assemble_rpm-archives"></a>archives | Bazel labels of archives that go into .rpm package | <code>[]</code> |
| <a id="assemble_rpm-empty_dirs"></a>empty_dirs | list of empty directories created at package installation | <code>[]</code> |
| <a id="assemble_rpm-files"></a>files | mapping between Bazel labels of archives that go into .rpm package and their resulting location on .rpm package installation | <code>{}</code> |
| <a id="assemble_rpm-permissions"></a>permissions | mapping between paths and UNIX permissions | <code>{}</code> |
| <a id="assemble_rpm-symlinks"></a>symlinks | mapping between source and target of symbolic links created at installation | <code>{}</code> |
| <a id="assemble_rpm-tags"></a>tags | additional tags passed to all wrapped rules | <code>[]</code> |


<a id="assemble_targz"></a>

## assemble_targz
Expand Down
26 changes: 19 additions & 7 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# under the License.
#

workspace(name="vaticle_bazel_distribution")
workspace(name="typedb_bazel_distribution")

load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
Expand All @@ -38,7 +38,7 @@ load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kotlin_repositories", "kt_reg
kotlin_repositories()
kt_register_toolchains()

load("@vaticle_bazel_distribution//maven:deps.bzl", "maven_artifacts_with_versions")
load("@typedb_bazel_distribution//maven:deps.bzl", "maven_artifacts_with_versions")
load("@rules_jvm_external//:defs.bzl", "maven_install")
maven_install(
artifacts = maven_artifacts_with_versions,
Expand All @@ -50,11 +50,17 @@ maven_install(
fetch_sources = True,
)

# Load @vaticle_bazel_distribution_pip
load("//pip:deps.bzl", pip_deps = "deps")
pip_deps()
load("@vaticle_bazel_distribution_pip//:requirements.bzl", "install_deps")
install_deps()
# Load @typedb_bazel_distribution_pip
load("//pip:deps.bzl", "typedb_bazel_distribution_pip")
typedb_bazel_distribution_pip()
load("@typedb_bazel_distribution_pip//:requirements.bzl", pip_install_deps = "install_deps")
pip_install_deps()

# Load //docs
load("//docs:python/deps.bzl", "typedb_bazel_distribution_docs_py")
typedb_bazel_distribution_docs_py()
load("@typedb_bazel_distribution_docs_py//:requirements.bzl", docs_py_install_deps = "install_deps")
docs_py_install_deps()

# TODO: remove this declaration once we upgrade to @io_bazel_stardoc with Bazel 5 support
# Load @bazel_skylib
Expand Down Expand Up @@ -89,3 +95,9 @@ http_archive(

load("@bazel_stardoc//:setup.bzl", "stardoc_repositories")
stardoc_repositories()

# Load @typedb_bazel_distribution_uploader
load("//common/uploader:deps.bzl", "typedb_bazel_distribution_uploader")
typedb_bazel_distribution_uploader()
load("@typedb_bazel_distribution_uploader//:requirements.bzl", uploader_install_deps = "install_deps")
uploader_install_deps()
6 changes: 3 additions & 3 deletions apt/generate_depends_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
parser = argparse.ArgumentParser()
parser.add_argument('--output', required=True, help='Output file')
parser.add_argument('--version_file', required=True, help='File containing version of package being built')
parser.add_argument('--workspace_refs', help='Optional file with workspace references')
parser.add_argument('--deps', nargs='+', required=True, help='Dependency declarations')
parser.add_argument('--workspace_refs', help='File with workspace references (optional)')
parser.add_argument('--deps', nargs='+', help='Dependency declarations (optional)')
args = parser.parse_args()

workspace_refs = {
Expand Down Expand Up @@ -60,7 +60,7 @@

deps = []

for dep in args.deps:
for dep in (args.deps or []):
match = WORKSPACE_REF_PATTERN.match(dep)
if match:
workspace_ref = match.group('workspace_ref')
Expand Down
Loading