Changelog#

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Release 1.13.2#

  • fix: Minor redactions and deps update to remove package-info from package

Release 1.13.1#

  • [OMPE-34379]: Windows: ccache warning spam no longer appears when ccache is not enabled.

Release 1.13.0#

  • pippull: add support for post_install_fn to run a function after pip install.

  • pippull: remove all pycache directories to reduce package size (faster unpacking too, and pycache is regenerated on first import anyway)

Release 1.12.3#

  • [OMPE-52088]: Correct release of 1.12.2

Release 1.12.2#

  • [OMPE-52088]: Fix regression in 1.12.1 where build with packman provided msvc and winsdk dependencies failed in premake.

Release 1.12.1#

  • [OMPE-52088]: Remove git config workaround, and simply silence any error messages when not in a git repo (for air-gapped installs, etc.)

Release 1.12.0#

  • Sliding-window supported python range from 3.7+<3.12 to 3.10+<3.14. Not a major bump because packman default interpreter is 3.10.

Release 1.11.1#

  • [ISIM-3392]: Fix issue where ignored paths such as ${VALUE} were not respected when setting up the VSCode environment for Python.

Release 1.11.0#

  • [OMPE-14923]: Map in the user pip and uv cache directories into linbuild instances when repo_build.docker.use_host_home_dir is set to true.

  • repo_build.docker.use_host_home_dir defaults to true, defaults to false on CI

Release 1.10.1#

  • [OMPE-44689]: Fix error if run on fresh repo (touching _build/.lastpippull)

  • [OVCC-1835]: Fix –enable-tsan

Release 1.10.0#

  • [OMPE-44213]: Fix an issue where linux builds fail where a relative call to repo build yields os.cwd != ${root} token.

Release 1.9.1#

  • [OMPE-18599]: Fix issue adding files to include path and possibility of Exception thrown

Release 1.9.0#

  • [OVCC-1835]: Refactor the compiler sanitizer API to allow more detailed sanitizer usage.

Release 1.8.0#

  • [OVCC-1835]: Improve ASAN integration in build.lua. It should work on the new 2.35 ABI as well as AARCH64 too.

  • [OVCC-1835]: Adds repo_build.get_gcc_version() to build.lua.

Release 1.7.0#

  • [OMPE-23938] Provided option to use clang on the windows platform

Release 1.6.1#

  • Same as 1.5.1, version bumped to be the latest for repo update.

Release 1.6.0#

  • Accidental early publish from an MR

Release 1.5.1#

  • Fix a bad call to premake’s gettoolname which was causing build errors.

Release 1.5.0#

  • Added -k/–keep-going option to build all targets when some have errors NOTE This requires a new argument added to custom build_fn callbacks, if used by your project

Release 1.4.1#

  • Soften the unavoidable warning given when working with git worktrees.

Release 1.4.0#

  • Allow for more recent versions of premake packages which use the bin subdirectory.

Release 1.3.2#

  • Downgraded more errors to warnings by default for gcc 11

Release 1.3.1#

  • Fixed bug for Premake no-compile action to not configure Windows compiler toolchain if no-compile is set.

Release 1.3.0#

  • pull_using_pip_from_config will check if envvar OM_PIP_CACHE is set to “1”. If so it will append the pip arg --cache-dir with the envvar value PIP_CACHE_DIR. This will be used by repo cache to redirect the pip cache to a non-standard path.

Release 1.2.0#

  • Added Premake action no-compile to support projects that do not need to generate project files.

  • no-compile is passed by default when repo_build.build.enabled = false in repo.toml.

  • Enabled BUILD SUCCEEDED notification even when repo_build.build.enabled = false.

Release 1.1.0#

  • Added Premake argument solution-name for repo_kit_tools compatability.

Release 1.0.0#

  • We did it, 1.0.0!

  • Microsoft Visual Studio and Microsoft Windows SDK can be host linked rather than use Packman packages.

  • Host linked Windows tooling targeting can be set in the repo_build.msbuild configuration.

  • Reference the toolchains documentation for more information on host linking the above.

  • host linked msvc and winsdk dependencies are not included in the generated project packman.xml file.

  • repo_build.fetch.strip_deps added to enable additional stripping of the generaed project packman.xml file.

Release 0.76.2#

  • [OMPE-26372] Add support for Python 3.12

Release 0.76.1#

  • Detect pwsh.exe before attempting to use it

Release 0.76.0#

  • Upgrade vswhere to 3.1.7

Release 0.75.2#

  • Attempt to use new powershell if available before falling back to old

Release 0.75.1#

  • Muted linbuild --url check.

  • Moved abi_platform_translation to omni.repo.man.guidelines.get_abi_platform_translation

Release 0.75.0#

  • Added repo_build unique tokens platform_target and platform_target_abi:

    • platform_target will always be ${os}-${arch}

    • platform_target_abi with --abi set will be ${os}_${underscore_abi}_${arch}. Without --abi set it will match the platform and platform_target tokens.

    • reference the walkthrough.rst documentation for more clarity on how to use these tokens.

  • Enabled use of --abi argument on all OS options.

Release 0.74.2#

  • fix: Use m._log() instead of print() in build.lua

Release 0.74.1#

  • Bug: mistake in format of our generic configuration dictionary

Release 0.74.0#

  • Added repo_build metadata flag, path is repo.folders.build_metadata

  • Added –abi argument to support declaring the desired glibc version on Linux

Release 0.73.3#

  • Continue building if adding a “safe.directory” for git fails

Release 0.73.2#

  • Updating the default clang version from 18.1.1-0 to 18.1.1-1

Release 0.73.1#

  • Only create conan directories if conan is enabled

Release 0.73.0#

  • Added repo_build.build.msbuild_renice to enable the wrangling of msbuild compilation processes

  • Added --msbuild-renice to do the same via the CLI

Release 0.72.2#

  • Build pip archive against target python headers rather than python version running.

Release 0.72.1#

  • Change python.defaultInterpreterPath not found message from warning to debug log, on VSCode settings.

Release 0.72.0#

  • Add a new [repo_build.docker].image_url override to force a particular docker image.

    • Can also override the value on the command line with --/repo_build/docker/image_url=<docker_image_location>.

  • Adds linux_gcc7_warnings parameter to setup_workspace(), true by default.

    • This helps projects migrate to the new docker images provided above to mimic gcc 7.x behavior as much as possible.

    • This will be set to false in the future as projects update their code to be compatible with newer gcc versions.

  • Adds a new lua helper function get_compiler_info() to return the compiler name and version.

Release 0.71.0#

  • set Windows repo_build.build.mem_per_core value of 3GB per core.

Release 0.70.1#

  • fix: Rolling back changes introduced in 0.68.2 to use omni.repo.man.resolve_tokens(). This change is causing issues with external projects.

Release 0.70.0#

  • Feature (OMPE-4080): Provided option to use clang on the linux platform

Release 0.69.1#

  • Set the CARB_CCACHE environment variable to trigger the --ccache option rather than trying to use the system version of ccache because that was unreliable.

Release 0.69.0#

  • Updated settings to capture fetch.pip configuration from repo.toml

  • Breaking change: Changed signature of pull pip dependencies hook to take settings as a parameter

  • Breaking change: Changed signature of pull dependencies hook to take settings as a parameter

  • Added custom post build function capability

Release 0.68.2#

  • Fix (OMPE-9861): using omni.repo.man.resolve_tokens() to support recursive expansion of tokens.

Release 0.68.1#

  • Removing the last of the generic Exceptions from repo_build

Release 0.68.0#

  • Added an extra_tokens arg to gather_licenses to allow callers to pass in additional packman tokens from other sources to licensing (e.g. command line)

Release 0.67.0#

  • repo_build Python dependencies utilize hashes now for verification

Release 0.66.0#

  • Added better handling of python.defaultInterpreterPath on VSCode settings.

Release 0.65.0#

  • Add container utils

  • Add new CL arguments –mem-per-core (-mpc) and –max-cores (-mc)

Release 0.64.1#

  • Enabled repo_lint with ruff

Release 0.64.0#

  • Bumped packman to latest

  • Bumped repo_* tools to latest

  • Enabled Windows + repo_conan builds (still experimental)

Release 0.63.1#

  • Change configuration advice for ccache location

Release 0.63.0#

  • Move default linbuild_version to 1.31, add clarifying logging and shifted version-minimums where relevant

Release 0.62.8#

  • Remove legacy repo_man fallback fetch

Release 0.62.7#

  • Address several minor security and cleanup issues.

Release 0.62.6#

  • Pass in argv_backup to linbuild so command-line overrides are not lost on re-launched repo_build.

Release 0.62.5#

  • License is now MIT per OSRB guidelines

Release 0.62.4#

  • OVCC-1433: Add /guard:cf on Windows if repo_build.add_security_hardening_flags() is called or security_hardening is set to true when calling setup_workspace{}.

Release 0.62.3#

  • chore: add poetry licensing verbiage to readme

Release 0.62.2#

  • Fix error message in check_project_settings_for_ccache_conflicts when have nil settings

Release 0.62.1#

  • Add NVIDIA copyright license

  • Add vswhere MIT PACKAGE-LICENSE

  • Add PACKAGE-INFO to root

  • Update all repo deps

  • Fix docs problem from pydantic conflict upstream

  • Conform copyrights

Release 0.62.0#

  • Add check_project_settings_for_ccache_conflicts in premake.oven.finishConfig

Release 0.61.0#

  • Add repo_build.fetch.pip.ignore_pip_cache_failure to ignore Packman failures on publishing repo_pip_cache

  • Add repo_build.fetch.pip.publish_pip_cache to outright skip publishing the repo_pip_cache

Release 0.60.2#

  • Get script absolute path when generating the setup_python_env.sh file.

Release 0.60.1#

  • OM-120079: disable use_host_home_dir on Gitlab CI

Release 0.60.0#

  • OM-120079: add docker.use_host_home_dir = true, to provide host HOME to linbuild

Release 0.59.0#

  • OM-119119: Support python 3.11 in define_bindings_python().

Release 0.58.1#

  • Move teamcity_message to ci_message

Release 0.58.0#

  • OM-117389: Refactor existing .gitlab-ci.yml with common OV gitlab CI templates

Release 0.57.3#

  • Include deps/clang-deps.packman.xml in repo_build package so Conan integration actually works.

Release 0.57.2#

  • Fix lua error in enable_sanitizers() when args is nil.

Release 0.57.1#

  • OM-118545: Rename the CHANGES.md to CHANGELOG.md

Release 0.57.0#

  • Conan support in repo build via repo conan. There are multiple repo_tools.toml configuration options around Conan.

  • Conan support currently feature flag disabled by default, use at your own risk.

  • Conan support only works on Linux.

Release 0.56.6#

  • use ci_message_block() instead of teamcity_message_block() to improve gitlab support.

Release 0.56.5#

  • Force verbose builds on CI.

    • This fixes an issue where build command lines were not being printed when run on CI.

  • Pass the verbose envvar through to docker.

    • This allows users to specify whether they want build command lines printed when running a build.

Release 0.56.4#

  • Increase pip timeout to 60 seconds and retries to 5.

Release 0.56.3#

  • Add fix_cpp_version argument to repo_build.setup_workspace() to add /Zc:__cplusplus to the windows build command line so __cplusplus is defined correctly (it’s set to the C++98 value otherwise). NOTE: a warning will be issued if this argument is not set to true. The default behavior will be changed to set this to true in the future.

Release 0.56.2#

  • Additional fix to –enable-asan for windows builds

Release 0.56.1#

  • Remove usage of undefined variable in build.lua.

Release 0.56.0#

  • Swap “quiet” mode (-q) for “verbose” mode (-v). Note: this is a breaking change. Hook functions detoured in customer repos will need to update their named parameters.

Release 0.55.3#

  • Swap out ExpectedErrors for subclass of the base RepoToolError class. ExpectedErrors suppress TeamCity build problems, which is undesirable for repo_build errors.

Release 0.55.2#

  • REVERT: Changed the pip upload so that if it fails it will warn and continue rather than failing the build.

Release 0.55.1#

  • Changed the pip upload so that if it fails it will warn and continue rather than failing the build.

Release 0.55.0#

  • Configure a feature in repo_licensing-1.13.0 during licensing step to produce license manifests including kit extensions

Release 0.54.1#

  • When building with --enable-gcov, define OMNI_GCOV_BUILD.

    • This is useful if you need to call __gcov_flush() or a similar call.

Release 0.54.0#

  • Add repo_build.premake.enabled to enable skipping our premake call. Useful on projects that do not use premake.

Release 0.53.0#

  • Enabled msbuild compilation error scanning and reporting.

Release 0.52.0#

  • Added some new default build arguments for most of the arguments that are specified in build.lua. These can be overridden by the project by specifying repo_build.argument in repo.toml (This was mainly done for backwards compatibility). These include:

    • –enable-ubsan

    • –enable-asan

    • –enable-lsan

    • –enable-tsan

    • –enable-gcov

    • –compiler-toolset

    • –linux-x86_64-cxx11-abi

Release 0.51.0#

  • Emit new repo_man exceptions instead of sys.exit, requires repo_man 1.44.0+

Release 0.50.0#

  • using the --enable-gcov option in lua now disables optimization on release builds.

Release 0.49.4#

  • Fix Empty.cpp not being packaged, which broke utility projects.

Release 0.49.3#

  • resolve repo_build.docker.extra_volumes absolute paths. Docker requires absolute paths for volume mounts.

Release 0.49.2#

  • added extra_env_vars option to the pip dependencies pull

Release 0.49.1#

  • flip tracebacks_on_exit to false to stop the callstack spam on build failures

Release 0.49.0#

  • Add packman_exclude_tags setting to allow optional dependencies

  • Fix exception handling when pulling from packman

Release 0.48.0#

  • Add use_stack_clash_protection argument to setup_workspace() (lua) and add_security_hardening_flags() (lua) to disable the -fstack-clash-protection build option. This was added because some older toolchains don’t support this option.

Release 0.47.0#

  • Add --linbuild-debug flag to drop into bash in the container instead of relaunching the build.

Release 0.46.0#

  • Add OMNI_REPO_BUILD_NO_DOCKER environment variable to disable docker on Linux. This is intended to be used in situations such as gitlab pipelines where the user is already running inside of docker.

Release 0.45.0#

  • Add repo_build.build.job_count config file option for limiting number of compilation jobs.

  • Add repo_build.build.core_percentage config file option that can limit based on a percentage of host cores. Additionally this feature flag enables an experimental MSBuild job scheduler that can yield faster builds due to less host processor thrashing.

  • Add --core-percentage argument that overrides repo_build.build.core_percentage config file option with same effect.

  • Add OMNI_REPO_BUILD_JOBS environment variable for overriding job_count + core_percentage. An integer uses the legacy job limit, an integer with % will use the new core_percentage + enable the new MSBuild job scheduler.

  • Priority is config file job_count -> config file core_percentage -> envvar -> --job -> --core-percentage.

Release 0.44.9#

  • Convert gitlab pipeline to pull S3 credentials from Vault for publishing.

Release 0.44.8#

  • Document DT_RPATH issue with the gold linker.

Release 0.44.7#

  • Add --linux-x86_64-cxx11-abi to default premake arguments to allow projects to switch to the new C++11 ABI instead of the old CentOS7 compatible ABI. This can also be set through repo_build.premake.linux_x86_64_cxx_abi in repo.toml.

Release 0.44.6#

  • Set the CCACHE_MAXSIZE parameter based on the repo.toml setting

Release 0.44.5#

  • Add the linux_linker option to repo_build.setup_workspace() (lua) to be able to switch to the gold linker, which is faster.

Release 0.44.4#

  • Add utility_project() to the lua module to work around the fact that kind "Utility" doesn’t function properly under Make.

Release 0.44.3#

  • Document that --platform-host is not optional. This argument is unconditionally passed into premake by repo_build and a lot of our code assumes it’s non-nil.

  • Add several functions (e.g. is_host_linux()) to premake to do platform detection in a standard way.

Release 0.44.2#

  • Add get_source_dir() to build.lua to allow lua code to know what directory the source files reside in.

Release 0.44.1#

  • Added the root property to the repo_build lua module. This allows projects to set their root directory, rather than using the %{root} token from premake. It is recommended that all projects set this, since %{root} evaluates unexpectedly in a lot of situations.

Release 0.44.0#

  • Include refactored repo_man argparse actions around the --config, --release, and --debug arguments. They all cooperate now and correctly set the config value. Within repo_build you can now mix in --release and --config debug and run against ['release', 'debug'] rather than uncertain behavior of either --release or --config debug winning with a single config being set.

  • This should correctly enable the ${config} token to be resolved within repo.toml and packman.xml files when a single config is set via either the legacy flags(--release, --debug) or the new hotness --config release.

Release 0.43.4#

  • Fix massive performance hit to repo_build.prebuild() in lua. This was causing a major bottleneck on Kit due to the high number of prebuild_copy() and prebuild_link() calls.

  • Remove the uname call in the lua module. This may have been aggravating the performance hit noted above.

Release 0.43.3#

  • Pass in token dict with global tokens when pulling dependencies and licenses.

Release 0.43.2#

  • Fix ccache enabling logic for Windows + local builds

Release 0.43.1#

  • setup_vscode python 3.10+ fix: use os.add_dll_directory for sitecustomize.py

Release 0.43.0#

  • Enable ccache for Windows via --ccache flag.

  • Updated end2end tests to include the repo_build lua code

Release 0.42.1#

  • Fix bug where repo_build.setup_workspace() (from lua) was setting _GLIBCXX_USE_CXX11_ABI=0 on aarch64 which was invalid and caused linking/runtime errors.

Release 0.42.0#

  • Added a project setup API to build.lua. Most projects can be set up by calling repo_build.setup_options() and repo_build.setup_workspace{..}.

Release 0.41.2#

  • set GIT_DISCOVERY_ACROSS_FILESYSTEM=1 on linbuild so git can search parent directories or across volume/drive boundaries.

Release 0.41.1#

  • OM-92544: relauncher in docker: fix repo root search when source linking repo like kit/kit

Release 0.41.0#

  • Minor breaking change: when using repo_build.licensing.enabled = true and repo_build.licensing.run_by_default = false, you can no longer use the default behavior on CI. You must explicitly pass --licensing or --no-licensing on CI when using this combination of settings. This has been done because licensing being enabled but not used on CI is most likely an error.

Release 0.40.0#

  • Breaking change: Licensing has been reverted to its behavior prior to 0.31.0. You can set repo_build.licensing.run_by_default = false to disable licensing.

  • Add clean_fn, partial_clean_fn, gather_licenses_fn parameters to run_build(). These are optional and can allow these build steps to be overridden. These were added for testing purposes.

Release 0.39.0#

  • Enable ccache for macOS via --ccache flag.

Release 0.38.1#

  • Fix AttributeError exception when using source linking inside docker

Release 0.38.0#

  • Note the configuration built in the finish message

Release 0.37.1#

  • correcting a bug on linbuild without ccache where an empty string passed into linbuild breaks the docker execution. Whoops.

Release 0.37.0#

  • Add deps/ccache-deps.packman.xml, repo_build will bring along its own ccache executable moving forward.

  • Pull ccache if the ccache settings are set. Additionally enabled linux-aarch64 in addition to linux-x86_64.

  • Stripped out the linbuild specifics for ccache outside of mapping in the ccache directory into the container.

Release 0.36.0#

  • Add repo_build.default_build_config to repo.toml which allows you to specify an array of default configs for repo_build, rather than a single config like repo.default_build_config.

Release 0.35.3#

  • Avoid failure when .vscode doesn’t exist and create it

Release 0.35.2#

  • Update the CI config check to support –debug and –release

Release 0.35.1#

  • Alphabetically sort dependencies in the generated_packman_file

Release 0.35.0#

  • Disable the premake verbose flag unless you’re running on CI.

  • Add the –verbose-premake switch to enable premake verbosity.

Release 0.34.1#

  • Fix an issue where Kit managed to bypass the check for whether --config was specified when running on CI.

Release 0.34.0#

  • Breaking Change: repo_build begins building a single config by default. This bumps the repo_man minimum version to 1.22.0. This uses the default_build_config parameter from repo_man as the config built when nothing is specified on the command line.

  • -r and -d can be supplied on the command line together to build both debug and release (you can also do -rd).

  • --release-only and --debug-only have been deprecated now that those options can be combined. Their successors are --release and --debug.

Release 0.33.1#

  • Add premake.pass_platform_target flag to enable passing platform-target

Release 0.33.0#

  • Moved the ccache hacks that modify the gcc/clang cc/cxx executable path to prefix ccache if ccache is defined. Projects can now just call repo_build.ccache_compiler_options() in their premake5.lua to pick up ccache where repo_build supports it.

Release 0.32.2#

  • Added arguments allowing pip install on Python 3.9+ to succeed on agents that don’t have VS installed.

Release 0.32.1#

  • Added a call to omni.repo.man.set_niceness() to improve system responsiveness when building. Only affects POSIX systems for now.

Release 0.32.0#

  • Add another route for enabling ccache for compiler caching. --ccache will enable ccache against linux-x86_64 builds that run within linbuild.

  • [repo_build.distributed_build_services] includes several configuration options including the ability to push artifacts to a remote storage instance.

  • This does require linbuild >= 1.43.0, and there is a check that will disable ccache if an older version is used.

  • This is all use at your own risk. There are issues around precompiled headers that require changes in premake to disable the use of PCH. repo_build cannot make those changes. However this should be safe to use locally. If you fail to link, blow away your ccache directory and rebuild.

Release 0.31.1#

  • fix typo in error message

Release 0.31.0#

  • Breaking change: Licenses are only gathered when running on CI or when the --licenses argument is passed. This has been done because the licensing step wastes a substantial amount of time during an incremental build.

Release 0.30.6#

  • Fix pippull to fail if install fails and not upload to packman

Release 0.30.5#

  • Added argument for pip pull to determine the correct Python include header folder.

Release 0.30.4#

  • pre_build.commands will only be run once if the command doesn’t use ${config} rather than once per config.

Release 0.30.3#

  • Capture FileNotFoundError when pulling dependencies and report a useful message rather than just throwing.

Release 0.30.2#

  • .rc: Avoid overwriting generated .rc files if they are the same. Speeds up rebuild times.

Release 0.30.1#

  • sourcelink: Better deal with junctions on TeamCity

Release 0.30.0#

  • Added --config to pass in debug vs release rather than requiring --debug-only and --release-only.

Release 0.29.4#

  • OM-81922: Changed repo_build.copy_to_targetdir() and copy_to_dir() to preserve symlinks on Mac and Linux

Release 0.29.3#

  • Disabling the pip cache publishing for anything except Teamcity. This is a short term fix until it can be addressed correctly. OM-80986

Release 0.29.1#

  • Added a repo_tools.toml flag called python_licensing that disables repo_licensing calls against Python dependencies. By default, python dependency license gathering is enabled and separately controllable from licensing.enabled. New flag in order to retain our existing behavior.

  • Enabled repo_build TeamCity error_processing by default. Soaked for 6+ months in Kit without causing problems.

Release 0.29.0#

  • add necessary automation to support vendored dependencies in Poetry generated requirements.txt

  • strip out flake8 + black Python dependency in vscode environment prep. Nobody uses it, no sense packaging it.

  • conform gitlab-ci.yml to repo tools standard

Release 0.28.12#

  • add MacOS support for compile_commands.json

Release 0.28.11#

  • fix encoding error when pip licenses contain non-ascii characters

Release 0.28.10#

  • Fix “OM-19924: repo_build: /sourcelink warning reported for libraries”

Release 0.28.9#

  • fix extension source linking (deps/user.toml) failing build when file doesn’t exist

Release 0.28.8#

  • add support for extensions source linking (deps/user.toml) paths when mapping docker volumes

Release 0.28.7#

  • add defaults/host-deps.pacman.file with recommended msvc, premake and win SDK

  • add ${root} token support in packman file

Release 0.28.6#

  • add <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName> to vcxproj files to silence Retarget Projects dialog

Release 0.28.5#

  • add packman_remote to pippull

Release 0.28.4#

  • argument values can be added to extra_tokens for use in pre_build.commands

Release 0.28.3#

  • Correctly escaping accidental + quantifiers in our build error scanning compiled regex.

Release 0.28.2#

  • fetch: fix generated_packman_file to handle multiple build configs properly

Release 0.28.1#

  • Support for extra packman tokens when pulling: packman_extra_tokens

Release 0.28.0#

  • Added a build error scanning pattern for gcc internal errors.

Release 0.27.1#

  • add fetch.before_pull_commands renamed fetch.custom_pull_commands to fetch.after_pull_commands, but support previous key too.

Release 0.27.0#

  • enable traceback reporting via repo_man to teamcity + CLI on exception raise and non-zero sys.exit. More clarity within TC via build problem reporting vs having to search build logs of failed runs.

Release 0.26.6#

  • add build_configs to control default set of build configs

Release 0.26.5#

  • added the --stage-only option to allow only the prebuild staging step to be run.

Release 0.26.4#

  • Bugfix for Mac OS python bindings having the wrong prefix and extension.

Release 0.26.3#

  • Added Mac OS support for python binding lua code.

Release 0.26.2#

  • fetch: fix generated_packman_file to handle dependencies vs packages properly

Release 0.26.1#

  • move custom_pull_commands to be called after relaunch in docker (instead of being called twice otherwise)

Release 0.26.0#

  • fetch: Add generated_packman_file

  • fetch: Add custom_pull_commands

Release 0.25.1#

  • Documentation bump re: error_patterns

Release 0.25.0#

  • Added MSBuild support for build output scanning.

Release 0.24.0#

  • Added support for build output scanning to enable more obvious build failures with both CLI and CI environments.

  • Added error_ configuration options in repo.toml to support project-specific configuration.

Release 0.23.0#

  • define_bindings_python() support python 3.10 now.

Release 0.22.0#

  • Added support for specifying multiple .rc files in ‘repo.toml’ instead of just one. The existing settings repo_build.rc_file.* can still be specified as a set of single string values. Alternatively, the [[repo_build.rc_file]] object syntax may now be used instead to specify an arbitrary number of RC files and their information. If a value is missing from one of the objects, None will be used in its place. Note that if the file_path value is missing in any of these objects, the build step will fail.

Release 0.21.0#

  • Added MacOS x86_64 as a supported host platform for building packages.

  • Fix to allow Windows to use long paths in temporary files used when caching dependencies.

Release 0.20.0#

  • Rewrite pippull license logic to also cache licenses into packman

  • Fixes sourcelink’ing where changes Windows will sometimes report paths starting with either c:\ or C:.

Release 0.19.10#

  • Add macos-x86_64 and macos-aarch64 to the supported platforms list.

  • Fixes to repo_build to allow it to at least start up on macos-x86_64.

Release 0.19.9#

  • Fix incorrect setting pip_files_to_pull being read, should read files_to_pull

  • Handle multiple pip toml files by prefixing the pip toml file name to .lastpippull

  • In pull_using_packman_from_config check to make sure the platform matches, same as pull_using_pip_from_config

Release 0.19.8#

  • Adding a new setting for licensing. If we have more than max_licenses then we package the licenses into a zip file.

Release 0.19.7#

  • Fix code that generates rc details to handle pre-release versions properly (would previously blow up, see CC-330)

Release 0.19.6#

  • Fix edge case in volume mapping for docker based build when path to the repository being built matches the beginning of a source linked dependency.

Release 0.19.5#

  • make is invoked with --output-sync to improve build log readability.

Release 0.19.4#

  • [post_build] now has the same copy and link options as [pre_build].

Release 0.19.3#

  • Generation of compile_commands.json now works if your compiler isn’t vs2017 (e.g. vs2019).

Release 0.19.2#

  • Add linbuild_extra_args

Release 0.19.1#

  • Add extra_args option for pip.toml so custom install flags can be specified

Release 0.19.0#

  • Breaking: compile_commands.json now supports multiple workspaces. If your repo only has a single workspace, this is a non-breaking change. However, if your workspace has multiple workspaces, the name of the workspace will be appended to compile_commands.json (e.g. _build/windows-x86_64/release/compile_commands-kit-full.json).

Release 0.18.5#

  • pull pip dependencies after relaunch in docker

  • automatic linbuild install from packman if not available on default path

Release 0.18.4#

  • define_bindings_python() support python 3.9 now.

Release 0.18.3#

  • Add extra_tokens support for repo_build.argument to pass to post and pre build commands. Resolve unknown tokens to empty string.

Release 0.18.1#

  • vscode/python: support glob of partially existing folders

Release 0.18.0#

  • Add support for vs2019

Release 0.17.21#

  • Fix a bug in the previous release that enabled quiet by default.

Release 0.17.20#

  • Make the default verbosity a setting that a repo.toml can adjust. If none is provided, the default is verbose, which was the previous default.

  • Added a -v command line flag to change quiet to verbose when quiet is the default.

Release 0.17.19#

  • Passing repo_folders rather than the pip path to the licensing module.

Release 0.17.18#

  • Take advantage of parallel copy/link of repoman: repoman > 0.4.5 required!

Release 0.17.17#

  • Passing the pip folder defined in repo.toml to the licensing process.

Release 0.17.16#

  • Avoided adding empty entries to the prebuild.toml file.

Release 0.17.15#

  • Fix bug in the -q switch on Linux and make

Release 0.17.14#

  • Allow to specify path to settings.template.json

Release 0.17.13#

  • Do not install black and flake by default

Release 0.17.12#

  • Add Packman support for acquiring cached pip packages based on the hash and system platform.

  • Create and push Packman packages of cached pip packages if it is does not already exist.

  • Allow multiple directories for collecting licenses for pip packages.

Release 0.17.11#

  • More teamcity and packman changes for extra statistics.

Release 0.17.10#

  • Fix extra_premake_args being overriden when passing multiple arguments

Release 0.17.9#

  • By default use packages we pull for license search

Release 0.17.8#

  • Added pre_build commands

Release 0.17.7#

  • Allow a 3-segment version such as 1.2.3.build instead of just 1.2.build

Release 0.17.6#

  • Allow user to override what runtime the Python binding uses

Release 0.17.5#

  • Add heuristic to look for repo root when passing –with-volume to the docker on linux in order to source link deeper folder

Release 0.17.4#

  • Add docker.enabled setting to allow disabling relaunch in docker

Release 0.17.3#

  • Add support for os and aarch only in prebuild (e.g. “linux” instead of “linux-x86_64”)

Release 0.17.2#

  • Fix for the packaging logging stuff where a source_link is used.

Release 0.17.1#

  • WIP: Added an option to log out the packages and versions into a yaml file for easier debugging and tracking.

Release 0.17.0#

  • Switch to repoman’s pip.toml loading function with support for tokens. That change requires repo_man version > 0.3.42

Release 0.16.5#

  • Changing around the args for linbuild to fix the issue where an arg is being processed by python rather than linbuild.

Release 0.16.4#

  • New timing variable thing wasn’t being passed to linbuild.

  • Updated packman to 6.30.

Release 0.16.3#

  • Added bit of extra stuff for timing the prebuild part of the build.

Release 0.16.2#

  • Add python 3.8 support for premake

Release 0.16.1#

  • Add more TC blocks for pip steps

Release 0.16.0#

  • Support passing build configs to get_licenses and to pull packman projects with ${config} token, that raises requirement for packman version to 6.21

Release 0.15.7#

  • Preperation for the teamcity stats.

Release 0.15.6#

  • Minor fix for the binary RC details generation.

Release 0.15.5#

  • Fixing up the build number stuff when generating the RC info. In its existing state it didnt accept the new Omniverse Flow number.

Release 0.15.4#

  • Add .vscode/settings.template.json copy for vscode write_python_paths_in_settings_json step.

Release 0.15.3#

  • Add post-build step and commands: repo_build.post_build.commands

Release 0.15.2#

  • Add repo_build.build.enabled setting

Release 0.15#

  • Add ability to pass arguments from repo_build.argument to extra_premake_args

Release 0.14.1#

  • Avoid running pip license gathering twice

Release 0.14.0#

  • Support platform_target:windows-x86_64 like filters in config to make custom settings for target platform (like repo_man’s platform:... filters)

Release 0.13.0#

  • Change config key: fetch.pip_files_to_pull -> fetch.pip.files_to_pull.

  • Add pip.gather_licenses_path instead of using one from pip.toml.

  • Add pip.kit_extension_configs_search_wildcards to enable looking for pip packages to gather licenses from in kit extensions.

  • Get rid of toml pip install, use one from repo_man (requires repo_man with get_toml_module() now).

  • Rewrite pip license gather code to batch all packages and produce more output and logging.

Release 0.12.2#

  • Added python_version parameter to repo_build’s define_bindings_python function. Supported values are “3.6” and “3.7”

Release 0.12.1#

  • Reordering the staging so that we generate the rc file first if its needed.

Release 0.12.0#

  • Add isolated_build to pippull. Allows to turn off isolated builds

  • Add add_python_to_lib_path to pippull. Will add the bundled Python’s Lib and Include path to build commands. Useful when having to build C type extensions within python packages.

Release 0.11.1#

  • Add fetch.enable_exclude_configs_tags to control exclude configs tags feature

Release 0.11.0#

  • Add allowed_paths to prebuild stage. Requires repo_man > 0.3.6.

Release 0.10.3#

  • When pulling packman projects files exclude dependencies tagged with other configs

Release 0.10.2#

  • Add timestamp check for pip.toml pull to avoid pulling each time when file hasn’t changed

  • Add write_python_paths_in_settings_json vscode functionality + support for globs in python_env

Release 0.10.1#

  • Fix extra premake arguments capture

Release 0.10.0#

  • If dependencies are not installed during a pippull then also do not gather licenses for the dependencies.

Release 0.9.1#

  • Support pip license gathering from latest repo_licensing instead of packman-packager.

Release 0.9.0#

  • Update to latest repoman 0.2, becoming one of repo tools, runnable by repoman.

  • Introduce configration

Release 0.8.1#

  • If the process is only staging the build we no longer generate the RC file for the binary details.

  • Adding the licensing into the build process.

Release 0.8.0#

  • Updates -t flag to properly handle cross-project dependencies. This introduces a breaking change for Windows. Instead of specifying the build target as the project name (e.g. “omni.appwindow.plugin”), you now have to give the full project name: “extensions\omni.appwindow\omni.appwindow.plugin”).

Release 0.7.7#

  • New options for pip installs: No dependencies and install into the same directory as a previous install

Release 0.7.6.5#

  • New compile_commands.json generation (works with DriveSim).

Release 0.7.6.4#

  • Adding a teamcity block around building so that the config is separated in a block.

Release 0.7.6.3#

  • Fixes and updated repo_man to the latest 0.1.22.4

Release 0.7.6.2#

  • Updated repo_man to the latest 0.1.22.3

Release 0.7.6.1#

  • Updated repo_man to the latest 0.1.22.2

Release 0.7.6#

  • Updated repo_man to latest - 0.1.22.1

  • Added teamcity blocks to things for better transparency within the builds.

Release 0.7.5.2#

  • Disabling using devenv by default, its not working on some machines and needs debugging.

Release 0.7.5#

  • Added the generate_details_rc function which generates the details seen in the rightmousebutton/properties/details tab for a file. Windows only.

    • Need to set settings.rc_product_name and settings.rc_file_description to enable it.

Release 0.7.4#

  • Relaunch in docker as early as possible to avoid running things twice

  • Add “devenv” experimental support (”–no-devenv” option to opt out)

  • Add gather pip licenses step for pip.toml with “gather_pip_licenses” option

  • Measure time of the whole tool instead of only the actual build step

Release 0.7.3#

  • Define _DEBUG when building Python modules (required by PyBind).

Release 0.7.2#

  • move sitecustomize.py under /site and filter out paths that doesn’t exist

Release 0.7.1#

  • Add settings for passing extra paths to docker

  • Add –fetch-only

  • Add pip.toml support

  • WAR around setup_python_env.bat file limitation with sitecustomize.py

Release 0.7.0#

  • Breaking change in prebuild_copy, prebuild_link. All paths are relative to the lua file, like in premake. Lua tokens converted to python tokens.

  • Fixed having duplicated in generated prebuild file.

  • repo folders are included into mapping for prebuild.

Release 0.6.7#

  • Fixes to sourcelink.lua that should generate a sourcelink JSON file that Visual Studio can use to download missing sources while debugging.

Release 0.6.6#

  • VSCode setup step which generates batch files now skips path which can’t be done relative, like a path to packman common (fixes error when running from other disk drive).

Release 0.6.5#

  • VSCode setup step which generates batch files now generate paths relative to the file

Release 0.6.4#

  • Add setting to pass custom arg prase

  • Add setting to set “before run” callback

  • Add setting to pass extra args to premake

  • Add –fast-build/-f flag and setting

  • Improve sln vs vcxproj discovery logic

Release 0.6.3#

  • Add generator of setup_python_env shell scripts

  • Replace python env PATH with LD_LIBRARY_PATH on linux

Release 0.6.1#

  • -t can be used to build a subproject. Ex: build -t carb.dictionary.plugin

Release 0.6.0#

  • Stage step now runs after project generation (big internal refactor).

  • Add support for mulltiple prebuild files and [[root]] tag in them.

  • Add –extra-arg to pass args to build tool

  • Add lua tools for prebuild file generation

Release 0.5.7#

  • Generate compile_commands.json for VS Code IntelliSense.

Release 0.5.6#

  • Chage vscode_python default to env “PM_python_DIR”

  • Add -b/–build-only setting

Release 0.5.5#

  • Avoid relinking each target on build.

Release 0.5.4#

  • Add invalidate cache of import lib call before importing of vendored deps.

Release 0.5.3#

  • Add vscode_python setting.

Release 0.5.2#

  • Resubmit 0.5.1 with fixes, ignore 0.5.1

Release 0.5.1#

  • Restructure premake lua scripts to return a table, add few functions

Release 0.5.0#

  • (Big Change) Moved most of Carbonite repo build scripts into main.py of this tool to make it reusable. Split into function, made configurable.

Release 0.4.7#

  • fix exit on error for msvc build

Release 0.4.6#

  • add lua for premake support

Release 0.4.5#

  • use repo_man 0.1.7, bug fix

Release 0.4.4#

  • vendor repo_man as dep and use functions from it instead.

Release 0.4.3#

  • add common premake lua scripts

Release 0.4.2#

  • added proper upload script

Release 0.4.0#

  • repoman_build first release (forked from nvtools_build and redesigned)