Releases: xspec/xspec
v3.0.3
Summary
XSpec 3.0.3 upgrades its connections with related software. Support for testing Schematron schemas now uses SchXslt as the built-in Schematron implementation. XSLT code coverage is compatible with Saxon 12.4 or later.
Common to Languages Under Test
- XSpec is tested with Saxon 12, 11, and 10, while use of Saxon versions earlier than 12.4 is not recommended.
- XSpec no longer supports Saxon 9.
- When comparing XML, you can ignore some or all attributes using three-dot syntax
x:attrs="..."
. - XPath function items stored in global variables are testable using syntax
<x:call function="my-function" call-as="variable">
.
XSLT
- XSLT code coverage feature is compatible with Saxon 12.4. Compatibility note: This upgrade is not backward compatible with earlier Saxon versions. Also, Saxon 12.4 does not report some
xsl:sequence
instructions that are actually hit. - XSpec experimentally supports testing with XSLT 4.0 and XPath 4.0. Set
xslt-version="4.0"
onx:description
, and use an XSLT processor that has support for 4.0 enabled.
XQuery
- XSpec experimentally supports testing with XQuery 4.0 and XPath 4.0. Set
xquery-version="4.0"
onx:description
, and use an XQuery processor that has support for 4.0.
Schematron
- SchXslt 1.9.5 replaces the skeleton implementation because the latter is no longer maintained. Compatibility note: Some XSpec tests might produce different results with SchXslt.
- XSpec scenarios can verify the text of messages or diagnostics. Add expected text inside
x:expect-assert
orx:expect-report
.
Many thanks to all the XSpec contributors who made this release possible! They are listed next to relevant items in non-collapsed sections below; in collapsed sections, @AirQuick and @cmarchand contributed to many items.
Merged Pull Requests
New feature or enhancement
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1788 | oxygen | add library jar files for Oxygen 26.0 | @AirQuick | @galtm |
#1814 | ant | xspec.force.focus=#none | @AirQuick | @galtm |
#1822 | schematron | allow verification of Schematron text | @galtm | @AirQuick |
#1780 | xslt | runtime error if context evaluates to empty sequence | @galtm | @AirQuick |
#1881 | schematron | replace skeleton with SchXslt as built-in Schematron | @galtm | @AirQuick |
#1842 | extend $x:context variable beyond x:expect | @galtm | ||
#1873 | schematron | allow variables in Schematron scenario | @galtm | |
#1838 | support ignoring attributes when comparing | @galtm | ||
#1883 | support 4.0 in tests for XSLT and XQuery | @galtm | ||
#1892 | support calling XPath function defined in variable | @galtm | @AirQuick | |
#1833 | xslt | code coverage for Saxon 12.4+ | @AirQuick | @cmarchand |
#1891 | soft deprecate Saxon 10 through 12.3 | @galtm |
Bug fix
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1801 | typo in code comment (XLST) | @galtm | @AirQuick | |
#1776 | xquery | support whitespace in text value templates | @galtm | @AirQuick |
#1789 | schematron | make wrapper define $x:xspec-uri | @galtm | @AirQuick |
#1847 | schema | remove expand-text from x:like content model | @galtm | |
#1876 | pending x:expect should not trigger running SUT | @galtm |
Test
Details
PR # | Scope | Subject | Author |
---|---|---|---|
#1778 | schematron | fix typo 'Schematrion' in scenario label | @galtm |
#1792 | test $x:xspec-uri variable more | @galtm | |
#1829 | generate e2e expected results using Saxon 12.3 | @AirQuick | |
#1841 | test $x:context variable more, mainly in x:expect | @galtm | |
#1872 | catalog usage with helper stylesheet | @galtm |
CI Configuration
Details
PR # | Scope | Subject | Author |
---|---|---|---|
#1774 | deps | bump XML Calabash from 1.5.6 to 1.5.7 | @AirQuick |
#1783 | deps | bump XMLResolver.org XML Resolver from 5.2.1 to 5.2.2 | @AirQuick |
#1775 | deps-dev | bump prettier from 3.0.2 to 3.0.3 | @dependabot |
#1782 | deps-dev | bump @commitlint/cli from 17.7.1 to 17.7.2 | @dependabot |
#1785 | deps-dev | bump codespell from 2.2.5 to 2.2.6 | @dependabot |
#1777 | deps | bump actions/checkout from 3 to 4 | @dependabot |
#1787 | deps | bump Oxygen components to reflect 26.0 build 2023100905 | @AirQuick |
#1790 | deps-dev | bump @commitlint/cli from 17.7.2 to 17.8.0 | @dependabot |
#1791 | deps-dev | bump @commitlint/config-angular from 17.7.0 to 17.8.0 | @dependabot |
#1797 | deps-dev | bump @commitlint/config-angular from 17.8.0 to 18.1.0 | @dependabot |
#1798 | deps-dev | bump @commitlint/cli from 17.8.0 to 18.1.0 | @dependabot |
#1800 | deps-dev | bump @commitlint/cli from 18.1.0 to 18.2.0 | @dependabot |
#1802 | codespell XLST | @AirQuick | |
#1805 | deps-dev | bump @commitlint/config-angular from 18.1.0 to 18.4.0 | @dependabot |
#1807 | deps-dev | bump @commitlint/cli from 18.2.0 to 18.4.1 | @dependabot |
#1808 | deps-dev | bump prettier from 3.0.3 to 3.1.0 | @dependabot |
#1812 | deps-dev | bump @commitlint/config-angular from 18.4.0 to 18.4.2 | @dependabot |
#1813 | deps-dev | bump @commitlint/cli from 18.4.1 to 18.4.2 | @dependabot |
#1815 | deps-dev | bump @commitlint/config-angular from 18.4.2 to 18.4.3 | @dependabot |
#1816 | deps-dev | bump @commitlint/cli from 18.4.2 to 18.4.3 | @dependabot |
#1817 | deps | bump actions/setup-java from 3 to 4 | @dependabot |
#1818 | deps | bump Saxon from 12.3 to 12.4 | @AirQuick |
#1823 | deps | bump actions/setup-python from 4 to 5 | @dependabot |
#1830 | deps-dev | bump prettier from 3.1.0 to 3.1.1 | @dependabot |
#1846 | deps-dev | bump @commitlint/cli from 18.4.3 to 18.4.4 | @dependabot |
#1845 | deps-dev | bump @commitlint/config-angular from 18.4.3 to 18.4.4 | @dependabot |
#1831 | check .properties style | @AirQuick | |
#1851 | deps-dev | bump prettier from 3.1.1 to 3.2.4 | @dependabot |
#1853 | move code to avoid conflict in schxslt rebase | @galtm | |
#1857 | deps-dev | bump @commitlint/config-angular from 18.4.4 to 18.5.0 | @dependabot |
#1856 | deps-dev | bump @commitlint/cli from 18.4.4 to 18.5.0 | @dependabot |
#1861 | deps | bump XMLResolver.org XML Resolver from 5.2.2 to 5.2.3 | @galtm |
#1859 | deps-dev | bump @commitlint/config-angular from 18.5.0 to 18.6.0 | @dependabot |
#1860 | deps-dev | bump @commitlint/cli from 18.5.0 to 18.6.0 | @dependabot |
#1862 | deps-dev | bump prettier from 3.2.4 to 3.2.5 | @dependabot |
#1837 | deps | bump actions/upload-artifact from 3 to 4 | @dependabot |
#1863 | deps-dev | bump @commitlint/cli from 18.6.0 to 18.6.1 | @dependabot |
#1864 | deps-dev | bump @commitlint/config-angular from 18.6.0 to 18.6.1 | @dependabot |
#1871 | deps-dev | bump commitlint from 18.6.1 to 19.1.0 | @galtm |
#1880 | deps-dev | bump @commitlint/cli from 19.1.0 to 19.2.0 | @dependabot |
#1889 | deps-dev | bump @commitlint/cli from 19.2.0 to 19.2.1 | @dependabot |
#1834 | remove Saxon 9.9 from CI matrix | @AirQuick | |
#1898 | deps-dev | bump bats from 1.10.0 to 1.11.0 | @dependabot |
Documentation
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1794 | schema | inheritance of id from Schematron pattern | @galtm | @AirQuick |
#1827 | add galtm as a maintainer | @AirQuick | @galtm | |
#1824 | namespace demo files for XSLT and XQuery | @galtm | @AirQuick | |
#1865 | schema | schema doc corrections | @galtm | |
#1885 | qualify comment about stylesheet not being testable | @galtm | ||
#1882 | indicate license for XSpec wiki | @galtm | @AirQuick |
Refactoring improvement (no new feature or bug fix)
Details
PR # | Scope | Subject | Author |
---|---|---|---|
#1858 | schema | remove expand-text from empty elements | @galtm |
#1895 | simplify "for" expression in test | @galtm | |
#1897 | drop support for Saxon 9.9 | @galtm |
Build and release changes
Details
PR # | Scope | Subject | Author |
---|---|---|---|
#1784 | maven | bump pom.xml to 3.0-SNAPSHOT | @galtm |
#1779 | deps | bump maven-javadoc-plugin from 3.5.0 to 3.6.0 | @dependabot |
#1793 | oxygen | add-on v3.0.0 | @AirQuick |
#1803 | deps | bump maven-javadoc-plugin from 3.6.0 to 3.6.2 | @dependabot |
#1820 | deps | bump maven-javadoc-plugin from 3.6.2 to 3.6.3 | @dependabot |
#1839 | deps | bump maven-compiler-plugin from 3.11.0 to 3.12.0 | @dependabot |
#1840 | deps | bump maven-compiler-plugin from 3.12.0 to 3.12.1 | @dependabot |
#1874 | deps | bump maven-gpg-plugin from 3.1.0 to 3.2.0 | @dependabot |
#1875 | deps | bump maven-assembly-plugin from 3.6.0 to 3.7.0 | @dependabot |
#1879 | maven | use BC signer, with maven-gpg-plugin 3.2.0 | @galtm |
#1884 | deps | bump maven-gpg-plugin from 3.2.0 to 3.2.1 | @dependabot |
#1888 | deps | bump maven-assembly-plugin from 3.7.0 to 3.7.1 | @dependabot |
#1887 | deps | bump maven-compiler-plugin from 3.12.1 to 3.13.0 | @dependabot |
#1896 | oxygen | add-on v3.0.1 | @galtm |
#1899 | oxygen | add-on v3.0.2 | @galtm |
#1903 | deps | bump maven-gpg-plugin from 3.2.1 to 3.2.3 | @dependabot |
#1904 | release v3.0.3 | @galtm | |
#1910 | maven | use 3.0.3 in pom.xml, not 3.0 | @galtm |
Full Changelog
v2.3.2...v...
v2.3.2
Summary
Release v2.3 fixes bugs, updates dependencies, and includes some refactoring.
Common to Languages Under Test
- Saxon 9.8 is no longer supported.
- XSpec is now tested with Saxon 12, 11, 10, and 9.9, while Saxon 9.9 is deprecated.
- Command line support fixes a bug that produced the wrong
XSPEC_HOME
value.
Schematron
- Ant performs some preprocessing in parallel, improving performance.
Many thanks to the many XSpec contributors who made this release possible. They are listed next to the relevant item.
Merged Pull Requests
New Contributors
- @mcwayliffe made their first contribution in #1568
- @danielnaab made their first contribution in #1620
- @ndw made their first contribution in #1610
New feature or enhancement
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1653 | soft deprecate Saxon 9.9 | @galtm | ||
#1548 | Schematron | bump built-in SchXslt to v1.8.4 | @AirQuick | |
#1576 | Schematron | bump built-in SchXslt to v1.8.5 | @AirQuick | |
#1592 | Schematron | bump built-in SchXslt to v1.8.6 | @AirQuick | |
#1664 | Schematron | bump built-in SchXslt to v1.9.3 | @AirQuick | @galtm |
#1667 | Schematron | bump built-in SchXslt to v1.9.4 | @AirQuick | |
#1710 | Schematron | bump built-in SchXslt to v1.9.5 | @galtm | |
#1666 | Oxygen | add library jar files for Oxygen 24.1 | @AirQuick | @galtm |
#1711 | Oxygen | add library jar files for Oxygen 25.1 | @galtm | @AirQuick |
Bug fix
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1574 | declare function-param and template-param using internal name | @AirQuick | @galtm | |
#1610 | attempt to work around changes in Saxon 11 | @ndw | @galtm | |
#1626 | Schematron | override ISO-Schematron templates to avoid AVT | @galtm | |
#1739 | Schematron | construct $STEP3-PREPROCESSOR-URI using base-uri() | @AirQuick | |
#1568 | bin/xspec.* | properly detect XSPEC_HOME | @mcwayliffe | @AirQuick |
#1620 | bin/xspec.* | support MSYS2 on Windows | @danielnaab | @galtm |
Test
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1552 | $x:saxon-version lower uint32 should be zero on Saxon 10+ | @AirQuick | @galtm | |
#1558 | test with Bats v1.5.0 | @AirQuick | ||
#1567 | exclude /node_modules/ from shellcheck | @AirQuick | ||
#1694 | bats_require_minimum_version 1.5.0 | @AirQuick | @galtm | |
#1716 | default to Saxon 10, not Saxon 9 | @galtm | @AirQuick | |
#1724 | reduce xmlns:xi in the expected results | @AirQuick | @galtm | |
#1741 | distinguish Apache XML Resolver from XMLResolver.org one | @AirQuick | @galtm | |
#1742 | test RECOGNIZE_URI_QUERY_PARAMETERS using XInclude | @AirQuick | @galtm | |
#1744 | work around XMLResolver.org XML Resolver bug 117 | @AirQuick | @galtm | |
#1762 | enable compiler-pending-utils.xspec | @AirQuick | @galtm | |
#1684 | XSLT | illustrate existing XSpec reaction to XSLT default-mode | @galtm | |
#1740 | Schematron | remove SAXON_DOCUMENT_URI_FIXED | @AirQuick | @galtm |
#1772 | Schematron | fix typo in test example file | @galtm | @AirQuick |
#1730 | BaseX | set admin password before starting BaseX server | @AirQuick | |
#1732 | BaseX | start and stop BaseX server more safely | @AirQuick | @galtm |
#1743 | Test result reports | expect any line num when testing custom HTML reporter CLI | @AirQuick | @galtm |
CI configuration
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1641 | skip codespell package-lock.json file | @galtm | ||
#1647 | make bats files compliant with shfmt v3.5.1 formatting | @galtm | ||
#1663 | no need to check and uninstall stale Bats on macOS 11 image | @AirQuick | @galtm | |
#1693 | adapt to npm v9 | @AirQuick | ||
#1709 | adapt to npm v9 on schxslt branch | @galtm | ||
#1714 | test with Java 17 | @AirQuick | @galtm | |
#1715 | use Eclipse Temurin distribution | @AirQuick | @galtm | |
#1717 | run tests with Saxon 11.5 | @galtm | @AirQuick, @ndw | |
#1720 | replace Log4j with SLF4J Simple | @AirQuick | @galtm | |
#1745 | add Saxon 12 to CI matrix | @AirQuick | @galtm | |
#1746 | manage XMLResolver.org XML Resolver version | @AirQuick | @galtm | |
#1721 | BaseX | do not download BaseX on Java 8 | @AirQuick | @galtm |
#1547 | Dependencies | bump actions/setup-java from 2.3.0 to 2.3.1 | @dependabot[bot] | @AirQuick |
#1549 | Dependencies | bump BaseX from 9.6.1 to 9.6.2 | @AirQuick | |
#1550 | Dependencies | bump ansi-regex from 5.0.0 to 5.0.1 | @dependabot[bot] | @AirQuick |
#1555 | Dependencies | bump actions/checkout from 2.3.4 to 2.3.5 | @dependabot[bot] | @AirQuick |
#1556 | Dependencies | bump Oxygen components to reflect 24.0 build 2021101506 | @AirQuick | |
#1559 | Dependencies | bump BaseX from 9.6.2 to 9.6.3 | @AirQuick | |
#1560 | Dependencies | bump Ant from 1.10.11 to 1.10.12 | @AirQuick | |
#1563 | Dependencies | bump actions/checkout from 2.3.5 to 2.4.0 | @dependabot[bot] | @AirQuick |
#1569 | Dependencies | bump actions/setup-python from 2.2.2 to 2.3.0 | @dependabot[bot] | @AirQuick |
#1572 | Dependencies | bump actions/setup-python from 2.3.0 to 2.3.1 | @dependabot[bot] | @AirQuick |
#1573 | Dependencies | bump actions/setup-java from 2.3.1 to 2.4.0 | @dependabot[bot] | @AirQuick |
#1578 | Dependencies | bump actions/upload-artifact from 2.2.4 to 2.3.0 | @dependabot[bot] | @AirQuick |
#1580 | Dependencies | bump Log4j from 2.14.1 to 2.15.0 | @AirQuick | |
#1581 | Dependencies | bump Oxygen components to reflect 24.0 build 2021121317 | @AirQuick | |
#1582 | Dependencies | bump Log4j from 2.15.0 to 2.16.0 | @AirQuick | |
#1583 | Dependencies | bump actions/upload-artifact from 2.3.0 to 2.3.1 | @dependabot[bot] | @AirQuick |
#1584 | Dependencies | bump Oxygen components to reflect 24.0 build 2021121518 | @AirQuick | |
#1585 | Dependencies | bump BaseX from 9.6.3 to 9.6.4 | @AirQuick | @galtm |
#1586 | Dependencies | bump Log4j from 2.16.0 to 2.17.0 | @AirQuick | @cirulls |
#1587 | Dependencies | bump actions/setup-java from 2.4.0 to 2.5.0 | @dependabot[bot] | @AirQuick |
#1591 | Dependencies | bump Log4j from 2.17.0 to 2.17.1 | @AirQuick | @cirulls |
#1609 | Dependencies | bump actions/setup-java from 2.5.0 to 3 | @dependabot[bot] | @AirQuick |
#1611 | Dependencies | bump actions/setup-python from 2.3.1 to 3 | @dependabot[bot] | @AirQuick |
#1612 | Dependencies | bump actions/checkout from 2.4.0 to 3 | @dependabot[bot] | |
#1613 | Dependencies | bump actions/upload-artifact from 2.3.1 to 3 | @dependabot[bot] | @AirQuick |
#1636 | Dependencies | bump actions/setup-python from 3 to 4 | @dependabot[bot] | |
#1652 | Dependencies | bump Saxon from 10.6 to 10.8 | @galtm | @AirQuick |
#1655 | Dependencies | bump BaseX from 9.6.4 to 9.7.3 | @galtm | |
#1656 | Dependencies | bump BaseX from 9.7.3 to 10.1 | @galtm | |
#1658 | Dependencies | bump Oxygen components to reflect 24.1 build 2022062007 | @galtm | |
#1718 | Dependencies | bump Saxon from 10.8 to 10.9 | @galtm | @AirQuick |
#1725 | Dependencies | bump XML Calabash from 1.3.2-100 to 1.5.5-100 | @AirQuick | @galtm |
#1726 | Dependencies | bump Ant from 1.10.12 to 1.10.13 | @AirQuick | @galtm |
#1727 | Dependencies | bump BaseX from 10.1 to 10.6 | @AirQuick | @galtm |
#1731 | Dependencies | bump XML Calabash from 1.5.5-100 to 1.5.6-100 | @AirQuick | @galtm |
#1752 | Dependencies | bump Saxon from 12.1 to 12.3 | @AirQuick | @galtm |
#1757 | Dependencies | bump BaseX from 10.6 to 10.7 | @AirQuick | @galtm |
#1767 | Dependencies | bump XMLResolver.org XML Resolver version from 5.2.0 to 5.2.1 | @galtm | |
#1769 | Dependencies | bump Ant from 1.10.13 to 1.10.14 | @AirQuick | |
#1770 | Dependencies | bump Saxon from 11.5 to 11.6 | @AirQuick | |
#1542 | Development dependencies | bump prettier from 2.3.2 to 2.4.1 | @dependabot[bot] | @AirQuick |
#1545 | Development dependencies | bump @commitlint/cli from 13.1.0 to 13.2.0 | @dependabot[bot] | @AirQuick |
#1546 | Development dependencies | bump @commitlint/config-angular from 13.1.0 to 13.2.0 | @dependabot[bot] | @AirQuick |
#1554 | Development dependencies | bump @commitlint/cli from 13.2.0 to 13.2.1 | @dependabot[bot] | @AirQuick |
#1561 | Development dependencies | bump @commitlint/cli from 13.2.1 to 14.1.0 | @dependabot[bot] | @AirQuick |
#1562 | Development dependencies | bump @commitlint/config-angular from 13.2.0 to 14.1.0 | @dependabot[bot] | @AirQuick |
#1565 | Development dependencies | bump @commitlint/config-angular from 14.1.0 to 15.0.0 | @dependabot[bot] | @AirQuick |
#1566 | Development dependencies | bump @commitlint/cli from 14.1.0 to 15.0.0 | @dependabot[bot] | @AirQuick |
#1570 | Development dependencies | bump prettier from 2.4.1 to 2.5.0 | @dependabot[bot] | @AirQuick |
#1577 | Development dependencies | bump prettier from 2.5.0 to 2.5.1 | @dependabot[bot] | @AirQuick |
#1589 | Development dependencies | bump @commitlint/config-angular from 15.0.0 to 16.0.0 | @dependabot[bot] | @AirQuick |
#1590 | Development dependencies | bump @commitlint/cli from 15.0.0 to 16.0.1 | @dependabot[bot] | @AirQuick |
#1615 | Development dependencies | bump @commitlint/config-angular from 16.0.0 to 16.2.3 | @d... |
v2.2.4
Summary
Release v2.2 introduces new features and enhancements, fixes bugs, and improves the test suite and the documentation. These are the highlights for XSpec v2.2:
Common to Languages Under Test
- Pending or unfocused variable declarations are handled more gracefully.
- Large results are no longer saved in separate XML files by default.
- This will be the last version to support Saxon 9.8.
XSLT
- Multiple test scenarios can be run in parallel by setting
@threads
onx:description
orx:scenario
. (Requires Saxon-EE) - You can set
x:context
when testing functions. (Requires/x:description/@run-as
=external
)
Schematron
- You can mark assertions as pending by setting
@pending
onx:expect-*
elements, as an alternative to using thex:pending
element. - When
@location
does not point to one node, the error message is more helpful.
Many thanks to the many XSpec contributors who made this release possible. They are listed next to the relevant item.
Merged Pull Requests
New feature or enhancement
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1497 | multi-threading | @AirQuick | @galtm | |
#1500 | /x:description/attribute(result-file-threshold) | @AirQuick | @galtm | |
#1428 | XSLT | warn if a named template scenario has a context mode | @AirQuick | @galtm |
#1503 | XSLT | context for function-call | @AirQuick | @galtm |
#1446 | Schematron | pending attribute on Schematron x:expect-* elements | @AirQuick | |
#1480 | Schematron | bump built-in SchXslt to v1.7.2 | @AirQuick | |
#1506 | Schematron | handle location attribute not pointing to one node | @vincentml | @AirQuick |
#1512 | Schematron | bump built-in SchXslt to v1.7.3 | @AirQuick | |
#1517 | Schematron | bump built-in SchXslt to v1.7.4 | @AirQuick | |
#1534 | Schematron | bump built-in SchXslt to v1.8.2 | @AirQuick |
Bug fix
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1452 | pending variable declarations | @AirQuick | @galtm | |
#1449 | XQuery | no scenario | @AirQuick | |
#1472 | BaseX | fix XQDY0102 in rep:report-node() | @AirQuick | |
#1443 | Test result reports | column number for code coverage | @AirQuick | |
#1444 | Test result reports | ignore leading string for code coverage | @AirQuick | |
#1447 | Schema for .xspec files | remove ? from pending in pending-attribute |
@AirQuick | |
#1448 | Schema for .xspec files | do not allow empty x:pending | @AirQuick | @galtm |
Test
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1424 | remove TODO from issue-396.xspec | @AirQuick | ||
#1445 | remove unused xmlns | @AirQuick | ||
#1451 | replace collection() and config with uri-collection() and doc() | @AirQuick | ||
#1454 | util functions with catalog | @AirQuick | ||
#1456 | use null device for discarding XSLT output on non-Windows OS | @AirQuick | ||
#1477 | pending variable declarations referenced by x:like | @galtm | @AirQuick | |
#1491 | more tests for separate result files | @AirQuick | ||
#1496 | test compiler Saxon configuration without Bats | @AirQuick | ||
#1509 | exclude /lib/ and /misc/archive/ from shellcheck | @AirQuick | ||
#1510 | exclude /lib/ and /misc/archive/ from shfmt | @AirQuick | ||
#1515 | remove overused run from Bats |
@AirQuick | ||
#1516 | normalize SchXslt version in result report XML and HTML | @AirQuick | ||
#1498 | XSLT | merge rep:report-sequence tests into report-sequence.xspec | @AirQuick | |
#1484 | Schematron | normalize SchXslt attribute(documents) in a new line | @AirQuick | |
#1511 | Schematron | backport e2e test HTML normalizer from schxslt branch | @AirQuick | |
#1520 | Schematron | normalize SchXslt version in report XML and HTML | @AirQuick | |
#1521 | Schematron | test bad attribute(location) | @AirQuick | |
#1526 | Test result reports | static $NORMALIZE-HTML-DATETIME | @AirQuick | |
#1501 | Schema for .xspec files | remove x:apply exclusion from test/schema/build.xml | @AirQuick |
CI configuration
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1427 | remove macOS Saxon 9.9 from GitHub Actions | @AirQuick | ||
#1464 | skip AppVeyor on schxslt branch or tags or branch with open pr | @AirQuick | ||
#1467 | skip Azure Pipelines on Dependabot push or any tag | @AirQuick | ||
#1468 | remove Saxon 9.8 from Azure Pipelines | @AirQuick | ||
#1469 | add workflow_dispatch to GitHub Actions Lint and Test workflow |
@AirQuick | ||
#1470 | codespell immediate child files of lib dir | @AirQuick | ||
#1471 | macrodef get task in build_install-deps.xml | @AirQuick | ||
#1488 | specify GitHub Actions minor patch version | @AirQuick | ||
#1463 | Schematron | checkout action with GITHUB_TOKEN in rebase-schxslt.yml | @AirQuick | |
#1453 | Dependencies | bump Saxon from 10.3 to 10.5 | @AirQuick | |
#1455 | Dependencies | bump Ant from 1.10.9 to 1.10.10 | @AirQuick | |
#1460 | Dependencies | upgrade to GitHub-native Dependabot | @dependabot-preview[bot] | @AirQuick |
#1462 | Dependencies | add GitHub Actions to Dependabot config | @AirQuick | |
#1466 | Dependencies | bump actions/setup-java from v1 to v2 | @dependabot[bot] | @AirQuick |
#1478 | Dependencies | bump actions/setup-python from 2 to 2.2.2 | @dependabot[bot] | @AirQuick |
#1479 | Dependencies | bump actions/checkout from 2 to 2.3.4 | @dependabot[bot] | @AirQuick |
#1486 | Dependencies | bump BaseX from 9.5.1 to 9.5.2 | @AirQuick | |
#1489 | Dependencies | bump trim-newlines from 3.0.0 to 3.0.1 | @dependabot[bot] | @AirQuick |
#1494 | Dependencies | bump XML Calabash from 1.2.5 to 1.3.0 | @AirQuick | |
#1499 | Dependencies | bump actions/upload-artifact from 2.2.3 to 2.2.4 | @dependabot[bot] | @AirQuick |
#1504 | Dependencies | bump XML Calabash from 1.3.0 to 1.3.1 | @AirQuick | |
#1507 | Dependencies | bump Ant from 1.10.10 to 1.10.11 | @AirQuick | |
#1508 | Dependencies | bump XML Calabash from 1.3.1 to 1.3.2 | @AirQuick | |
#1514 | Dependencies | replace bats with bats-core on macOS | @AirQuick | |
#1522 | Dependencies | bump actions/setup-java from 2.1.0 to 2.2.0 | @dependabot[bot] | @AirQuick |
#1525 | Dependencies | bump BaseX from 9.5.2 to 9.6 | @AirQuick | |
#1528 | Dependencies | bump actions/setup-java from 2.2.0 to 2.3.0 | @dependabot[bot] | @AirQuick |
#1529 | Dependencies | bump BaseX from 9.6 to 9.6.1 | @AirQuick | |
#1543 | Dependencies | bump Saxon from 10.5 to 10.6 | @AirQuick | |
#1473 | Development dependencies | bump prettier from 2.2.1 to 2.3.0 | @dependabot[bot] | @AirQuick |
#1481 | Development dependencies | bump @commitlint/cli from 12.1.1 to 12.1.4 | @dependabot[bot] | @AirQuick |
#1482 | Development dependencies | bump @commitlint/config-angular from 12.1.1 to 12.1.4 | @dependabot[bot] | @AirQuick |
#1487 | Development dependencies | bump prettier from 2.3.0 to 2.3.1 | @dependabot[bot] | @AirQuick |
#1492 | Development dependencies | bump codespell from 2.0.0 to 2.1.0 | @dependabot[bot] | @AirQuick |
#1505 | Development dependencies | bump prettier from 2.3.1 to 2.3.2 | @dependabot[bot] | @AirQuick |
#1518 | Development dependencies | bump @commitlint/cli from 12.1.4 to 13.1.0 | @dependabot[bot] | @AirQuick |
#1519 | Development dependencies | bump @commitlint/config-angular from 12.1.4 to 13.1.0 | @dependabot[bot] | @AirQuick |
Documentation
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1493 | XProc | fix a file path in a comment in harness-lib.xpl | @AirQuick |
Refactoring improvement (no new feature or bug fix)
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1426 | consolidate conditional branches in node-deep-equal() | @AirQuick | @galtm | |
#1490 | template for generating rep:report-sequence call | @AirQuick | ||
#1459 | XSLT | remove x:apply code | @AirQuick | @galtm |
#1495 | XSLT | $invocation-type in x:compile-scenario template | @AirQuick | |
#1414 | Test result reports | centralize HTML class in format-xspec-report*.xsl | @AirQuick |
Revert a previous commit
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1465 | Schematron | "co w/ GITHUB_TOKEN in rebase-schxslt.yml (#1463)" | @AirQuick |
Build and release changes
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1483 | Oxygen | add-on v2.2.0 | @AirQuick | |
#1513 | Oxygen | add-on v2.2.1 | @AirQuick | |
#1523 | Oxygen | add-on v2.2.2 | @AirQuick | |
#1532 | Oxygen | add-on v2.2.3 | @AirQuick | |
#1474 | Dependencies | bump maven-gpg-plugin from 1.6 to 3.0.1 | @dependabot[bot] | @AirQuick |
#1485 | Dependencies | bump maven-javadoc-plugin from 3.2.0 to 3.3.0 | @dependabot[bot] | @AirQuick |
#1458 | Maven | bump pom.xml to 2.2-SNAPSHOT | @AirQuick | @cmarchand |
#1475 | Maven | print gpg version in maven-deploy workflow | @AirQuick | |
#1476 | Maven | remove --pinentry-mode gpg arg from maven-gpg-plugin |
@AirQuick | |
#1530 | Maven | notimestamp for javadoc | @AirQuick | @cmarchand |
Closed Issues
Labels | Issue # | Title | Participants | Closed by |
---|---|---|---|---|
feature request |
#728 | Allow pending attribute on x:expect* elements | @vincentml, @airqui... |
v2.1.4
Summary
Release v2.1 introduces new features and enhancements, fixes bugs, and improves the test suite and the documentation. These are the highlights for XSpec v2.1:
Common to Languages Under Test
- You can mark assertions as pending by setting
@pending
onx:expect
, as an alternative to using thex:pending
element. /x:description/@measure-time
measures elapsed run times of scenarios. (Requires Saxon-PE or EE.)
XSLT
- Different scenarios can use different global parameters (
//x:scenario/x:param
). (Requires/x:description/@run-as="external"
.)
Schematron
- Fully tested with SchXslt v1.7.1
- Supports
/x:description/@run-as
Many thanks to the many XSpec contributors who made this release possible. They are listed next to the relevant item.
Merged Pull Requests
New feature or enhancement
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1316 | report serialized form of unknown type | @AirQuick | ||
#1322 | detect reserved name in x:param | @AirQuick | ||
#1330 | do not allow x:variable to override x:param | @AirQuick | @galtm | |
#1354 | scenario x:param | @AirQuick | @galtm, @AlexJitianu | |
#1364 | check stylesheet, query, schematron attributes | @AirQuick | ||
#1397 | measure time | @AirQuick | @galtm | |
#1412 | x:expect/attribute(pending) | @AirQuick | @galtm | |
#1296 | XSLT | warn if a named template scenario has a context parameter | @AirQuick | @galtm |
#1319 | XSLT | report xs:dateTimeStamp | @AirQuick | |
#1372 | XSLT | reinstate $x:stylesheet-uri | @AirQuick | @galtm |
#1321 | XQuery | report more atomic value types | @AirQuick | |
#1325 | XQuery | reject /x:description/x:param on XQuery | @AirQuick | @galtm |
#1294 | Schematron | support /x:description/attribute(run-as) | @AirQuick | @ohsh6o |
#1371 | Schematron | skip step 1 and/or step 2 if #none |
@AirQuick | |
#1380 | Schematron | replace built-in skeleton impl with SchXslt | @AirQuick | |
#1388 | Schematron | ensure attribute(xml:base) in Step 3 | @AirQuick | |
#1416 | Schematron | bump built-in SchXslt from 1.6.2 to 1.7 | @AirQuick | |
#1440 | Schematron | bump built-in SchXslt to v1.7.1 | @AirQuick | |
#1329 | Test result reports | report any atomic value types | @AirQuick | |
#1395 | Test result reports | report pending scenarios inside pending top-level scenario | @AirQuick |
Bug fix
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1341 | search only x:scenario for attribute(focus) | @AirQuick | ||
#1390 | Test result reports | fix JUnit and HTML reports for empty scenario | @AirQuick | |
#1413 | Test result reports | recognize doctypes in stylesheets | @jhellingman | @AirQuick |
#1422 | Test result reports | missed xsl:context-item should look up parent xsl:template | @AirQuick |
Test
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1309 | verify that x:variable is evaluated only once | @AirQuick | ||
#1314 | remove unused components (following up pr 906) | @AirQuick | ||
#1324 | refactor tests for forbidden x:param | @AirQuick | ||
#1326 | update a TVT comment in issue-1020_stylesheet.xspec | @AirQuick | ||
#1328 | make three-dots.xspec less language-dependent | @AirQuick | ||
#1331 | refactor tests to prepare for issue 991 | @AirQuick | ||
#1343 | x:scenario[empty(x:call|x:context)][x:expect]/x:variable | @AirQuick | @galtm | |
#1349 | use $myv:test-data in variable.xspec | @AirQuick | @galtm | |
#1350 | replace concat() with || in variable.xspec | @AirQuick | ||
#1374 | replace xsl:apply-imports with xsl:next-match | @AirQuick | @galtm | |
#1396 | focus vs pending | @AirQuick | @galtm | |
#1402 | simplify function.xspec | @AirQuick | ||
#1403 | simplify import.xspec and imported.xspec | @AirQuick | ||
#1405 | simplify pending.xspec and test it on Schematron | @AirQuick | ||
#1406 | clarify non x:apply scenario in rule.xspec | @AirQuick | ||
#1407 | fulfill some TODO in rule.xspec | @AirQuick | ||
#1408 | simplify focus-vs-pending.xspec and test it on Schematron | @AirQuick | ||
#1409 | simplify focus-without-pending.xspec and test it on Schematron | @AirQuick | ||
#1415 | unfocused param and variable | @AirQuick | @galtm | |
#1419 | unfocused x:call and x:context | @AirQuick | ||
#1423 | relocate non-pending scenarios in pending.xspec | @AirQuick | ||
#1439 | consolidate x:call/attribute(function) in line-number_*abled.xspec | @AirQuick | ||
#1292 | XSLT | test with xsl:result-document | @AirQuick | |
#1313 | XSLT | remove verbose $x:result from attribute(test) | @AirQuick | |
#1356 | XSLT | verify stylesheet components in testing issue 1029 | @AirQuick | |
#1365 | XSLT | add attribute(as) to xsl:function | @AirQuick | |
#1400 | XSLT | message for pending | @AirQuick | |
#1434 | XSLT | consolidate multiple-context-*.xspec | @AirQuick | |
#1435 | XSLT | more global context item tests with run-as=external | @AirQuick | |
#1297 | Schematron | issue 1277 (advanced boolean predicate in location) | @AirQuick | |
#1334 | Schematron | test with SchXslt v1.6.2 | @AirQuick | |
#1360 | Schematron | use expression var in generate-node-selector.xspec | @AirQuick | |
#1370 | Schematron | adapt some tests to SchXslt | @AirQuick | |
#1378 | Schematron | safer attribute(location) in xspec-sch.xspec | @AirQuick | |
#1379 | Schematron | adapt external_scenario-param.sch to SchXslt | @AirQuick | |
#1384 | Schematron | remove SchXslt test | @AirQuick | |
#1385 | Schematron | backport e2e test normalizers from schxslt branch | @AirQuick | |
#1386 | Schematron | skip schematron-020.xspec on SchXslt 1.6.2 or earlier | @AirQuick | |
#1391 | Schematron | adapt to SchXslt 967c828 | @AirQuick | |
#1417 | Schematron | remove SchXslt 1.6.2 test workaround | @AirQuick | |
#1317 | BaseX | test report-sequence.xqm with BaseX | @AirQuick | |
#1318 | Test result reports | test report-sequence.x* with XSD 1.0 | @AirQuick | |
#1355 | Test result reports | verify stylesheet line ending in testing issue 793 | @AirQuick | |
#1438 | Test result reports | code coverage with single line stylesheet | @AirQuick | |
#1441 | Test result reports | code coverage with no leading string | @AirQuick | |
#1442 | Test result reports | code coverage determined by child nodes | @AirQuick | @galtm |
CI configuration
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1295 | remove Travis CI | @AirQuick | @cirulls | |
#1301 | centralize codespell options in .codespellrc | @AirQuick | ||
#1307 | set GitHub Actions on.push.branches-ignore | @AirQuick | ||
#1310 | exclude Saxon 9.8 from Windows and macOS in GitHub Actions Test | @AirQuick | ||
#1335 | add --retry-connrefused curl option | @AirQuick | ||
#1346 | add --connect-timeout curl option | @AirQuick | ||
#1381 | Schematron | rebase schxslt branch onto master branch | @AirQuick | |
#1382 | Schematron | set git user email and name when rebasing schxslt branch | @AirQuick | |
#1286 | Dependencies | bump BaseX from 9.4.3 to 9.4.4 | @AirQuick | |
#1288 | Dependencies | bump Oxygen components to reflect 23.0 build 2020111805 | @AirQuick | |
#1298 | Dependencies | bump BaseX from 9.4.4 to 9.4.5 | @AirQuick | |
#1311 | Dependencies | [security] bump ini from 1.3.5 to 1.3.7 | @dependabot-preview[bot] | @AirQuick |
#1333 | Dependencies | bump BaseX from 9.4.5 to 9.4.6 | @AirQuick | |
#1348 | Dependencies | bump BaseX from 9.4.6 to 9.5 | @AirQuick | |
#1436 | Dependencies | bump BaseX from 9.5 to 9.5.1 | @AirQuick | |
#1290 | Development dependencies | bump codespell from 1.17.1 to 2.0.0 | @dependabot-preview[bot] | @AirQuick, @cirulls |
#1300 | Development dependencies | bump prettier from 2.1.2 to 2.2.1 | @dependabot-preview[bot] | @AirQuick |
#1344 | Development dependencies | bump @commitlint/config-angular from 11.0.0 to 12.0.0 | @dependabot-preview[bot] | @AirQuick |
#1345 | Development dependencies | bump @commitlint/cli from 11.0.0 to 12.0.0 | @dependabot-preview[bot] | @AirQuick |
#1352 | Development dependencies | bump @commitlint/config-angular from 12.0.0 to 12.0.1 | @dependabot-preview[bot] | @AirQuick |
#1353 | Development dependencies | bump @commitlint/cli from 12.0.0 to 12.0.1 | @dependabot-preview[bot] | @AirQuick |
#1432 | Development dependencies | bump @commitlint/cli from 12.0.1 to 12.1.1 | @dependabot-preview[bot] | @AirQuick |
#1433 | Development dependencies | bump @commitlint/config-angular from 12.0.1 to 12.1.1 | @dependabot-preview[bot] | @AirQuick |
Documentation
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1339 | update tutorial/under-the-hood/ for #991 |
@AirQuick | @galtm | |
#1361 | update links in README.md | @AirQuick | @cirulls | |
#1304 | XSLT | attribute(test) context may not always be node | @AirQuick | |
#1306 | XSLT | tidy up the details of escape-for-regex.xsl | @AirQuick | |
#1305 | XQuery | credit for functx:capitalize-first() | @AirQuick | @cirulls |
#1393 | Schema for .xspec files | clarify why focus attribute is text | @AirQuick | @galtm |
#1303 | bin/xspec.* | revert 33684b7 with regard to xspec.sh | @AirQuick |
Refactoring improvement (no new feature or bug fix)
D...
v2.0.7
Summary
Release v2.0.7 introduces new features and enhancements, fixes bugs, and improves the test suite and the documentation. These are the highlights for XSpec v2.0.7:
Common to Languages Under Test
x:helper
lets you integrate your own test helpers@as
can be set inx:context
andx:expect
XSLT
- You can test XSLT packages and static parameters (experimental)
Schematron
- Compatible with SchXslt (not thoroughly tested)
- You can write advanced expressions in
@location
(e.g.<x:expect-assert location="//sec[@id='lower']" />
)
XQuery
- Text value templates
- Arrays and maps are reported in the same way as XSLT scenarios
Command Line
- New option
-e
treats failed tests as error
Oxygen
${xmlCatalogFilesList}
takes effect in the Run XSpec Test transformation scenario
Breaking Changes
- See #1121
Many thanks to the many XSpec contributors who made this release possible. They are listed next to the relevant item.
Merged Pull Requests
New feature or enhancement
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#980 | catalog file URIs | @AirQuick | ||
#1103 | x:helper | @AirQuick | @galtm, @vincentml, @mricaud | |
#1127 | override compiler per language in Ant build | @AirQuick | ||
#1128 | compiler Saxon configuration in Ant build | @AirQuick | ||
#1130 | force focus on demand in Ant build | @AirQuick | ||
#1141 | support XML 1.1 in Ant build | @AirQuick | ||
#1245 | reject suspicious x:expect[attribute(test)] | @AirQuick | @galtm | |
#1256 | attribute(as) for x:context and x:expect | @AirQuick | @galtm | |
#1260 | boolean attribute(shared) | @AirQuick | ||
#1089 | XSLT | $x:context | @AirQuick | |
#1120 | XSLT | static parameters | @AirQuick | @galtm |
#1259 | XSLT | boolean attribute(tunnel) | @AirQuick | |
#1040 | XQuery | report array and map | @AirQuick | |
#1077 | XQuery | text value templates | @AirQuick | |
#1107 | Schematron | compare location based on node identity | @AirQuick | @AndrewSales, @vincentml |
#1039 | Test result reports | report xs:double using numeric literal | @AirQuick | |
#1049 | Test result reports | separate atomic values with new line | @AirQuick | @galtm |
#1095 | Test result reports | report all namespaces in test result report HTML | @AirQuick | |
#1263 | Maven | include editors/emacs/ in enduser-files | @AirQuick | |
#1276 | bin/xspec.* | option to treat failed tests as error | @AirQuick | @galtm |
Bug fix
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#982 | remove hardcoded prefixes except xsl | @AirQuick | ||
#988 | pull out unused compiler code | @AirQuick | ||
#990 | fix #987 (circular imports) | @AirQuick | ||
#1063 | detect duplicate parameter name | @AirQuick | @galtm | |
#1116 | do not force inheriting global namespaces | @AirQuick | ||
#1226 | resolve relative jar: scheme in coverage trace listener |
@AirQuick | ||
#1262 | documentElement/attribute(localName) in editors/emacs/schemas.xml | @AirQuick | ||
#1266 | detect duplicate function-param position | @AirQuick | @galtm | |
#1269 | reject too large attribute(position) | @AirQuick | ||
#1270 | make x:param[attribute(position)] overridable | @AirQuick | ||
#1273 | mixture of explicit and implicit function-param position | @AirQuick | @galtm | |
#1014 | XSLT | ignore xspec-utils.xsl in coverage trace listener | @AirQuick | |
#1032 | XSLT | set namespace on node generator | @AirQuick | |
#1099 | XSLT | copy x:expect namespaces only for attribute(test) | @AirQuick | |
#1227 | XSLT | fix issue 746 (transform() crashes Code Coverage) | @AirQuick | @galtm |
#1246 | XSLT | variables declared between x:context and x:call | @galtm | @AirQuick |
#1021 | XQuery | disable escaping in expression | @AirQuick | |
#1041 | XQuery | do not exclude 'test' prefix declaration | @AirQuick | |
#1042 | XQuery | do not declare default element namespace | @AirQuick | |
#1222 | XQuery | fix issue 446 (x:pending may crash on XQuery) | @AirQuick | @galtm |
#1106 | Schematron | generate $x:schematron-uri as xsl:param | @AirQuick | |
#1144 | Schematron | fix importing global parameters for Step 3 | @AirQuick | |
#1145 | Schematron | resolve x:import properly in schut-to-xspec.xsl | @AirQuick | |
#1018 | Oxygen | disable add-on v2.0.1 in xspec.xpr project options | @AirQuick | |
#955 | Test result reports | plain report hint mark | @AirQuick | |
#1096 | Test result reports | do not copy namespaces to x:report | @AirQuick | |
#1109 | Test result reports | report x:expect/attribute(test) separetely in report XML | @AirQuick | |
#1111 | Test result reports | fix failed JUnit report body | @AirQuick | |
#1112 | Test result reports | fix diffing with external report file | @AirQuick | |
#1133 | Test result reports | undeclare default namespace when reporting results in XML | @AirQuick | |
#1136 | Test result reports | resolve coverage stylesheet URI via xml:base | @AirQuick | @galtm |
#1158 | Test result reports | serialize text node report | @AirQuick | |
#1268 | Schema for .xspec files | define position as positiveInteger | @AirQuick | |
#967 | Maven | include *.java in sources jar and exclude resources | @AirQuick | @cmarchand |
Test
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#1006 | test AVT with namespace prefix | @AirQuick | ||
#1007 | test TVT with namespace prefix | @AirQuick | ||
#1035 | assume Saxon bug 4621 will be fixed on Saxon 9.9.1.8 | @AirQuick | ||
#1037 | test $x:capture-NCName in an "external" friendly way | @AirQuick | ||
#1050 | remove verbose xspec- from test file names |
@AirQuick | ||
#1061 | split tested.* to square.* and rule.xsl | @AirQuick | ||
#1068 | remove $xspec-prefix workaround from generate-xspec-tests.xspec | @AirQuick | ||
#1070 | use xmlns:test in tests | @AirQuick | ||
#1093 | rename saxon-config/ to x-saxon-config/ | @AirQuick | ||
#1117 | undeclaring the default namespace | @AirQuick | ||
#1126 | relocate test for redefining variable while mixing notations | @galtm | @AirQuick | |
#1150 | print unparsed result on end-to-end test failure | @AirQuick | ||
#1161 | rename generate-x-utils/ to deep-equal/ | @AirQuick | ||
#1166 | rename x-setup-context.xspec to context-param.xspec | @AirQuick | ||
#1186 | rename test/eqname*.* to use-uqname*.* | @AirQuick | ||
#1236 | harden risky attribute(test) | @AirQuick | ||
#1255 | nesting scenarios | @AirQuick | ||
#1257 | consolidate x:call using nesting | @AirQuick | ||
#1258 | function-param attribute(position) with run-as=external | @AirQuick | ||
#1015 | XSLT | test 'not used' coverage | @AirQuick | |
#1030 | XSLT | catch xsl:message in atomic value function/template | @AirQuick | |
#1231 | XSLT | more tests for run-as=external | @AirQuick | @galtm |
#1058 | Schematron | rename import test file | @AirQuick | |
#1157 | Schematron | skip xml-1-1_schematron.xspec on Travis CI | @AirQuick | |
#1224 | Schematron | skip xml-1-1_schematron.xspec on GitHub Actions macOS | @AirQuick | |
#1230 | Schematron | test with SchXslt v1.4.7 | @AirQuick | |
#1244 | Schematron | test with SchXslt v1.5 | @AirQuick | |
#1251 | Schematron | test with SchXslt v1.5.1 | @AirQuick | |
#1271 | Schematron | test with SchXslt v1.5.2 | @AirQuick | |
#1114 | Test result reports | test serialization of xmlns="" | @AirQuick | |
#1240 | Test result reports | valid report-sequence_(query|stylesheet).xspec | @AirQuick | |
#1193 | Maven | test loading src stylesheet files from jar | @AirQuick |
CI configuration
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#962 | workaround for Azure Pipelines Java 11 | @AirQuick | ||
#971 | remove Azure Pipelines Java 11 workaround | @AirQuick | ||
#973 | specify codespell 1.16.0 in requirements-dev.txt | @AirQuick | ||
#1008 | chmod -x install-deps.sh and set-env.sh in test/ci/ | @AirQuick | ||
#1016 | use JavaToolInstaller task on Azure Pipelines | @AirQuick | ||
#1129 | support filtering Windows Bats-like tests | @AirQuick | ||
#1131 | install test deps in parallel | @AirQuick | ||
#1153 | print the number of logical processors on *nix | @AirQuick | ||
#1201 | retry downloading deps in build_install-deps.xml | @AirQuick | ||
#1038 | BaseX | download BaseX using secure channel | @AirQuick | |
#960 | Dependencies | bump Saxon from 10.0 to 10.1 | @AirQuick | |
#963 | Dependencies | bump Ant from 1.10.7 to 1.10.8 | @AirQuick | |
#965 | Dependencies | bump BaseX from 9.3.2 to 9.3.3 | @AirQuick | |
#970 | Dependencies | bump Oxygen Saxon version from 9.9.1.5 to 9.9.1.7 | @AirQuick | |
#1073 | Dependencies | bump BaseX from 9.3.3 to 9.4 | @AirQuick | |
#1118 | Dependencies | bump BaseX from 9.4 to 9.4.1 | @AirQuick | |
#1206 | Dependencies | bump Saxon from 10.1 to 10.2 | @AirQuick | |
#1235 | Dependencies | bump BaseX from 9.4.1 to 9.4.3 | @AirQuick | |
#1248 | Dependencies | bump XML Calabash from 1.2.1 to 1.2.3 | @AirQuick | |
#1252 | Dependencies | bump XML Calabash from 1.2.3 to 1.2.4 | @AirQuick | |
#1265 | Dependencies | bu... |
v1.6.0
Summary
Release v1.6.0 introduces new features and enhancements, fixes bugs, and improves the test suite and the documentation. These are the highlights for XSpec v1.6.0:
- Text Value Templates (expand-text)
- Code Coverage now works on Saxon-HE
- Compatible with Saxon 10.0
- Note: Code Coverage does not work on Saxon 10 (#852)
- Compatible with Oxygen 22.0
- This will be the last version to support Saxon 9.7
Many thanks to the many XSpec contributors who made this release possible. They are listed next to the relevant item.
Merged Pull Requests
New feature or enhancement
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#631 | also accept 'schematron', 'xquery', or 'xslt' for Ant 'test.type' | @tgraham-antenna | @AirQuick | |
#711 | support Text Value Templates (expand-text) | @AirQuick | @galtm | |
#818 | specify CLI HTML reporter via environment variable | @AirQuick | ||
#823 | specify CLI coverage reporter via environment variable | @AirQuick | ||
#860 | support Saxon 10 in SAXON_HOME | @AirQuick | ||
#773 | XSLT | report additional types | @AirQuick | |
#795 | XSLT | code coverage on Saxon-HE | @AirQuick | @galtm |
#734 | Test result reports | overridable ID generation | @AirQuick | @AlexJitianu |
#735 | Test result reports | report each scenario's originating XSpec file URI | @AirQuick | |
#770 | Test result reports | report x:scenario and x:expect ID in XML report | @AirQuick | |
#839 | Test result reports | add hint link to result HTML | @AirQuick | @galtm |
#870 | Test result reports | report non-array non-map function(*) | @AirQuick | |
#742 | Schema for .xspec files | add Schematron schema for XSpec | @AirQuick | @galtm |
Bug fix
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#797 | name temporary variables with namespace | @AirQuick | @galtm | |
#803 | trim names while gathering specs | @AirQuick | ||
#820 | do not allow element in x:label element | @AirQuick | @galtm | |
#827 | #826 (SXWN9000 when resolving QName with non-empty prefix) | @AirQuick | ||
#871 | detect broken x:import | @AirQuick | ||
#893 | remove 'treat as' from function-param | @AirQuick | @galtm | |
#731 | XSLT | fix xslt-version inheritance | @AirQuick | @galtm |
#894 | XSLT | copy namespace for template-param attribute(as) | @AirQuick | @galtm |
#772 | XQuery | report all the basic types and valid numeric expressions | @AirQuick | |
#768 | Schematron | fix xspec.bat handling Schematron path with space | @AirQuick | |
#780 | Oxygen | update Ant scenarios to support Oxygen 22.0 | @AirQuick | |
#759 | BaseX | add explicit content encoding for HTML report | @AirQuick | |
#764 | Test result reports | sort namespace nodes in HTML report | @AirQuick | @cirulls |
#794 | Test result reports | fix tokenizing stylesheet CR lines on code coverage | @AirQuick | |
#824 | Test result reports | fix whitespace-only text node indentation | @AirQuick | |
#837 | Test result reports | take font-size from Oxygen CSS | @AirQuick | @galtm |
#767 | XProc | indent results in HTML report | @AirQuick | @cirulls |
Test
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#774 | fix typo 'poisition' | @AirQuick | ||
#784 | update expected result of schema-aware end-to-end test | @AirQuick | ||
#789 | generate end-to-end test expected result using Saxon 9.9 | @AirQuick | ||
#790 | fix nonexistent call rmdir-if-exists | @AirQuick | ||
#802 | comment in xspec-avt*.xspec about xspec-utils_stylesheet.xspec | @AirQuick | ||
#809 | sync xspec-no-prefix_*.xspec with source files | @AirQuick | ||
#814 | test x:resolve-URIQualifiedName() without using xs:QName() | @AirQuick | ||
#822 | use common module to mirror input | @AirQuick | ||
#828 | atomic values which are not exactly equal to each other | @AirQuick | ||
#830 | compare QNames using util function | @AirQuick | ||
#841 | test CLI with unknown option and extra arg | @AirQuick | ||
#846 | skip coverage Bats tests on Saxon 10 | @AirQuick | ||
#847 | check error code lines with regex in Bats | @AirQuick | ||
#848 | parse failure element text in xspec-junit.xspec | @AirQuick | ||
#850 | block generating end-to-end expected results on Saxon 10 | @AirQuick | ||
#853 | verify SAXON_CP has precedence over SAXON_HOME | @AirQuick | ||
#854 | skip xspec-serialize.xspec on Saxon 10.0 | @AirQuick | ||
#856 | adapt error code Bats tests to Saxon 10 | @AirQuick | ||
#857 | use mirror.* in end-to-end test | @AirQuick | ||
#858 | test template context in global-override.xspec | @AirQuick | ||
#859 | add xsl:mode to xspec-tested.xsl | @AirQuick | ||
#862 | test with higher-order functions if possible | @AirQuick | ||
#876 | test XSPEC_HOME | @AirQuick | ||
#881 | test regex more precisely in xspec.bats | @AirQuick | ||
#882 | add -c tests to CLI with/without TEST_DIR | @AirQuick | ||
#884 | archive test/run-xspec-tests.* | @AirQuick | @galtm | |
#885 | archive test/Makefile | @AirQuick | @galtm | |
#886 | verify only leaf dir's inexistence | @AirQuick | ||
#887 | randomize temp path in Bats tests | @AirQuick | ||
#888 | do not pollute repository dir in Bats test | @AirQuick | ||
#899 | test format-xspec-report-folding.xsl in end-to-end test | @AirQuick | ||
#900 | test custom coverage reporter in end-to-end test | @AirQuick | ||
#785 | XSLT | skip testing additional type report on Saxon 9.7 | @AirQuick | |
#806 | XSLT | x:param/attribute(tunnel) | @AirQuick | |
#810 | XSLT | remove unused item.xsl from xspec-utils_stylesheet.xspec | @AirQuick | |
#821 | XSLT | overriding global param and variable | @AirQuick | |
#861 | XSLT | skip coverage test on Saxon 10 | @AirQuick | |
#872 | XSLT | multiple context items | @AirQuick | |
#874 | XSLT | add apply-templates invocation to template context test | @AirQuick | |
#897 | Schematron | test external XSLT file chain | @AirQuick |
CI configuration
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#758 | use HTTPS for fetching Maven files | @AirQuick | ||
#775 | suppress codespell warnings about fixes disabled in dictionary | @AirQuick | ||
#776 | skip codespell .git dir | @AirQuick | ||
#832 | specify all pr branches in azure-pipelines.yml | @AirQuick | ||
#834 | specify all trigger branches in azure-pipelines.yml | @AirQuick | ||
#845 | keep Saxon 10 jar file name | @AirQuick | ||
#863 | add Saxon 10.0 to CI matrix | @AirQuick | ||
#864 | run codespell in GitHub Actions | @AirQuick | ||
#865 | delegate Azure Pipelines condition to cmd | @AirQuick | ||
#866 | skip compiling Java with Saxon 10 | @AirQuick | ||
#867 | run codespell only in GitHub Actions | @AirQuick | ||
#868 | run test in GitHub Actions | @AirQuick | ||
#869 | reuse set-env.* across CI | @AirQuick | ||
#879 | call set-env.* from install-deps.* | @AirQuick | ||
#880 | harden CI scripts | @AirQuick | ||
#883 | install deps using Ant | @AirQuick | ||
#918 | set cmarchand as pom.xml owner in CODEOWNERS | @AirQuick | @cmarchand | |
#769 | Dependencies | bump BaseX from 8.6.4 to 9.3.1 | @AirQuick | |
#779 | Dependencies | bump Oxygen lib versions | @AirQuick | |
#811 | Dependencies | bump Saxon from 9.9.1.6 to 9.9.1.7 | @AirQuick | |
#835 | Dependencies | bump BaseX from 9.3.1 to 9.3.2 | @AirQuick | |
#895 | Dependencies | bump XML Calabash from 1.1.30 to 1.2.1 | @AirQuick | |
#875 | Schema for .xspec files | test schema only in .github/workflows/lint.yml | @AirQuick |
Documentation
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#672 | move and document find-examples.* | @AirQuick | @cirulls | |
#756 | add contributing guidelines | @cirulls | @AirQuick | |
#757 | Fill in a missing word in main Readme | @galtm | @cirulls | |
#765 | add link to contributing guidelines | @cirulls | @galtm | |
#771 | mention Schematron in README.md | @AirQuick | ||
#783 | add PlantUML diagram to test/ant/README.md | @AirQuick | @galtm | |
#896 | update status badges | @AirQuick |
Refactoring improvement (no new feature or bug fix)
Details
PR # | Scope | Subject | Author | Participants |
---|---|---|---|---|
#782 | test:generate-variable-declarations mode | @AirQuick | ||
#798 | remove redundant xsl:element/attribute(namespace) | @AirQuick | ||
#799 | make non-xsl literal result elements more portable | @AirQuick | ||
#804 | resolve URIQualifiedName to QName | @AirQuick | ||
#805 | rename x:compile-params to x:compile-global-params-and-vars | @AirQuick | ||
#815 | x:yes-no-synonym() with default value | @AirQuick | @galtm | |
#816 | stub function of x:line-number() | @AirQuick | ||
#817 | resolve lexical QName using a util function | @AirQuick | @galtm | |
#819 | set 'treat as' on enter-sut instruction | @AirQuick | ||
#829 | util function to generate QName expression | @AirQuick | ||
#831 | remove processing-instruction(xml-stylesheet) | @AirQuick | ||
#833 | resolve EQName using a util function | @AirQuick | ||
#842 | remove deprecated coverage option from CLI | @AirQuick | ||
#843 | remove CLI code for stale Saxon versions | @AirQuick... |
v1.5.0
Summary
Release v1.5.0 introduces new features and enhancements, fixes bugs, and improves the test suite and the documentation. These are the highlights for XSpec v1.5.0:
- Oxygen integration including our own Oxygen add-on: You can test the integration using one of the methods described in the Wiki.
- Diff in test result HTML: Improved highlight and indentation (#662, #704, #726).
- Testing dynamic errors:
x:scenario
can expect dynamic errors (Wiki). - Namespace: Descendants of x:description can declare a default element namespace or bind a prefix to a namespace (#640).
- Deprecation of Saxon 9.7 or less: #596.
Many thanks to the many XSpec contributors who made this release possible. They are listed next to the relevant code change (the first name is usually the person who started the pull request, the next names are people who contributed or reviewed the pull request).
New features and enhancements
Issue | PR | Description | Contributors |
---|---|---|---|
#665 | #705 | Content of role attributes | @heidivanparys, @AirQuick, @vincentml |
#633 | #644 | Ant: Warning: Nashorn engine is planned to be removed from a future JDK release | @AirQuick, @cmarchand, @nkutsche |
#579 | #662 | Paler diff color when element QName is equal | @AirQuick, @galtm, @cmsmcq |
#579 | #704 | Diff color of attributes and processing instructions | @AirQuick, @galtm |
#501 | #634 | Add eol=crlf to .gitattributes for *.bat and *.cmd | @AirQuick, @tofi86 |
#745 | Add Schematron template for Oxygen | @AirQuick, @galtm | |
#743 | Publish XSpec development version as Oxygen add-on | @AirQuick, @galtm | |
#739 | Support XQuery in Run XSpec Test transformation scenario | @AirQuick, @galtm | |
#738 | Add Oxygen transformation scenario for Code Coverage | @AirQuick, @galtm | |
#737 | Add XQuery template for Oxygen | @AirQuick, @galtm | |
#736 | Add Oxygen XQuery XProc transformation scenario | @AirQuick | |
#732 | Locate Schematron file URI using a single function | @AirQuick | |
#729 | Remove namespace alias from generate-tests-helper.xsl | @AirQuick | |
#727 | Remove redundant -ext:on from build.xml | @AirQuick | |
#726 | Color XPath expression diff in report HTML | @AirQuick, @galtm | |
#725 | Get xslt-version using a single function | @AirQuick | |
#723 | Externalize whitespace-only text node functions | @AirQuick | |
#719 | Enable Schematron text node location | @AirQuick | |
#714 | Detect Schematron in generate-xspec-tests.xsl | @AirQuick | |
#713 | Integrate Oxygen framework | @AirQuick, @galtm, @AlexJitianu | |
#708 | Ignore Oxygen project file | @AirQuick | |
#696 | Append -compiled to compiled query/stylesheet file name | @AirQuick | |
#688 | Detect x:like errors | @AirQuick, @galtm | |
#680 | Remove EXPath file module from coverage-report.xsl | @AirQuick | |
#661 | Replace mode=x:copy-namespaces template with function | @AirQuick, @galtm | |
#660 | Add xsl:context-item to named templates | @AirQuick | |
#659 | Use $this in x:generate-tests mode template in generate-query-tests.xsl | @AirQuick | |
#596 | #625 | Deprecation warning for Saxon 9.7 or less | @AirQuick, @cirulls, @galtm |
#624 | Obsolete x:space | @AirQuick | |
#623 | Define default XSLT version as a variable | @AirQuick | |
#618 | Simplify x:unshare-scenarios mode templates | @AirQuick | |
#500 | #599 | try-catch support: x:scenario/attribute(catch) | @AirQuick, @galtm, @cmarchand , @Nico-Amplexor, @cmsmcq |
#597 | Write decimal point in /xsl:stylesheet/attribute(version) | @AirQuick | |
#591 | Simplify handling of whitespace-only text nodes | @AirQuick, @galtm | |
#589 | Remove unnecessary static-base-uri() | @AirQuick, @galtm | |
#524 | Optimize CSS data URI | @AirQuick |
Bug fixes
Issue | PR | Description | Contributors |
---|---|---|---|
#697 | #698 | Empty document node is reported without XPath notation | @AirQuick |
#689 | #690 | Namespace and attribute nodes are serialized with misaligned indentation | @AirQuick |
#682 | #684 | Module URIs in coverage report HTML are not formatted | @AirQuick |
#681 | #683 | Leading slash missing from formatted URI in HTML report on *nix | @AirQuick |
#655 | #663 | Coverage report loses hit when output dir is specified | @AirQuick |
#610 | #611 | Fails to load XML in folder containing single quote (apostrophe U+0027) | @AirQuick |
#598 | #640 | Recognize namespace declarations on descendants of x:description, for XSLT testing | @galtm, @AirQuick |
#748 | Fix typo in code comment | @galtm, @AirQuick | |
#668 | 'fail' and 'cleanup' in 'depends', not as | @tgraham-antenna, @AirQuick | |
#613 | Fix XProc for Saxon XQuery | @AirQuick | |
#609 | Fix invalid col element in result HTML | @AirQuick |
Tests
Issue | PR | Description | Contributors |
---|---|---|---|
#583 | #717 | Bats test fails when output dir exists | @AirQuick |
#693 | #694 | end-to-end test cannot handle svrl:active-pattern/attribute(document) if it's zero-length | @AirQuick |
#692 | #718 | ci: install test deps using 7z if tar not built in | @AirQuick, @heidivanparys |
#669 | #671 | Replace Ant import with include | @AirQuick |
#669 | #676 | Test importing Ant build file | @AirQuick |
#592 | #595 | Test with mode="#all" | @AirQuick |
#580 | #587 | Improve BaseX server test for Windows | @AirQuick |
#573 | #582 | Noting CSS difference between actual and expected | @galtm, @AirQuick |
#749 | ci: test with Saxon 9.9.1.6 | @AirQuick | |
#747 | ci: test with XML Calabash 1.1.30 | @AirQuick | |
#724 | Merge test/catalog/catalog-01 and catalog-02 | @AirQuick | |
#691 | #722 | Merge test/catalog/catalog-01 and catalog-02 | @AirQuick, @tofi86 |
#720 | #721 | Skip xspec-xmlns.xspec on Saxon 9.7 | @AirQuick |
#700 | #715 | Catch error messages from <xsl:message terminate="yes"/> |
@AirQuick, @christianhujer |
#712 | Remove test/end-to-end/cases/schematron-01.xspec | @AirQuick | |
#707 | Reject Saxon 9.8.0.14 or later when generating expected files | @AirQuick | |
#706 | ci: fix .travis.yml according to build config validation message | @AirQuick | |
#703 | Ant-based test: Parameterize query for fn:collection() | @AirQuick | |
#699 | Test for serialization color of attribute and processing instruction | @AirQuick | |
#686 | ci: invalidate preinstalled Ant | @AirQuick | |
#678 | ci: enable Maven package test on AppVeyor | @AirQuick | |
#677 | Move test/ant/caps/* to test/caps/* | @AirQuick | |
#675 | ci: codespell | @AirQuick, @cirulls | |
#674 | ci: unset JVM environment variables in run-bats.sh | @AirQuick | |
#673 | ci: replace .travis.yml before_script with install | @AirQuick | |
#667 | ci: externalize *nix tests further | @AirQuick | |
#664 | ci: test Maven package and fix javadoc compatibility with JDK 11 | @AirQuick | |
#657 | Fix test/end-to-end/cases/xspec-shared-like.xspec | @AirQuick, @galtm | |
#656 | ci: run tests in parallel | @AirQuick | |
#687 | ci: test with XML Calabash 1.1.29 | @AirQuick | |
#658 | Test inheritance in x:copy-namespaces() | @AirQuick, @galtm | |
#654 | ci: test on macOS | @AirQuick | |
#653 | ci: align install-deps.sh with .cmd | @AirQuick | |
#652 | ci: update installation skip message | @AirQuick | |
#651 | ci: test with XML Calabash 1.1.*-98 | @AirQuick | |
#650 | ci: test with Ant 1.10.7 | @AirQuick | |
#649 | ci: set Saxon and XML Resolver path in test/ci/install-deps.* | @AirQuick | |
#648 | ci: externalize test dependency installation in .travis.yml | @AirQuick | |
#647 | ci: print environment | @AirQuick | |
#646 | ci: remove dependency on Chocolatey | @AirQuick | |
#645 | ci: remove dependency on 7-zip | @AirQuick | |
#633 | #642 | Test warning on Ant | @AirQuick |
#638 | #641 | xsl:output in the stylesheet being tested | @AirQuick |
#637 | ci: test with Java 11 | @AirQuick | |
#636 | ci: compile java recursively | @AirQuick | |
#635 | Fix typo in test/generate-xspec-tests.xspec | @AirQuick, @cirulls | |
#632 | ci: disable non-mainstream jobs in appveyor.yml | @AirQuick, @cirulls | |
#630 | ci: add Azure Pipelines | @cirulls, @AirQuick | |
#629 | ci: externalize commands in appveyor.yml | @AirQuick, @cirulls | |
#628 | Use full path for Windows find command in test | @AirQuick, @cirulls | |
#608 | Use null device instead of tempfile in end-to-end test | @AirQuick | |
#627 | Test with Ant 1.10 and revert #608 | @AirQuick | |
#626 | Skip testing xspec-215.xspec on Saxon 9.8 | @AirQuick | |
#615 | Test x:is-user-content() with x:variable | @AirQuick | |
#612 | Update repository URL in src/harnesses | @AirQuick, @cirulls | |
#750 | Bump Saxon-HE from 9.9.1-5 to 9.9.1-6 | @dependabot, @AirQuick | |
#621 | Bump Saxon-HE from 9.8.0-14 to 9.9.1-5 | @dependabot, @AirQuick | |
#606 | Bump maven-compiler-plugin from 3.8.0 to 3.8.1 | @dependabot, @AirQuick | |
#604 | Bump maven-javadoc-plugin from 3.1.0 to 3.1.1 | @dependabot, @AirQuick | |
#603 | Bump maven-release-plugin from 2.5.2 to 2.5.3 | @dependabot, @cirulls | |
#602 | Update test deps (as of 2019-09-06Z) | @AirQuick | |
#590 | Delete test/end-to-end/cases/actual__/ before end-to-end test | @AirQuick |
Documentation
Issue | PR | Description | Contributors |
---|---|---|---|
#713 | [Running the Latest Version of XSpec with Oxygen](https://github.com/xspec/xspec/wiki/Running-with-Oxygen#running-the-latest-versio... |
v1.4.0
Summary
Release v1.4.0 introduces new features and enhancements, fixes bugs, and improves the test suite and the documentation. These are the highlights for XSpec v1.4.0:
- A useful enhancement is the ability to define your own variables in an XSpec test for XSLT or XQuery (#475). Reasons for using XSpec variables can include reusing data within the XSpec file and naming intermediate results for clarity. This feature had an incomplete implementation in earlier releases. For more information on using variables, see XSpec Variables.
- XQuery support is mostly on a parity with XSLT. Now implementing new XQuery features is easier than ever. Any contribution is welcome.
- Test coverage continues growing. We have more than 200 tests running on our CI systems.
Many thanks to the many XSpec contributors who made this release possible. They are listed next to the relevant code change (the first name is usually the person who started the pull request, the next names are people who contributed or reviewed the pull request).
New features and enhancements
Issue | PR | Description | Contributors |
---|---|---|---|
#60 | #475 | Add x:variable to schema and improve compiler support for x:variable | @galtm, @AirQuick |
#460 | Enable x:text on XQuery | @AirQuick | |
#473 | Schema: Remove redundant xs declaration | @AirQuick | |
#479 | Copy namespaces to XQuery XML report | @AirQuick | |
#485 | Simplify importing 'test' module on XQuery | @AirQuick | |
#487 | x:instance-of-namespace() for XQuery | @AirQuick | |
#489 | x:node-type() for XQuery | @AirQuick | |
#577 | XProc harness for BaseX server | @AirQuick, @cirulls | |
#497 | Add x:description/@xquery-version |
@AirQuick, @galtm | |
#523 | xml-stylesheet processing instruction in XQuery report XML | @AirQuick | |
#525 | Simplify test:report-sequence() test param | @AirQuick, @galtm | |
#530 | Parse XML report using common functions | @AirQuick | |
#522 | #533 | Explicit error message when source doc is not an XSpec file | @AirQuick |
#536 | Highlight entire test block on click in HTML report | @AirQuick, @galtm | |
#537 | Highlight entire scenario block on click in HTML report | @AirQuick, @galtm | |
#576 | Restore format of basex-standalone-xquery-harness.xproc | @AirQuick, @cirulls | |
#541 | Replace -xsl with -a in CLI formatting HTML | @AirQuick | |
#546 | Report array and map content | @AirQuick, @galtm | |
#550 | Wrap Schematron command lines in bin/xspec.* | @AirQuick | |
#551 | Align CLI's Schematron wording with Ant's | @AirQuick | |
#552 | Create Schematron XSpec in output dir | @AirQuick | |
#557 | Simplify test:disable-escaping characters | @AirQuick, @galtm | |
#572 | #586 | Accept x:description without XSpec namespace prefix | @AirQuick, @galtm |
Bug fixes
Issue | PR | Description | Contributors |
---|---|---|---|
#450, #451 | #459 | XQuery text node containing curly bracket crashes | @AirQuick, @galtm |
#448 | #461 | XQuery scenario label containing curly bracket crashes | @AirQuick |
#449 | #462 | XQuery expect label containing curly bracket crashes | @AirQuick |
#447 | #463 | Pending label containing curly bracket crashes | @AirQuick |
#468 | #469 | XSLT and XQuery different attribute(date) in XML report | @AirQuick |
#467 | #470 | Namespace of the same prefix is dropped from HTML report | @AirQuick |
#466 | #472 | XSpec occupies x: namespace prefix | @AirQuick, @galtm |
#480 | #481 | XQuery x:expect with sole non boolean test is terminated with XPTY0004 | @AirQuick |
#177 | #483 | Unhelpful report when test attribute is a boolean (for XQuery) | @AirQuick |
#67 | #488 | Cannot compare namespace node for XQuery | @AirQuick |
#495 | Replace xsl:value-of with xsl:sequence in schematron-019.sch | @AirQuick | |
#496 | Place xsl:namespace first in schut-to-xspec.xsl (for warning on Saxon 9.6) | @AirQuick | |
#355, #357, #358, #360, #59 | #498 | Fix broken report for XQuery + test | @AirQuick |
#528 | #529 | Failure report is not available in HTML when focusing on a child scenario | @AirQuick, @galtm |
#78 | #534 | ID in report HTML is not unique | @AirQuick |
#85 | #535 | Useless href in report HTML | @AirQuick |
#542 | #544 | Fails to resolve URI on Windows when imported via catalog | @AirQuick |
#161 | #545 | Fails to test imported Schematron XSpec with href | @AirQuick |
#547, #548 | #549 | Schematron ignores context select and AVT | @AirQuick |
#393 | #562 | x:call-scenarios template references this//@Focus | @AirQuick, @galtm |
#412 | #565 | select with href or child node always sorts nodes and eliminates duplicates | @AirQuick, @galtm |
Tests
Issue | PR | Description | Contributors |
---|---|---|---|
#465 | Integrate unit-expect-xsl.xspec into generate-xspec-tests.xspec | @AirQuick | |
#474 | Update Jing version | @AirQuick | |
#476 | Test attribute (shared) and x:like | @AirQuick | |
#478 | Update test dependencies | @AirQuick | |
#482 | Make xspec-177.xspec more portable | @AirQuick | |
#153 | #484 | Test terminates with XPTY0004 in defining $impl:successful | @AirQuick |
#486 | Put test items into namespace | @AirQuick | |
#490 | Test test:wrappable-sequence() | @AirQuick | |
#491 | Test test:report-sequence() on XQuery | @AirQuick | |
#492 | Run xspec-serialize.xspec on XQuery | @AirQuick | |
#494 | Do not include sch-location-compare.xsl twice in sch-location-compare.xspec | @AirQuick | |
#502 | Simplify x:call in xspec-ambiguous-expect.xspec | @AirQuick | |
#503 | Test xspec-ambiguous-expect.xspec on XQuery | @AirQuick | |
#504 | Update test dependencies (Saxon and XML Calabash) | @AirQuick | |
#507 | Simplify x:call in xspec-153.xspec | @AirQuick | |
#509 | Test inline CSS for coverage report file (command line) | @AirQuick | |
#510 | Test inline CSS for coverage report file (Ant) | @AirQuick | |
#511 | Test inline CSS for HTML report file (Ant) | @AirQuick | |
#512 | Test report-css-uri parameter for result HTML and coverage report | @AirQuick | |
#518 | Save normalized report using its file name extension | @AirQuick | |
#519 | Test for function-param position | @AirQuick | |
#582 | CSS difference between actual and expected | @galtm, @AirQuick | |
#531 | Make xspec-space_stylesheet.xspec more portable | @AirQuick | |
#532 | Merge xspec-space_*.xspec | @AirQuick | |
#540 | Update test deps (as of 2019-03-12Z) | @AirQuick | |
#543 | Test XQuery, Ant and catalog | @AirQuick | |
#151 | #553 | Test terminates with FOTY0012 in test:report-sequence on XQuery | @AirQuick |
#554 | Update test deps (as of 2019-03-21Z) | @AirQuick | |
#558 | Update test deps (as of 2019-04-04Z) | @AirQuick | |
#559 | Use fixed date time stamp in end-to-end test | @AirQuick, @galtm | |
#560 | Test the pending scenario labels in xspec-focus-2.xspec | @AirQuick, @galtm | |
#561 | Make focus and pending attributes unique in xspec-focus-1, xspec-focus-2 and xspec-pending.xspec | @AirQuick, @galtm | |
#566 | Replace test/end-to-end/cases/schematron-01.* with x:import | @AirQuick, @galtm | |
#571 | Add test and comment for handling whitespace-only text node | @AirQuick, @galtm | |
#574 | Update test deps (as of 2019-05-16Z) | @AirQuick | |
#581 | Update test deps (as of 2019-07-02Z) | @AirQuick | |
#585 | Set dist trusty in .travis.yml | @AirQuick | |
#539 | Fix typo 'inherrit' in schematron-012.xspec | @AirQuick, @galtm | |
#564 | Address SXWN9000 (child::div) in schut-to-xspec-012.sch | @AirQuick, @galtm |
Documentation
Issue | PR | Description | Contributors |
---|---|---|---|
#475 | Document <x:variable> | @galtm, @AirQuick | |
#392 | #471 | Move oXygen documentation from build.xml to Wiki | @AirQuick, @cirulls |
#516 | Add wiki page with XSpec's Related Projects | @cirulls, @nkutsche, @josteinaj, @AirQuick | |
#493 | Remove an inapplicable comment from build.xml | @AirQuick | |
#526 | #527 | Update annotations for xspec.result.html and xspec.coverage.html Ant properties | @AirQuick |
#582 | Add tips on How to Run the Test Suite Locally | @galtm, @AirQuick | |
#555 | #556 | Document xspec.schematron.preprocessor.step* Ant properties | @AirQuick, @galtm |
v1.3.0
Summary
Release v1.3.0 introduces new features and enhancements, fixes bugs, and improves the test suite and the documentation. These are the highlights for XSpec v1.3.0:
- Various bugs in the report files have been fixed (#177, #355, #367, etc.)
- Handling whitespace-only text nodes has been fixed and documented (#346, etc.)
- Testing Schematron with text nodes has been improved and documented (#396, etc.)
- Code Coverage has been stabilized (#214, #354, etc.)
- Some XQuery bugs have been fixed (#440, #441, etc.). Other known bugs will be fixed in the next release.
- Source document at runtime has been removed (#423). Some XSpec users may be surprised when they find their XSpec crashing on the v1.3.0 release but the fact is that such stylesheets were running on XSpec just luckily.
Many thanks to the many XSpec contributors who made this release possible. They are listed next to the relevant code change (the first name is usually the person who started the pull request, the next names are people who contributed or reviewed the pull request).
New features and enhancements
Issue | PR | Description | Contributors |
---|---|---|---|
#321 | Common utils | @AirQuick | |
#324 | Centralize catalog resolver function | @AirQuick | |
#336 | Indent XQuery report XML | @AirQuick | |
#354 | Write coverage XML to file | @AirQuick | |
#369 | Remove disable-output-escaping | @AirQuick | |
#371 | Organize namespace prefixes | @AirQuick | |
#374 | Simplify test:serialize templates | @AirQuick | |
#376 | Flags for test:deep-equal() | @AirQuick | |
#378 | Rename test:report-value to report-sequence or report-node | @AirQuick | |
#381 | Compile in UTF-8 | @AirQuick | |
#382 | Remove unnecessary namespace alias | @AirQuick | |
#383 | Use common functions to wrap nodes in document node | @AirQuick | |
#388 | Use generic font families | @AirQuick | |
#390 | Add xsl:otherwise (in preparation for Saxon 9.9) | @AirQuick | |
#408 | Ant: Parameterize Schematron XSLT file path | @AirQuick | |
#411 | Ant: Extract Schematron parameters from XSpec file | @AirQuick | |
#417 | Publish x:text text node constructor (formerly x:space) | @AirQuick | |
#419 | Simplify coverage report H2 text | @AirQuick | |
#423 | #435 | Provide .xspec file URI at runtime | @AirQuick |
#423 | #436 | Remove runtime source document (XQuery) | @AirQuick |
#442 | Import XQuery module without prefix if not required | @AirQuick | |
#456 | Define EQName in schema | @AirQuick |
Bug fixes
Issue | PR | Description | Contributors |
---|---|---|---|
#322 | Fix Schematron temporary context file location | @AirQuick | |
#325 | Fix command line Schematron to resolve URI with catalog | @AirQuick | |
#226 | #329 | JUnit report is not indented | @AirQuick, @cirulls |
#211 | #330 | JUnit report: Premature end of failure element text | @AirQuick |
#333 | Remove unused namespaces from junit-report.xsl | @AirQuick | |
#334 | Fix URI in XQuery report HTML | @AirQuick | |
#337 | Remove unused xmlns:pkg from XQuery report XML | @AirQuick | |
#339 | Fix xml-stylesheet processing instruction in XSLT report XML | @AirQuick | |
#214 | #342 | Fix coverage-report.xsl fails to parse CDATA | @AirQuick |
#204 | #343 | xspec.sh fails to generate code coverage report when stderr contains other outputs | @AirQuick |
#208 | #344 | Non alphanumeric path can make code coverage fail | @AirQuick |
#177 | #345 | Unhelpful report when test attribute is a boolean | @AirQuick |
#348 | Schema: Add common-attributes to global-param | @AirQuick, @galtm | |
#350 | Schema: Add as? to global-param | @AirQuick, @galtm | |
#351 | Remove inconsistent xml-model processing instructions | @AirQuick | |
#346 | #353 | Comparison always discards whitespace-only text nodes | @AirQuick |
#356 | #366 | ! is missing from reported comment | @AirQuick |
#368 | Replace CSS CR LF with LF | @AirQuick | |
#370 | Fix image path in format-xspec-report-folding.xsl | @AirQuick | |
#359, #367 | #375 | Fix serialization bugs | @AirQuick |
#377 | Fix HTML report diff issue when a child node is indented | @AirQuick | |
#355, #357, #358, #360, #361 | #380 | Fix broken report for XSLT | @AirQuick |
#379 | #384 | Ellipsis in Result does not have style | @AirQuick |
#386 | #387 | Significant whitespace-only text node in the report HTML does not have style | @AirQuick |
#404 | Remove /q option from DEL command in xspec.bat | @AirQuick | |
#410 | Command line: Extract Schematron parameters from XSpec file | @AirQuick | |
#412 | #413 | select with href or child node always sorts nodes and eliminates duplicates | @AirQuick |
#420 | Report whitespace-only text nodes on XQuery | @AirQuick | |
#427 | Fix XQuery TODO in generate-tests-utils.xspec (x:param) | @AirQuick | |
#428 | Fix x:expect FIXME in generate-query-tests.xsl | @AirQuick | |
#308 | #432 | x:label affects expectation for XQuery | @AirQuick |
#423 | #437 | Remove source document at runtime (XSLT) | @AirQuick |
#438 | #439 | x:label affects attribute(test) evaluation on XQuery | @AirQuick |
#440 | #443 | XQuery x:expect with select and test is terminated with XPTY0004 | @AirQuick |
#441 | #444 | XQuery x:expect with href and test is terminated with XPTY0004 | @AirQuick |
#29, #453, #538 | #454 | Fix XSLT ns prefix is changed, x:context/x:param curly bracket, and add test for AVT in user content | @AirQuick, @cmarchand, @galtm |
#445 | #455 | Cannot use EQName in name attributes | @AirQuick |
#452 | #455 | XQuery report XML describes parameters incorrectly when not element | @AirQuick |
#458 | Test ... on XQuery and fix reporting node order | @AirQuick |
Tests
Issue | PR | Description | Contributors |
---|---|---|---|
#323 | Relativize links in expected results of end-to-end test | @AirQuick | |
#326 | Regression test for code coverage | @AirQuick | |
#327 | Regression test for schema-aware XSLT | @AirQuick | |
#328 | Compare namespace, comment and processing instruction in end-to-end test | @AirQuick | |
#331 | Run end-to-end test for XQuery | @AirQuick | |
#332 | Remove xquery-tutorial from end-to-end test | @AirQuick | |
#520 | JUnit end-to-end test: More specific template result type | @AirQuick | |
#335 | Test XML report files (as well as HTML and JUnit) | @AirQuick | |
#340 | End-to-end test for schema-aware XSLT | @AirQuick | |
#341 | Test code coverage report files (as well as XML, HTML and JUnit) | @AirQuick | |
#347 | Test for base URI | @AirQuick, @galtm | |
#349 | Test for x:param/attribute(as) | @AirQuick, @galtm | |
#352 | Test for whitespace-only text node | @AirQuick, @galtm | |
#363 | Test more .xspec files and schema | @AirQuick | |
#364 | Fix xspec-result-naming-collision.xspec label | @AirQuick | |
#362 | #365 | Test the report files of xspec-result-naming-collision.xspec | @AirQuick |
#372 | Test cases for serialization | @AirQuick | |
#151 | #385 | Test terminates with FOTY0012 in test:report-sequence on XSLT | @AirQuick |
#405 | Reset public environment variables before running tests | @AirQuick | |
#407 | Test more cleanly with Schematron XSLTs provided externally | @AirQuick | |
#409 | Verify the whole output dir | @AirQuick | |
#421 | Update test deps (as of 2018-11-12Z) | @AirQuick | |
#424 | Add attribute(as) to some risky x:param in tests | @AirQuick | |
#425 | Transfer a test for test:node-deep-equal() to test:deep-equal() | @AirQuick | |
#426 | Rename test:create-xslt-generator mode to test:create-node-generator | @AirQuick | |
#429 | Fix a test error in xspec-three-dots.xspec (multiple nodes in a document) | @AirQuick | |
#430 | Test for issue 59 use case 2 on XQuery | @AirQuick | |
#431 | Test node-selection on XQuery | @AirQuick | |
#423 | #433 | Add XSLT test for source document at runtime (XProc) | @AirQuick |
#423 | #434 | Add XQuery test for source document at runtime | @AirQuick |
#457 | Make xspec-three-dots.xspec more portable | @AirQuick |
Documentation
Issue | PR | Description | Contributors |
---|---|---|---|
Release Workflow | @cirulls, @AirQuick, @cmarchand | ||
#326 | How to run the test suite locally (Ant update) | @AirQuick, @galtm | |
#521 | Fix up namespaces in Compilation.md | @AirQuick, @galtm | |
#526 | Document xspec.result.html and xspec.coverage.html Ant properties | @AirQuick | |
#346 | #352, #353 | Whitespace-only Text Nodes | @AirQuick |
#373 | Annotate format-*.xsl | @AirQuick | |
#517 | Update Function Scenario section | @AirQuick, @cmarchand | |
#389 | Minor edit in XSLT files | @AirQuick | |
#396 | #411 | Testing Schematron with Text Nodes | @AirQuick |
#555 | #411 | Document xspec.schematron.preprocessor.step* Ant properties | @AirQuick |
#417 | [x:text](https... |
v1.2.0
Summary
Release v1.2.0 introduces new features, bugs fixes, tests, and documentation. We want to highlight:
- New features: try out the new Ant build support (for XQuery, code coverage and JUnit) and check out the documentation to run it on oXygen.
- Bug fixes: a long standing bug related to attributes in functions and named templates has now been fixed.
- Tests: we have more than 100 tests running on our CI systems.
- Documentation: use the code coverage feature following the updated tutorial and contribute to XSpec by running the test suite locally.
Many thanks to the many XSpec contributors who made this release possible. They are listed next to the relevant code change (the first name is usually the person who started the pull request, the next names are people who contributed or reviewed the pull request).
New features
Issue | PR | Description | Contributors |
---|---|---|---|
#266 | Add Ant build support for XQuery | @AirQuick, @cirulls | |
#235 | #268 | Support for SAXON_CUSTOM_OPTIONS in command line | @AirQuick, @duenckel, @tofi86, @cirulls |
#147 | #279 | Add Ant build support for code coverage | @AirQuick, @yamahito, @cirulls |
#281 | Add Ant build support for JUnit | @AirQuick, @cirulls | |
#464 | Make find more robust in xspec.bat | @hschmull, @AirQuick, @tofi86 | |
#307 | Schema: Move node-selection's href and user-content into choice | @AirQuick, @galtm | |
#309 | Warn if x:expect is ambiguous (node-selection with boolean test attribute) | @AirQuick | |
#313 | Define version and xslt-version attributes as decimal | @AirQuick | |
#283 | Add .gitattributes file to checkout shell scripts on Windows with LF line endings | @tofi86, @AirQuick |
Bug fixes
Issue | PR | Description | Contributors |
---|---|---|---|
#185 | #282 | Imported scenario order is unstable | @AirQuick, @cirulls |
#292 | Fix typo (paramater) | @AirQuick, @cirulls | |
#294 | Fix xspec.bat to accommodate 11+ params | @AirQuick, @cirulls | |
#297 | Fix xspec.bat to print help when nothing provided | @AirQuick, @cirulls | |
#302 | Minor edit in xspec.bat and bats | @AirQuick, @cirulls | |
#303 | Do not allow -c with -q or -s | @AirQuick, @cirulls | |
#414 | #415 | Add java path to compiler and Saxon dependencies | @cmarchand, @cirulls |
#308 | #312 | Fix x:label affects expectation for XSLT | @AirQuick |
#67 | #315 | Cannot compare namespace node | @AirQuick |
#59 | #317 | x:expect/@test terminates when function or template returns attribute |
@AirQuick, @AxelCourt |
#153 | #319 | Test terminates with XPTY0004 in defining $impl:successful | @AirQuick |
Tests
Issue | PR | Description | Contributors |
---|---|---|---|
#267 | Test Ant saxon.custom.options property | @AirQuick, @cirulls | |
#269 | Run unit test for XQuery (via Ant) | @AirQuick, @cirulls | |
#280 | Reorganize end-to-end test processor | @AirQuick, @cirulls | |
#284 | Separate test and driver in xspec-bat.cmd | @AirQuick, @cirulls | |
#285 | Simplify test case in xspec-bat.cmd (embed in XML) | @AirQuick, @cirulls | |
#286 | Simplify test case in xspec-bat.cmd (ifdef) | @AirQuick, @cirulls | |
#287 | Print Windows test output in color | @AirQuick, @cirulls | |
#289 | Make tests independent of working environment | @AirQuick, @cirulls | |
#291 | Align bats tests | @AirQuick, @cirulls | |
#293 | Fix normalization of XQuery test result HTML in end-to-end test | @AirQuick, @cirulls | |
#295 | Check git status at the end of the tests | @AirQuick, @cirulls | |
#206 | #296 | Establish baseline JDK for code coverage class file | @AirQuick, @cirulls |
#300 | Basic test for code coverage (Ant) | @AirQuick, @cirulls | |
#301 | Basic test for code coverage (command line) | @AirQuick, @cirulls | |
#60 | #304 | Comment out pending invalid scenario in xspec-rule.xspec | @AirQuick |
#305 | Include test/end-to-end/cases/ in schema validation test | @AirQuick | |
#306 | Include tutorial/coverage/ in schema validation test | @AirQuick | |
#310 | Test mode=x:setup-context | @AirQuick | |
#314 | Update test dependencies (as of 2018-08-30Z) | @AirQuick | |
#316 | Do not include generate-tests-utils.xsl twice in generate-x-utils.xspec | @AirQuick | |
#318 | Restore test file format | @AirQuick | |
#320 | Revise risky test attributes in tests | @AirQuick |
Documentation
Issue | PR | Description | Contributors |
---|---|---|---|
#267 | Document property saxon.custom.options in Ant | @AirQuick | |
#268 | Document environment variable SAXON_CUSTOM_OPTIONS | @AirQuick | |
#289 | How to Run the Test Suite Locally | @cirulls, @AirQuick | |
#196 | #299 | Update tutorial for code coverage | @AirQuick, @galtm |
#499 | Update readme | @cirulls, @AirQuick | |
#311 | Fix $impl:context comment | @AirQuick | |
#317 | Update Writing Scenarios documentation | @AirQuick | |
#508 | Move Compilation.md from Wiki | @AirQuick, @galtm, @cirulls | |
#418 | Update references to Maven plugin | @AirQuick, @yamahito, @cmarchand |