summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* source/index.rst: Separate general and reference documentationjjardon/theme_changeJavier Jardón2018-03-201-4/+4
| | | | Move artifacts from Installing section to general documentation
* Change theme to sphinx_rtd_themeJavier Jardón2018-03-203-25/+20
| | | | | The sphinx_rtd_theme is a sphinx theme designed to look modern and be mobile-friendly http://sphinx-rtd-theme.readthedocs.io/en/latest/index.html
* source.py and loading: Refactoring of origin handlesTristan Van Berkom2018-03-203-22/+7
| | | | | | | | | | | The Source object previously stored the __origin_node, __origin_toplevel and __origin_filename, this is from a time when we did not hold on to the plugin's Provenance object explicitly. Since this information comes from the same place, let's just use Plugin._get_provenance() to derive these values, instead of redundantly carrying them along separately.
* NEWS: Adding news entry for new ref-storage options (project.refs)Tristan Van Berkom2018-03-201-0/+12
| | | | Also announce --track-save deprecation
* Documenting project.refsTristan Van Berkom2018-03-204-21/+143
| | | | | | | | | o Adding explanation of the `ref-storage` option in project.conf o Adjusting some adjacent relevant documentation o Adding a new projectrefs.rst section for the project.refs format itself, and linking it from the main authoring page.
* tests/frontend/track.py: Testing behavior of cross junction trackingTristan Van Berkom2018-03-205-0/+96
| | | | | | | | o Test that this fails gracefully when the toplevel project uses inline ref-storage o Test that we successfully track cross junctioned elements when the project uses project.refs
* tests/frontend/track.py: Test tracking with optionalityTristan Van Berkom2018-03-208-4/+132
| | | | | | | Tests that `bst track` sets the ref in the expected node if the node containing the ref is conditionalized with a project option. This tests both the regular inline behavior, and also the project.refs behavior.
* tests/frontend/track.py: Testing that this works with project.refsTristan Van Berkom2018-03-201-1/+18
| | | | | | Only added condition to the simplest case here, the other cases are mostly testing that track commands get the correct selection of elements when using `--deps all` and `--except` arguments.
* testutils/repo/git.py: Added branch() methodTristan Van Berkom2018-03-201-0/+3
| | | | | In order to test tracking on multiple branches, lets use the Git repo scaffolding.
* tests/format/project.py: Test that conditional statements are supported in ↵Tristan Van Berkom2018-03-204-0/+56
| | | | project.refs
* tests/pipeline/load.py: Testing source without load_ref() implementationTristan Van Berkom2018-03-204-0/+83
| | | | | | Test that we have no error when loading a project that doesnt use project.refs, and that we get the expected graceful failure when attempting to use project.refs with a Source which doesnt support it.
* tests/frontend/buildtrack.py: Modified to test saving with project.refsTristan Van Berkom2018-03-201-5/+44
| | | | | Test that we get the same functionality from the complex build + track test regardless of whether we are saving refs inline or to a project.refs file.
* Source plugins: Implement load_ref() in all source pluginsTristan Van Berkom2018-03-206-7/+20
|
* Fix #248 - Support project.refs in the core.Tristan Van Berkom2018-03-205-34/+235
| | | | | | | | | | | | | | | | | | | | | | | | | This adds a new Source.load_ref() API which is technically optional to implement, projects which make use of a project.refs file must only use source plugins which implement the new load_ref() method. * source.py: Added load_ref() API to load a ref from a specified node. This also adds _load_ref() and _save_ref() wrappers which handle the logistics of when to load and save a ref to which location. This also fixes _set_ref() to apply the ref to the node unconditionally, this must be done independantly of whether the ref actually changed. o Modifications to the loading process such that Source now can have access to the element name and source index. o _pipeline.py: Delegate abstract loading of source refs to Source._load_ref() - Print a summarized warning about redundant source references - Assert that one cannot track cross-junction elements without project.refs. o _scheduler/trackqueue.py: Delegate saving refs to Source._save_ref()
* _project.py: Load project.refs while loading the project.Tristan Van Berkom2018-03-202-5/+26
| | | | | This also bumps the format version to signify a new format where storing refs centralized in project.refs is now supported.
* _projectrefs.py: Adding the ProjectRefs refs management objectTristan Van Berkom2018-03-201-0/+165
| | | | This object manages the project.refs file in a project directory.
* _downloadablefilesource.py: Support None values in ref accessors.Tristan Van Berkom2018-03-201-0/+7
|
* source.py: Document ref accessors to mandate support for None values.Tristan Van Berkom2018-03-201-3/+12
| | | | | | | This is technically an API break, but will be transparant for the vast majority of the current hand full of source implementations which exist at this time. This is a lesser evil than bloating the API with new methods.
* Deprecate `--track-save` option from `bst build`Tristan Van Berkom2018-03-204-37/+27
| | | | | | | | | | | | | | | | | | It makes no sense to support this now that we are adding project.refs, instead of removing the option completely, we document it as deprecated and print a warning. o _frontend/cli.py: Mark the option as deprecated, warn if it's used o _scheduler/trackqueue.py: Remove save optionality o _pipeline.py: Remove save optionality o tests/frontend/buildtrack.py: Stop testing for no-save functionality, This test was actually broken, and only save functionality was being tested. This was due to using a list [True] or [False] in the @pytest.mark.parameterize() statement, both of which are truthy values.
* .gitlab-ci.yml: Remove superfluous pytest-pylint installTristan Maat2018-03-191-2/+0
|
* .gitlab-ci.yml: Fix lack of setuptools_scm causing CI failureTristan Maat2018-03-191-1/+1
|
* source/install.rst: Add instructions to install Arch packagesRafael Fontenelle2018-03-171-0/+9
|
* source/install.rst: Divide in two sectionsJavier Jardón2018-03-171-29/+27
| | | | | - installing from distro packages - installing from source
* docs/source/install.rst: fix terminal box for ArchLinuxJavier Jardón2018-03-171-1/+1
|
* docs/source/install.rst: Arch -> Arch LinuxJavier Jardón2018-03-171-2/+2
|
* Make pylint and pep8 tests run by defaultjennis/add_gi.repository_to_ignored_pylint_modulesJames Ennis2018-03-162-8/+1
|
* .pylintrc: Ensure pylint ignores gi.repository module as it dynamically adds ↵James Ennis2018-03-161-1/+1
| | | | classes
* doc/source/format.rst: Fix misnomer in documentationTristan Van Berkom2018-03-161-1/+1
| | | | | | The provided example shows the `tar` source ref being expressed with a `sha256sum` key name, lets make the example correct here and call it `ref`.
* _project.py and docs: Move defaults into the defaults yaml fileTristan Van Berkom2018-03-164-193/+229
| | | | | | | | | | | Over time, the _project.py module has regressed into expressing some defaults only hard coded into the python file instead of properly exposing their default in the base configuration file in data/projectconfig.yaml, where the default values can be observed by users. This patch rectifies that, and also restructures the relevant surrounding documentation a bit.
* scriptelement.py: Mark install-rootJürg Billeter2018-03-151-0/+3
| | | | This matches BuildElement.
* _sandboxchroot.py: Ensure the cwd existsJürg Billeter2018-03-151-0/+6
| | | | This matches SandboxBwrap.
* element.py: Do not allow unplanned build jobsJürg Billeter2018-03-151-0/+3
|
* buildqueue.py: Do not mark assembly complete on build failureJürg Billeter2018-03-151-3/+4
| | | | | | This fixes internal error when build is retried. Fixes #299
* pylint - dealt with whitespace issues and disabled pep8 warningsJames Ennis2018-03-143-4/+2
|
* pylint - dealt with simplifiable-if-statement warningJames Ennis2018-03-142-3/+1
|
* pushreceive.py: byteorder functions are now more sensibly namedJames Ennis2018-03-141-10/+10
|
* pylint - dealt with redefined-outer-name and redefined-built in warningsJames Ennis2018-03-1410-75/+71
|
* pylint - dealt with redefined-argument-from-local warningJames Ennis2018-03-142-3/+2
|
* pylint - dealt with unnecessary-pass warningJames Ennis2018-03-142-2/+1
|
* pylint - dealt with import warningsJames Ennis2018-03-1410-19/+24
|
* pylint - dealt with unidiomatic-typecheck warningJames Ennis2018-03-142-4/+1
|
* pylint - dealt with superfluous-parens warningJames Ennis2018-03-1413-26/+23
|
* pylint - disabled no-member, bad-exception-context and ↵James Ennis2018-03-145-15/+20
| | | | catching-non-exception warnings
* pylint - dealt with len-as-condition warningJames Ennis2018-03-1410-19/+18
|
* pylint - dealt with global-statement warningJames Ennis2018-03-145-5/+6
|
* pylint - dealt with dangerous-default-value warningJames Ennis2018-03-143-5/+4
|
* pylint - dealt with consider-merging-isinstance warningsJames Ennis2018-03-142-3/+1
|
* pylint - dealt with broad-except and bare-except warningsJames Ennis2018-03-145-6/+6
|
* pylint - dealt with bad-continuation warningJames Ennis2018-03-146-12/+9
|
* pylint - dealt with anomalous-backslash-in-string warningJames Ennis2018-03-143-3/+3
|