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 ifno-compile
is set.
Release 1.3.0#
pull_using_pip_from_config
will check if envvarOM_PIP_CACHE
is set to “1”. If so it will append the pip arg--cache-dir
with the envvar valuePIP_CACHE_DIR
. This will be used byrepo 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
andplatform_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 theplatform
andplatform_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 ofprint()
inbuild.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 processesAdded
--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 tosetup_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 togather_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
withruff
Release 0.64.0#
Bumped packman to latest
Bumped
repo_*
tools to latestEnabled 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 ifrepo_build.add_security_hardening_flags()
is called orsecurity_hardening
is set totrue
when callingsetup_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_cacheAdd
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
toCHANGELOG.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 ofteamcity_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 torepo_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
, defineOMNI_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 ourpremake
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 thepip
dependencies pull
Release 0.49.1#
flip
tracebacks_on_exit
tofalse
to stop the callstack spam on build failures
Release 0.49.0#
Add
packman_exclude_tags
setting to allow optional dependenciesFix exception handling when pulling from packman
Release 0.48.0#
Add
use_stack_clash_protection
argument tosetup_workspace()
(lua) andadd_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 intobash
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 overridesrepo_build.build.core_percentage
config file option with same effect.Add
OMNI_REPO_BUILD_JOBS
environment variable for overridingjob_count
+core_percentage
. An integer uses the legacy job limit, an integer with%
will use the newcore_percentage
+ enable the new MSBuild job scheduler.Priority is config file
job_count
-> config filecore_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 throughrepo_build.premake.linux_x86_64_cxx_abi
in repo.toml.
Release 0.44.6#
Set the
CCACHE_MAXSIZE
parameter based on therepo.toml
setting
Release 0.44.5#
Add the
linux_linker
option torepo_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 thatkind "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 ofprebuild_copy()
andprebuild_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()
andrepo_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
andrepo_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 torun_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 likerepo.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 therepo_man
minimum version to 1.22.0. This uses thedefault_build_config
parameter fromrepo_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()
andcopy_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 SDKadd
${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 toextra_tokens
for use inpre_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
renamedfetch.custom_pull_commands
tofetch.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 thefile_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
andmacos-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 vscodewrite_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 (likerepo_man
’splatform:...
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 frompip.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 (requiresrepo_man
withget_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’sdefine_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 buildsAdd
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 inpython_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
andsettings.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)