diff --git a/.github/workflows/itest.yml b/.github/workflows/itest.yml index d2e485e..3a6c79b 100644 --- a/.github/workflows/itest.yml +++ b/.github/workflows/itest.yml @@ -40,8 +40,8 @@ jobs: node: [ 16 ] # lang: [Java, JavaScript] lang: [ Java ] - parser: [ 0.48.1 ] - tag: [ 0.48.1 ] + parser: [ 0.48.2 ] + tag: [ 0.48.2 ] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -55,7 +55,7 @@ jobs: - run: npm install - run: | cd itest - node ../src/eoc.js "--parser=${{ matrix.parser }}" "--home-tag=${{ matrix.tag }}" --batch "--language=${{ matrix.lang }}" dataize program - node ../src/eoc.js "--parser=${{ matrix.parser }}" "--home-tag=${{ matrix.tag }}" --batch --alone "--language=${{ matrix.lang }}" dataize program + node ../src/eoc.js "--parser=${{ matrix.parser }}" "--home-tag=${{ matrix.tag }}" --batch "--language=${{ matrix.lang }}" --easy dataize program + node ../src/eoc.js "--parser=${{ matrix.parser }}" "--home-tag=${{ matrix.tag }}" --batch --alone "--language=${{ matrix.lang }}" --easy dataize program node ../src/eoc.js clean - node ../src/eoc.js "--parser=${{ matrix.parser }}" "--home-tag=${{ matrix.tag }}" --batch "--language=${{ matrix.lang }}" test + node ../src/eoc.js "--parser=${{ matrix.parser }}" "--home-tag=${{ matrix.tag }}" --batch "--language=${{ matrix.lang }}" --easy test diff --git a/eo-version.txt b/eo-version.txt index cffa44c..e85205d 100644 --- a/eo-version.txt +++ b/eo-version.txt @@ -1 +1 @@ -0.48.1 +0.48.2 diff --git a/home-tag.txt b/home-tag.txt index cffa44c..e85205d 100644 --- a/home-tag.txt +++ b/home-tag.txt @@ -1 +1 @@ -0.48.1 +0.48.2 diff --git a/mvnw/pom.xml b/mvnw/pom.xml index 92310c5..024cf19 100644 --- a/mvnw/pom.xml +++ b/mvnw/pom.xml @@ -99,6 +99,8 @@ SOFTWARE. 3.5.2 true + false + false diff --git a/src/commands/lint.js b/src/commands/lint.js index 6d41f7b..cecfd78 100644 --- a/src/commands/lint.js +++ b/src/commands/lint.js @@ -33,13 +33,22 @@ const semver = require('semver'); * @return {Promise} of assemble task */ module.exports = function(opts) { + const extra = [ + `-Deo.failOnWarning=${opts.easy ? 'false' : 'true'}`, + ]; if (semver.gte(opts.parser, '0.45.0')) { - return mvnw(['eo:lint'].concat(flags(opts)), opts.target, opts.batch).then((r) => { + return mvnw( + ['eo:lint'].concat(flags(opts)).concat(extra), + opts.target, opts.batch + ).then((r) => { console.info('EO program linted in %s', rel(path.resolve(opts.target))); return r; }); } else { - return mvnw(['eo:verify'].concat(flags(opts)), opts.target, opts.batch).then((r) => { + return mvnw( + ['eo:verify'].concat(flags(opts)).concat(extra), + opts.target, opts.batch + ).then((r) => { console.info('EO program verified in %s', rel(path.resolve(opts.target))); return r; }); diff --git a/src/eoc.js b/src/eoc.js index d048a16..031b9e6 100755 --- a/src/eoc.js +++ b/src/eoc.js @@ -91,7 +91,7 @@ if (process.argv.includes('--latest')) { // latest hash of the objectionary/home repository, and then // set it to the "hash" variable? } else { - console.debug('EO parser ' + parser + '; use the --latest flag if you need a freshier one'); + console.debug(`EO parser ${parser}; use the --latest flag if you need a freshier one`); } const version = require('./version'); @@ -100,17 +100,17 @@ program .usage('[options] command') .summary('EO command line toolkit') .description( - 'EO command-line toolkit (' + - version.what + ' built on ' + version.when + - '): https://github.com/objectionary/eoc' + `EO command-line toolkit (${version.what}) ` + + `built on ${version.when}): https://github.com/objectionary/eoc` ) - .version(version.what, '-v, --version', 'Output the version number') + .version(version.what, '-v, --version', `Just print the number of the version (${version.what})`) .helpOption('-?, --help', 'Print this help information') .configureHelp({sortOptions: true, sortSubcommands: true}); program .option('-s, --sources ', 'Directory with .EO sources', '.') .option('-t, --target ', 'Directory with all generated files', '.eoc') + .option('--easy', 'Ignore "warnings" and only fail if there are "errorst" or "criticals"') .option('--home-tag ', 'Git tag in objectionary/home to compile against', tag) .option('--parser ', 'Set the version of EO parser to use', parser) .option('--latest', 'Use the latest parser version from Maven Central') diff --git a/src/mvnw.js b/src/mvnw.js index dff8238..e110ae3 100644 --- a/src/mvnw.js +++ b/src/mvnw.js @@ -55,8 +55,8 @@ module.exports.flags = function(opts) { const target = path.resolve(opts.target); console.debug('Target in %s', rel(target)); return [ - '-Deo.version=' + opts.parser, - '-Deo.tag=' + (opts.homeTag ? opts.homeTag : opts.parser), + `-Deo.version=${opts.parser}`, + `-Deo.tag=${opts.homeTag ? opts.homeTag : opts.parser}`, opts.verbose ? '--errors' : '', opts.verbose ? '' : '--quiet', opts.debug ? '--debug' : '', diff --git a/test/commands/test_compile.js b/test/commands/test_compile.js index 3ac76c5..4bb94a7 100644 --- a/test/commands/test_compile.js +++ b/test/commands/test_compile.js @@ -39,6 +39,7 @@ describe('compile', function() { 'compile', `--parser=${parserVersion}`, `--home-tag=${homeTag}`, + '--easy', '-s', path.resolve(home, 'src'), '-t', path.resolve(home, 'target'), ]); @@ -74,6 +75,7 @@ describe('compile', function() { const stdout = runSync([ 'compile', '--verbose', + '--easy', `--parser=${parserVersion}`, `--home-tag=${homeTag}`, '-s', path.resolve(home, 'src'), @@ -98,6 +100,7 @@ describe('compile', function() { runSync([ 'compile', '--clean', + '--easy', `--parser=${parserVersion}`, `--home-tag=${homeTag}`, '-s', path.resolve(home, 'src'), diff --git a/test/commands/test_dataize.js b/test/commands/test_dataize.js index 1a140b3..97d07bd 100644 --- a/test/commands/test_dataize.js +++ b/test/commands/test_dataize.js @@ -29,6 +29,7 @@ const {runSync, parserVersion, homeTag, weAreOnline} = require('../helpers'); const options = [ {lang: 'Java', version: parserVersion, tag: homeTag}, + {lang: 'Java', version: '0.48.1', tag: '0.48.1'}, {lang: 'Java', version: '0.46.0', tag: '0.46.0'}, {lang: 'Java', version: '0.45.0', tag: '0.45.0'}, {lang: 'Java', version: '0.44.0', tag: '0.44.0'}, @@ -63,6 +64,7 @@ describe('dataize', function() { '--stack=64M', '--heap=1G', '--clean', + '--easy', `--parser=${version}`, `--home-tag=${tag}`, '-s', path.resolve(home, 'src'), @@ -93,6 +95,7 @@ describe('dataize', function() { const stdout = runSync([ 'dataize', 'simple', '--clean', + '--easy', `--parser=${parserVersion}`, `--home-tag=${homeTag}`, '-s', home, diff --git a/test/commands/test_link.js b/test/commands/test_link.js index 71b94a5..57907bb 100644 --- a/test/commands/test_link.js +++ b/test/commands/test_link.js @@ -53,11 +53,12 @@ describe('link', function() { return runSync([ 'link', '--verbose', + '--easy', `--parser=${parserVersion}`, `--home-tag=${homeTag}`, '-s', path.resolve(home, 'src'), '-t', path.resolve(home, 'target'), - '--language=' + lang, + `--language=${lang}`, ]); }; it('compiles a simple .EO program into an executable .JAR', function(done) { diff --git a/test/commands/test_lint.js b/test/commands/test_lint.js index d5570f2..6f95d2c 100644 --- a/test/commands/test_lint.js +++ b/test/commands/test_lint.js @@ -38,6 +38,7 @@ describe('lint', function() { const stdout = runSync([ 'lint', '--verbose', + '--easy', '--track-optimization-steps', `--parser=${parserVersion}`, `--home-tag=${homeTag}`, diff --git a/test/commands/test_sodg.js b/test/commands/test_sodg.js index 97ff1c8..ce24580 100644 --- a/test/commands/test_sodg.js +++ b/test/commands/test_sodg.js @@ -39,6 +39,7 @@ describe('sodg', function() { 'sodg', `--parser=${parserVersion}`, `--home-tag=${homeTag}`, + '--easy', '--verbose', '--dot', '--include=simple', diff --git a/test/commands/test_test.js b/test/commands/test_test.js index a75afd4..0a111b4 100644 --- a/test/commands/test_test.js +++ b/test/commands/test_test.js @@ -57,11 +57,12 @@ describe('test', function() { return runSync([ 'test', '--verbose', + '--easy', `--parser=${parser}`, `--home-tag=${hash}`, '-s', path.resolve(home, 'src'), '-t', path.resolve(home, 'target'), - '--language=' + lang + `--language=${lang}` ]); }; diff --git a/test/commands/test_transpile.js b/test/commands/test_transpile.js index 40922e7..fdfa5ea 100644 --- a/test/commands/test_transpile.js +++ b/test/commands/test_transpile.js @@ -47,11 +47,12 @@ describe('transpile', function() { return runSync([ 'transpile', '--verbose', + '--easy', `--parser=${parserVersion}`, `--home-tag=${homeTag}`, '-s', path.resolve(home, 'src'), '-t', path.resolve(home, 'target'), - '--language=' + lang, + `--language=${lang}`, ]); }; diff --git a/test/helpers.js b/test/helpers.js index d77e487..82bc88b 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -72,7 +72,7 @@ module.exports.assertFilesExist = function assertFilesExist(stdout, home, paths) const abs = path.resolve(home, p); assert( fs.existsSync(abs), - stdout + '\nFile ' + abs + ' is absent' + `${stdout}\nFile ${abs} is absent` ); }); };