- setup: loosen the dependencies for multiplatforming
- report: parse data from sarif as URI, instead of treating it as string
- code_report: create parent folders for target file for clang_format
- analyzers: use recursive glob setting
- doc: added dependencies to setup.py and to README
- report: support originalUriBaseIds fields for SARIF (causing malfunction of underline comments to the Swarm)
- doc: update RTD (https://universum.readthedocs.io/en/latest/) config (old config format no longer supported)
- artifacts: build initialization failure for conditional/branch step with no artifacts
- out: incorrect block closing for TC, causing unexpected embedment
- config: add support of conditional steps
- swarm: quickfix for incorrect '404' response (Swarm server returning '404' when adding comments to newly added files in review, causing report malfunction)
- vcs: replace "github" VCS with "ghapp" and "ghactions" for different GitHub CI styles
- report: support analyzers inline commenting for GitHub Actions VCS
- doc: fix changelog for releases 0.19.13 & 0.19.15
- analyzer: code report based on clang-format
- config: fixed returning "None" instead of "False" for Step custom keys set to "False"
- artifact: remove redundant Static_analysis_report.json from artifacts
- analyzer: incorrect program name in help
- report: set exit code even if reporting crashes
- main: add option to return non-zero code if any step fails
- artifact: collect artifacts for each step after that exact step instead of processing whole artifact list after executing all steps as it was before
- automation: add full support of GitHub Actions CI server (as alternative to Jenkins and TeamCity)
- config: add path to configuration file in :doc:`configuration_support <configuration_support>`; this might be very useful in non-CI mode when launched from directory other than project root
- report: status reports now include more useful info; previous short form can be enabled by
-rofs
command-line option
- config: update error message if config is empty after step filtering
- doc: add explanation of filter usage in :ref:`non-CI mode description <additional_commands#run>`
- analyzer: update error message on missing input file
- html_log: convert ANSI escape sequences (such as colors) to actual HTML formatting
- p4: switch sh diff to p4python (to avoid previously encountered issues with authorization)
- out: add generating a self-contained HTML log with the following features:
- collapsible step blocks
- errors/warnings coloring
- timestamps
- etc.
- p4: add resolving unshelved files instead of silent rewriting
- p4: add explicit login to work with servers of security level 3 and higher
- analyzers add SARIF report
- p4: byte strings returned by sh command for 'librarian checkout' bug fix
- artifacts: add logs on removing artifacts
- submit: add comments on CL creation/deletion
- code_report: apply code report settings to embedded steps
- launcher: do not fail if step has no command
- p4: add '/' to the end of directory paths for Perforce to process them correctly
- p4: when encountering
p4 opened
bug, only print warning instead of block failing - submit: file arguments (such as
-rl
and-cm
) are now parsed correctly - p4: empty CLs are now deleted correctly when force cleaning workspace
- submit:
--reconcile-list
option can no longer be passed several times. Please use comma-separated single string instead (e.g.python -m universum submit -rl 'target1, target2'
) - analyzers:
universum.analyzers.svace
support is deprecated until further notice
- submit:
--commit-message
and--reconcile-list
now support passing required values via local file. To use this feature, pass an absolute or relative file path starting with '@' as a corresponding argument. See :ref:`argument description <additional_commands#submit>` for details
- analyzers:
'Namespace' object has no attribute 'file_names'
error message from :ref:`Uncrustify <code_report#uncrustify>` module fixed
- analyzers: add static type checking for Python (with inline comments on the issues)
- p4: HOTFIX for newly introduced bug of Perforce server unexpectedly failing the
p4 opened
command
- docs: add project review slides
- p4: add logs on client deleted/not deleted while cleaning
- p4: wrong decoding of a byte string (command output starting with
b'
)
- config: simulate referencing :class:`~universum.configuration_support.Step` fields through
.get()
(and add warnings as it is legacy API and not recommended for usage any more) - p4: fix exception display (e.g. for wrong sync CLs syntax or unshelving submitted CLs)
- fix PyPI versioning issue
- config: add :class:`~universum.configuration_support.Step` and :class:`~universum.configuration_support.Configuration` classes to :doc:`configuration support <configuration_support>` for type checking and increased usability
- config:
-cfg
/--config
:doc:`command line argument <args>` is no longer mandatory; if not specified, the default value (.univerum.py
in project root) is used - config: add
universum init
:doc:`command <additional_commands>` for automatic configuration file creation - add
universum run
:doc:`command <additional_commands>` to launch Universum in Non-CI mode - if more than one command line argument caused an error, all of error messages are now shown, not only the first one
- swarm: fix detecting latest review version
- out: do not print Unicode characters in non-Unicode locales
- jenkins_plugin: return missing 'Failed' line with timestamps plugin
- any Python version higher than 3.7 can now be used to run Universum
- migrate to Python 3.7 due to Python 2 is no longer supported
- Python3.7 is now :doc:`required <install>` for Universum to work; please switch
print ""
intoprint("")
in config files if needed
- disable entry points (calling
universum
from command line) and switch topython3.7 -m universum
calls - to avoid possible situations where wrong version of Universum is executed, especially when using :doc:`analyzers <code_report>`, that are launched from inside an active Universum
- disable entry points (calling
- rename `_universum` to `universum`
- :class:`~universum.configuration_support.Variations` imports in configs need to be fixed: use
from universum.configuration_support import Variations
instead offrom _universum.configuration_support import Variations
- github-handler: add :doc:`a new Universum mode <github_handler>`
- to serve as a GitHub App. GitHub Applications are needed to run checks and report their status to GitHub for changes on review and for committed changes. With this mode it is possible to implement full GitHub workflow with Universum
- pylint: allow selecting any Python version for checks
- e.g.
3.5
instead of simple2
/3
switch that was available before
- nonci: set project root to current directory
- to simply run
universum nonci
from sources location without :doc:`setting <args>`--project-root
manually
- swarm: only update status for latest revisions (as Swarm no longer supports outdated review status update)
- github_vcs: acquire GitHub token when needed (so it no longer expires for long builds)
- nonci: fix the issue with launching
code_report=True
steps twice - report: if the report is not enabled for successful builds, it doesn't cause errors in the terminal anymore
- setup: make installing modules for GitHub VCS type non-mandatory
- p4: add disconnect before any connect to fix
connection lost
issues - code_report: replace code report pseudo-variable
${CODE_REPORT_FILE}
not only incommand
field - vcs: raw exceptions no longer shown during finalize
- vcs: exception if vcs is 'none' and there are code report steps
- p4: ignore additional whitespaces in mappings
- p4: fix fix the bug with failing workspace cleanup on attempt to revert entire workspace,
- because it requires admin access to the perforce server. The buggy code was introduced by the fix of the issue with reverting files, when there is no file system access to them.
- submit: create and delete real CL to not interfere with any changes in default CL
- p4: do not try to revert local files as they can be no longer accessible for write
- to avoid creation of undeletable CLs and workspaces
- launcher: fix unsuccessful step launch in Ubuntu 14.04 (Python 2.7.6)
- p4: force clean not deleting CLs leading to buid failures when client exists and contains CLs
- jenkins_plugin: steps coloring not working when not using Jenkins Pipeline
- docs: update command line arguments in docs to correspond to real ones
- launcher command line arguments renamed
- see :doc:`'Output' and 'Configuration execution' arguments <args>` for new options list
- old options --launcher-config-path and --launcher-output are still supported but not recommended to use any more
- launcher: add '--filter' option filtering steps to be executed
- nonci: add :ref:`nonci <additional_commands#run>` mode of running Universum
- jenkins_plugin: expand failed steps by default
- test: add Java & JS tests for Jenkins plugin
- jenkins_plugin: fix collapsing with timestamps plugin usage
- vcs: add 'github' VCS type
- vcs: implement GitHub as code review system
- github: add inline comments for code_report
- jenkins_plugin: add jenkins plugin for Universum logs pretty printing
- test: clean environment for tests
- handle SIGTERM properly
- p4: ignore only expected exceptions on file revert
- test: single poll fails because httpretty conflicts with docker-py
- test: whitespaces in local paths
- out: add Universum version as log identifier for Jenkins plugin
- artifacts: rewrite 'make_archive' to use ZIP64 extensions
- tests: fails if VCS is set globally via env
- out: remove old Jenkins block labels because of upcomming plugin update
- remove setting default VCS type to p4. --vcs-type is now a required option
- docs: restructure documentation, switch README to Markdown
- docs: add logo, favicon and community docs
- docs: add example P4-to-Git porting script
- args: VCS type can now be defined via environment variable
- incorrect checks of parameters
- argument error message for subcommands
- docs: reference to artifact_prebuild_clean
- submit: git module returns error if there are no files
- p4: no error on sync if depot is empty
- git: bug with unicode on newer GitPython
- api: add 'file-diff' for Git & Gerrit
- code_report: fixed missing project_home parameter in arguments
- setup: specify python version in setup.py, merge 'source_doctest' make target into 'test'
- configs: add support of setting the environment variables for build steps
- code_report: add parameter '--output-directory' for Uncrustify fixed files
- code_report: read HtmlDiff argument value from Uncrustify config
- api: add initial API support and 'file-diff' as example usage
- p4: remove 'master CL check' feature as it doesn't work correctly
- p4: fix ascii decoding on p4 diff
- code_report: replace wildcards with directory names processing for Uncrustify
- code_report: add regexp support in pattern filter for Uncrustify
- p4: fix 'Related Change IDs' bug with wrong current review determining
- launch: add critical background steps
- vcs: make VCS-related packages (e.g. :mod:`gitpython`) not reqired if not used
- code_report: add separate entry points for all :doc:`static analysers <code_report>`
- code_report: add :ref:`Uncrustify <code_report#uncrustify>` static analyser
- out: add pretty step numbering padding
- args: fix required argument check to not accept empty values as valid
- launcher: finish background steps after foreground steps failing
- out: add reporting failed background steps to TC
- swarm: fix not adding current Swarm CL number to list of CLs to unshelve
- swarm: fix '[Related change IDs]' parsing
- swarm: add '[Related change IDs]' parsing for Swarm reviews
- create unified entry point for all universum subcommands.
New usage is
universum poll
anduniversum submit
- launcher: add finish_background key to Variations
- submit: fix p4 submit fails for files opened in another workspace
- swarm: stop legacy support of 'SHELVE_CHANGELIST' environment variable for Swarm CL number
- jenkins: fix Jenkins relative artifact paths/links
- out: add Jenkins plug-in specific labels for log collapsing
- review: add '--build-only-latest' option for skipping review builds of not latest review revisions
- add hidden '--clean-build' option for repeated debugging
- swarm: rename environment variable for Swarm CL ('SWARM_CHANGELIST') old name is still supported though
- swarm: fix Swarm review revision processing
- swarm: fix latest Swarm review revision detection
- gerrit: add exceptions on wrong Gerrit review parameters
- swarm: return voting for specified review version
- swarm: add review revision to comment text
- report: add '--report-no-vote' option for vote skipping
- configs: remove outdated code style functions, fix get_project_root
- code_report: fix duplication of found issues message
- launcher: remove stderr from console output for launcher output type 'file'
- code_report: add svace analysis tool
- main: add finalizing execution even if interrupted by user
- main: add '--finalize-only' option for cleaning without execution
- artifacts: add recursive wildcards (**) to artifacts
- utils: add PyCharm case to environment detection
- submit: fix submitted P4 CL number in logs
- submit: skip P4 submit if default CL has any files before reconciling
- setup: specify httpretty version to avoid SSL import errors
- p4: create environment variables for each mapping's sync CL
- docs: fix change log
- p4: remove
allwrite
option in p4 client; please set '+w' modifier for files in VCS to be edited - configs: :ref:`if_env_set <filtering>` variables should now be splat with
&&
only
- report: add support of tagging TeamCity builds
- swarm:
PASS
andFAIL
parameters are no longer mandatory - submit: new files are now added to VCS by submitter with '+w' modifier
- report: add link to build log to successful reports
- report: move link to review to 'Reporting build started' block
- p4: fix unhandled 'no file(s) to reconcile' P4Exception
- out: fix bug with decoding non-ascii strings
- docs: documentation fixed and updated; please pay special attention to clean_artifacts Variations key
- code_report: add number of issues to build status
- artifacts: add link to artifact files to build log
- p4: p4 client now is created with allwrite option
- gerrit: report all issues to review with a single request
- code_report: return error if pylint is not installed
- configs: add :ref:`negative 'if_env_set' values <filtering>`
- add return of exit codes to all main scripts
- report: fix bug with multiple success reporting
- artifacts: add CONFIGS_DUMP.txt to build artifacts
- code_report: add support for pylint3 for ubuntu14, restore LogWriterCodeReport
- report: update build result reporting, add skipped steps
- report: add option to only report failed steps
- report: remove duplicating comment
- out: fix skipped steps reporting
- configs: fix critical step handling while merging one-element Variations
- poll: fix wrong order of polled changes
- report: add driver for processing Jenkins builds
- launcher: add critical steps for groups
- setup: add entry points for all high level scripts
- files: fix cleaning sources function in finalize for Git
- tests: add stderr and exception/traceback detection
- tests: remove pylint error ignoring
- code_report: add exit codes for code_report
- gerrit: update 'Verified' to work with non-default labels
- artifacts: fix exception message when encountering existing artifacts
- docs: doc files removed from master branch
- code_report: implement static analysis support
- code_report: add code_report stub for further static analysis support
- tests: make errors in finalize affect exit code
- docs: update TeamCity-related documentation
- tests: fix docker images makefiles
- artifacts: change to shell-style wildcards instead of old limited ones
- submit: reconcile files and directories from list
- submit: reconcile using wildcards
- report: update list of all performed steps, add successful
- docs: new :doc:`Variations keys <configuring>` described
- report: fix reporter message for build started
- p4: exit committed CL precommit check wihout failing
- tests: remove docker container caching where not necessary
- tests: fix import thirdparty detection
- artifacts: clean artifacts before build
- git: add user and email to Git module parameters
- vcs: roll back of import fixes from release 0.10.2 causing Swarm builds of submitted CLs to fail
- tests: set user and email in testing Git repo
- swarm: the
--swarm
flag is replaced with--report-to-review
. All pre-commit check configuration must be updated to reflect this change
- submit: fix incorrectly back-ported fix from the new architecture, which prevented submit to git from working
- gerrit: fix bug with accessing url path by incorrect index and with including username into url in build log on pre-commit check
- gerrit: fix bug with adding apostrophe character (') to the ssh command line and failing to submit build start report to gerrit review
- launcher: add support for critical steps - now steps can be marked with "critical" attribute to fail entire build in case of step failure. By default the build continues even if some steps have failed
- submit: fix setup script to actually install submitter module and to create console script called "universum_submit"
- submit: add support for executing commit message hooks by using external git utility instead of gitpython module (required to submit to gerrit)
submit: commit message hook is not downloaded from gerrit during cloning of the repository. As a workaround add installation of commit message hook to configs.py:
configs += Variations([dict(name="Install commit message hook", command=["scp", "-p", "-P", "29418", "<user>@<server>:hooks/commit-msg", ".git/hooks/"])])
submit: by default, submit uses "temp" subfolder of the current folder as working directory. As a workaroung add the explicit setting of project root to configs.py:
configs += Variations([dict(name="Submit", command=["universum_submit", "-pr", get_project_root(), "--vcs-type", "gerrit", "--commit-message", "Publish artifacts", "--file-list", "out/module.bin"])])
- review: add link to review page on server to logs
- docs: add instructions for TeamCity integration
- tests: add gravity tests for cases found by coverage
- tests: extend test_git_poll test suite with special merging cases
- report: remove special characters from report message
- launcher: fix paths processing
- submit: add submit functionality for Git & Gerrit
- tests: add coverage report
- tests: add test for checking referencing dependencies
- gerrit: resolving issues fixed
- tests: add submitter initial tests
- files: fix module construction order in main module and git refspec processing errors
- files: add repository state file
- poll: add poller for Git and initial tests
- submit: add an external script for submitting to repository
- p4: remove reusing of existing p4 clients
- git: typo fix
- git: add git checkout, git cherry-pick and refspec functionality
- gerrit: add Gerrit support
- configs: add quotes and warning if space is detected within parameter in command item
- tests: make unused vcs module import non-obligatory
- git: add initial Git support; change
--no-sync
into switch of--vcs-type
- p4: fix 'Librarian checkout' exceptions
- p4: add
--p4-force-clean
instead of--p4-no-clean
option: p4client is now not deleted by default
- Project 'Universe' renamed into 'Universum' to avoid name duplication
- reporter: TeamCity-related parameters are no longer mandatory
- launcher: add support for :ref:`custom environment variables values <filtering>`
- Project 'Universe' transformed into a Python module, installable with pip
- docs: update documentation on module arguments
- configs: remove unnecessary nesting of configurations
- launcher: append sys.path with config_path to import any subsidiary modules
- report: fix non-existing report_artifacts processing - ignore non-existing directories
- launcher: fix empty variable names - ' & name' is now processed correctly
- CI Framework renamed into project 'Universe'
- docs: add :doc:`description <args>` of main script command-line parameters
- docs: fix table content width, remove unnecessary scroll bars
- docs: add :doc:`system prerequisites page <install>` to user manual
- docs: add documentation for :mod:`universum.configuration_support` module
- launcher: add support for more than one environment variable to :ref:`filter configurations <filtering>`
- launcher: fix :ref:`configuration filtering <filtering>`: filter artifacts as well as configurations
- output: use TeamCity built-in methods of stderr reporting for correct in-block error highlighting
- docs: fix product name and version display in documentation
- report: add direct links to build artifacts into reports
- files: add :ref:`working directory <get_project_root>` reference to logs
- p4: bring back reverting in 'prepare repository' step and add more logs
- launcher: add :ref:`configuration filtering <filtering>`
- artifacts: wildcard initial support
- tests: add docker-based testing for p4poll
- launcher: change stderr printing to real-time instead of united report
- artifacts: fix artifacts reference before creation
- artifacts: artifacts are now collected to a separate directory
- main: add version numbering
- swarm: less default comments to Swarm, more optional
- tests: add pylint check
- tests: add doctest collecting
- test: fix bug with stopping all test types once one type detects failure
- swarm: fix reporting to Swarm builds that did not execute actual build steps
- launcher: fix artifact collecting interruption
- launcher: fix extra dot directory in artifact archives
- swarm: Swarm double prefixes fixed
- p4: switch to disposable workspaces
- p4: add multiple VCS roots support
- poll: add perforce server polling to trigger builds by opening specified URL
- tests: add test stub
- tests: switch to py.test
- p4: fix argument processing & list sorting
- p4: add p4client name changing
- tests: fix configs.py
- tests: add missing thirdparty dependency - module 'py'
- output: add warnings display
- docs: add change log
- launcher: add asynchronous step execution
- docs: update system configuring manual
- launcher: change default 'command' launch directory back to project root