- Issue #1516 It is now possible to only generate datamodel images using --datamodelOnly
- Issue #1482 Fix technical debd from merging Ampersand 4 into Ampersand 5
- Issue #137 We now support transitive closures
- Issue #1512 Remove old and broken code for generating uml
- fixed an issue with the release: Executables are added to the artefacts again.
- Security fix Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows
- Add windows executable as artifact in releases
- Issue #1498 Bugfix for an issue with P_Concept. That should not contain a label.
- Issue #1499 Bugfix with the atlas importer
- Issue #1496 .json file can now be parsed as import from the Atlas
- Issue #1381 Bugfixes for support for new Angular frontend
- Drop support for old AngularJS frontend
- Support for Windows has been re-enabled
- Issue #1307 Bugfixes for namespace phase 1
- Some enhancements for the .devcontainer
- Upgrade development toolstack to ghc 9.6.4 This involved upgrades of several dependencies.
- We discontinue support for Windows. This is due to the upgrade of xlsx (used for the .xlsx reader/writer), which now uses hexpat. We see no longer value in supporting windows, because of the Docker support we have.
- Eliminated warnings and hints in CI/CD and in Haskell code. Doing some tests for a strange issue with stack
- Some adaptions to w.r.t. the namespaces, in the generated funcional specification.
- Issue #1307 First phase of introducing namespaces in Ampersand.
- Issue #1315 Documentation update: landing pages for target audience, governance info for the Ampersand project added.
- Align Ampersand jargon: use the word Term instead of Expression in the documentation and error messages.
- Project about documentationCombined documentation of several repositories into a single site.
- Brackets in the natural language formatting were erroneous, so Stef fixed it. This helps to resolve a little bit of our technical debt.
- Issue #1369 update of CI/CD stuff.
- Issue #1419 added a test, to be activated in the regression after resolving #1419.
- Issue #1420 added a test, to be activated in the regression after resolving #1420.
- Issue #1421 added easier development through Docker image at dockerhub: ampersandtarski/ampersand-devcontainer. Also fixes #1359
- Development of Ampersand generator can now be done with codespaces (Check it out!).
- Issue #1381 Generate prototype with Angular frontend (alpha version)
- Issue #1281 (extra fix after reopening of issue) Final fix an omision in typecheck of ENFORCE statement.
- Technical release, to fix the automation of releasing. No functional differences with v4.7.2.
- Issue #1315 Documentation update: landing pages for target audience, governance info for the Ampersand project added.
- Align Ampersand jargon: use the word Term instead of Expression in the documentation and error messages.
- Project about documentationCombined documentation of several repositories into a single site.
- Minor update of the devcontainer.
- Issue #1369 update of CI/CD stuff.
- Issue #1389 Bugix.
- make the devcontainer experience even smoother (see haskell/hie-bios#352)
- Issue #1313 Fixed a minor bug in the Archi analyser.
- Improve the usability of the MetaModel.adl file, which is output of
ampersand data-analysis
. - Issue #987 Fixed a bug in the Excel parser.
- refactoring Archimate parser
- Issue #1321 Stricter testing of the prettyprinter/parser roundtrip.
- Issue #1090 Fixed a bug in the parser for DateTime values (UTCTime values are supported now).
- Issue #1293 Fixed a bug in expressions of the form
r;V;s
- Improve devcontainer functionality for developers of Ampersand.
- Issue #1281 Fix an omision in typecheck of ENFORCE statement.
- Generate multiple error messages when appropriate
- Issue #1267 Automatically add ReleaseNotes to release artefacts
- Issue #1275 Fix duplicate pattern bug
- Bugfix grinding metapopulation for Prototypes. Bug was introduced by a refactoring done in v4.3.0
-
Improvements to the conceptual analysis to make it more practical to generate a proper design document. As an information systems designer, I want that: ** the purpose of an IDENT statement is used in the text of a conceptual analysis; ** a definition that follows a purpose belong together visually to avoid confusion for the reader; ** an empty table is not shown because the reader will not understand why it is there; ** an arrow between two entities, one of which is inside a pattern and the other one outside of it, is drawn in the conceptual diagram of that pattern; ** the order of attributes or relations in a table respects the order in the script, so the author can influence that order in a predictable way.
-
The text that is generated by default is substituted by text from the purpose statement, rather than added to it. This provides a simple way to get rid of the introductory text if it doesn't fit your purpose.
-
Upgrade devcontainer to work with ghc-8.10.7 as well. Also some other enhancements like autoformat.
-
Issue #1261 Fix bug on SQL generation, that got broken during the upgrade in version v4.6.1
-
Issue #1262 Fix merge conflicts that unintendedly reintroduced CLI options --force-reinstall-framework, --prototype-framework-version, --customizations
- Upgrade to LTS Haskell 18.18 (ghc-8.10.7) . This includes an upgrade of several dependencies.
- The Archimate extension has been made compilable again, which was necessary since RIO is being used. This affects the "feature/Archimate extension" branch.
- Format all Haskell code, for more uniformity, better understanding of code.
- Issue #prototype/69 Auxiliary work to facilitate the implementation of the new Angular frontend.
- Issue #425 Add check on release notes for every pull request
- Issue #941 Fix and document purpose and difference of attNull and attDBNull aspects of SqlAttribute
- Issue #1093 Don't download prototype framework from github anymore. The framework must be deployed first via another method (manual, docker or composer+packagist)
- Removed CLI options: --force-reinstall-framework, --prototype-framework-version, --customizations
- Added CLI option: --(no-)frontend to specify if the compiler must generate frontend files (default enabled)
- Added CLI option: --(no-)backend to specify if the compiler must generate backend config files (default enabled)
- Added CLI option: --(no-)check-compiler-version to specify if compiler must check prototype framework compatibility (default enabled)
- Issue #1231 Enable the generation of a logical data model (graphic) where the entities are grouped per pattern.
- Issue #1253 Bugfix 'ampersand: No match in record selector aavtxt'
- Issue #1189 Replace the previous solution. Now the defaults can be given in the
RELATION
statement.
New CI workflow for releases to be pushed automatically to DockerHub with semver. Image is needed by prototype framework in Docker build.
- Fix CI script for automatic build push to Docker Hub. Note! Release tags should now have format 'vX.Y.Z' instead of 'Ampersand-vX.Y.Z' for semver pattern to work
- Merge docker build into existing CI script. Prevent duplicate jobs, trigger on pull_request not needed.
- Issue #1212 Solved issue with trailing whitespace.
- PR #1210 Partial implementation for Issue #1189. The prototype still has to be adapted, so this issue isn't closed yet.
- PR #1201 Changes to Transformers.hs for the new RAP release.
- Issue #1171 Duplicate labels in VIEW will now result in error, not warning.
- Issue #1204 Introduction of ENFORCE statement.
- Issue #1194 Ampersand will output the options in debug mode.
- Issue RAP #123 To enhance the Atlas in RAP to an acceptable minimal level, some changes in Ampersand are required.
- Issue #1196 Allow multiple files on the command line. The second to last files are handled as if they were INCLUDEd in the first one.
- In the generated documentation, the Conceptual Analysis chapter has been revised to be readable by stakeholders with some knowledge of conceptual modeling.
- Issue #1171 Warn about labels with identical names in sections of VIEW statement.
- Issue #1163 Idenfifiers starting with an underscore (
_
) are no longer allowed. - Issue #1183 Use markup in definition of Concept is now possible.
- Improvements to the way we test the build (CI/CD).
- Upgrade to LTS Haskell 17.9 (ghc-8.10.4) . This includes an upgrade of Pandoc. This might affect tables in the documentation that is generated with the
documentation
command. - Add switch
--numeric-version
- Improvement to the CI/CD. We abandon travis-ci and appveyor, and are now totally using github actions for our Continous Integration.
- Issue #1131 remove COLS and ROWS from the parser and from other parts of the Ampersand compiler.
- Issue #1070 Remove CLI options dbHost, dbName, dbUser and dbPass. These are part of the prototype framework and can be specified as config or environment variable as described here: https://github.com/AmpersandTarski/prototype/tree/development/config
- internal refactorings
- Add devcontainer functionality for developers of Ampersand
- Generate better error when graphviz isn't installed and is required
- Issue #1107 Daemon doesn't correctly ignore invariant violations
- Issue #1067 Docker build push to Docker hub instead of Github package repo
- Issue #1084 Add template attributes to BOX syntax
- Breaking change Because of the implementation of feature of #1084 we could greatly reduce the number of BOX templates (e.g. ROWS, ROWSNL, HROWS and HROWSNL are merged into a single template). Documentation of new templates can be found here.
This breaking change presented an opportunity to rename the built-in templates to more self explaining template names:
- ROWS -> BOX <FORM>
- COLS -> BOX <TABLE>
- TABS -> BOX <TABS>
- Update default prototype framework version to v1.6.0, which includes new templates as described above
- Small bugfixes and refactorings
- Issue #1026 Allow PATTERNs with the same name. Meaning: all declarations from patterns with the same name are merged into one.
- Issue #1081 Disable invariant checking for documentation.
- Issue #988 Add switch to disable warnings with
ampersand daemon
command
- Refactor Docker image for Ampersand compiler
- Add continuous integration via Github Actions. With cache.
- Issue #991 CLI interface has changed. Changes are documented in Commands.md
- Issue #1029 Fixed detection of rules with same name.
- Issue #1047 Non-existing directory is generated automagically when required for output.
- Issue #999 Treat all concepts in a cycle in CLASSIFY statements as aliases of a single concept.
- Issue #1056 Bugfix in .xlsx parser
- Issue #1054 Ampersand daemon now also reports type errors
- Issue #1063 Return violations of invariants with standard check
- Issue #735 Upgrade to pandoc 2.9.
- Remove option --skip-composer. Relates to topic of Archicture of Ampersand compiler
- Introduce option --[no-]frontend to do/don't generate frontend (i.e. javascript and html files for Angular app)
- Introduce option --[no-]backend to do/don't generate backend (i.e. json model for php framework)
- Remove default value 'customizations' for option --customizations. Copying folders must be explicitly specified.
- Change default output folder to .proto instead of '<scriptname.adl>.proto' for prototype generation.
- Update to prototype framework v1.4.0
- Upgrade to LTS Haskell 14.5 (ghc-8.6.5)
- Allow interface roles to be editable. Accessible interfaces for a given role are now queries from database instead of generated json files (requires update of prototype framework)
- Update to prototype framework v1.3.0
- Issue #921 Third round of enhancements for RIO.
- Removed depricated stuff: keywords "EDITS", "PROCESS" and "ENDPROCESS". EDITS did not have any effect at all since about 2015, (END)PROCESS has been the same as (END)PATTERN for a long time.
- Again some major refactoring has been done to leverage the RIO library.
- Issue #976 Lines in --deamon configuration file can be commented out by prepending such line with "#" or "--" (MUST be at beginning of line)
- Issue #971 The functionality of meatgrinding has been refactored. It is now far more composable. It is expected that in the near future this will lead to a set of different switches.
- A lot of refactoring took place this release, embracing best practices from the RIO library. First phase. In the next couple of releases, we plan to gradually do more of this refactoring.
- Issue #923 Lexer error message had disappeared. Now they show again.
- Issue #925 Add warning when a script contains
BOX <ROWSNH>
, for this is deprecated and could result in an error when a prototype is being generated. - Issue #578 Implement meta model for navigation menu
- Issue #932
--daemon
now has an optional parameter to tell what config file is used. defaults to.ampersand
. - Issue #903 Add switch to skip installing php dependencies (using Composer package manager).
- Issue #952 Fixed bug causing the ampersand daemon to crash when an .xlsx file had an error.
- Upgrade to prototype framework v1.2.0. Needed for Issue #578
- Issue #578 Improvements on the way the navigation bar of a prototype works.
- New switch: --daemon. This enables automatic checking of your scripts as you type. Very nice in combination with the vscode extension Ampersand language support.
- Issue #920 Warnings are generated for concepts/relations with names that are equal except for the caseing.
- Minor bugfixes and enhanced automatic build/release
- Hotfix: update to prototype framework v1.1.1. See releases for more information
- Issue #890 Add static check for subinterfaces. The target concept of it must be Object, not scalar.
- Issue #894 Bugfix issue in concepts.json output for prototype
- Issue #901 Bugfix issue in displaying isa edges in graphical output.
- Update prototype framework to v1.1.0. See releases for more information
- Add 'public' folder in prototype directory to better distinguish between public and non-public scripts. If used, requires change in 'customizations' folder
- Issue #616 Add missing TType 'Object' to parser
- Issue #792 Add possibility to extend TXT in interfaces
- Issue #862 Bugfix in generated SQL in several cases where CLASSIFY statements were involved in combination with relations with the INJ property.
- Issue #865 Another bugfix in the generated SQL
- Issue #873 It is now possible to provide warnings in the output while generating a script. Several warnings are now generated as well when appropriate.
- Only run composer install when clean install of prototype framework is downloaded
- Removed --dev switch as alias of self-explanatory --ignore-invariant-violations
- Improved output of any invariant violations or signals for initial population
- Improved use of compiler when no prototype is requested (reporting violations, testing specific rules and rap population output are possible)
- Improved use of compiler when no script is provided (e.g. for --sampleConfigFile)
- Issue #879 Bugfix in the meatgrinder. Also a big performance win in generating meta-stuff.
- Issue #855 Minor enhancement in CLASSIFY statement
- Add semantics to difference in API or INTERFACE keywords.
- Issue #628 Fixed a performance issue for specific queries.
- Minor changes in the releaseing of ampersand
- Bugfix: Figures are available again in the generated specification document.
- Issue #836 Bugfix switch --force-reinstall-framework
- Issue #821 Fix error messages.
- Exit codes: code 20 was erroneously called 10. On 8 august 2018 this was discovered and fixed in
Exit.hs
when documenting error codes.
- Issue #814 More clear error message.
- Issue #798 Refactor code, to remove some double code.
- Upgrade to LTS-11.13
- PHP Backend: implement PSR6 caching interface for conjunct violation cache
- Issue #789 Introduction
API
keyword as synonym forINTERFACE
- Issue #411 Fix issue with conjunct violation cache for src/tgt atom identifiers longer than 255 chars
- Upgrade to pandoc vs 2.0
- Issue #482 Using checksum from generator to check if Ampersand model files are changed
- Issue #801 Fix a problem with empty values in .xlsx files during compilation of an .adl file
- Issue #779 Removed GenBericht module (project specific extension which is not used anymore)
- Issue #482 Add checksum for generated Ampersand model files to detect changes
- PHP Backend: integrated and refactored ExecEngine (not an extension anymore)
- PHP Backend: integrated and refactored ExcelImporter (not an extension anymore)
- PHP Backend: added functionality to import json population files via UI of ExcelImporter
- PHP Backend: now requires PHP 7.x (5.6 is not supported anymore)
- PHP Backend: added Pimple as Dependency Injection Container library
- PHP Backend: refactored creation of AngularApp, AmpersandApp and MysqlDB using Pimple container
- PHP Backend: mysql database class placed under Plug namespace
- PHP Backend: added function/method parameter and return type specifications
- PHP Backend: update from Slim v2 to v3 api framework
- Issue #770 Add configuration option to specify login page for prototype
- Issue #760 Fixed a bug causing wrong results in the prototype.
- Better performance of the generator, due to using Haskell's sets rather than lists.
- Issue #758 Fixed a bug that could cause a runtime error in edgecases
- Issue #752 Fixed a bug that could cause failure without proper error message
- Better (more uniform) diagnostic comments in SQL output
- Issue #739 Better parser error message for mismatch of values
- Issue #744 Better lexer error message for unterminated string
- Issue #741 Solved a bug that could cause invalid database state during runtime of a prototype
- Security fix: use PHP session strict mode. This prevents a user defined session ID that is never generated
- Issue #707 Bugfix issue where user input '_SESSION' was also replaced by the session id
- Issue #723 THEMES have been removed from the syntax.
- Issue #729 Bugfix issue where REPRESENT statements with DATE, DATETIME etc. is involved
- Issue #732 Create own prelude, to guarantee correct use of UTF8 everywhere in the Haskell code
It has taken some time since the last release. This release has some major work in it, and also a change of syntax of scripts. Unfortunately this is not downward compatible.
- Introduction of PrototypeContext.adl, which will be required for new interface generation, which will become available in some future release
- Upgraded to LTS-9.2
- Issue #713 New syntax for singleton expressions
- Somewhat more verbose test output
- Issue #692 Better allignment between Formal Ampersand and meatgrinder
- Issue #693 Fixed a bug about cyclic defined CLASSIFY statements
- Upgraded to LTS-8.22
- Made the meatgrinder do better static analisys, inspired by issue #684
- Issue #674 New feature for ExecEngine to navigate user to other interface
- Issue #675 Extend scope of _NEW in ExecEngine from NewStruct to complete violation statement
- Issue #666 A hint message is supplied when a case-incorrect url is used.
- Upgrade LTS Haskell 8.5, which includes GHC 8.0.2
- Minor modifications on frontend
- Issue #621 Disabled --fpa-excel switch, because it resulted in a fatal error.
- Issue #617 Minor fix in functional design document.
- Issue #624 New feature: ExecEngine can merge atoms to fix violations of univalence and other identity violations.
- Issue #625 Comparison of origins now based on canonicalized paths
- Issue #627 Fixed a bug in generation of queries for frontend
- FormalAmpersand.adl and PrototypeContext.adl are no longer used by the compiler. The metamodel is derived from the transformers, so the correspondence between the metamodel and the transformers is 100%. By definition.
- There is a new option under "proto" called "metamodel", which is meant to show the metamodel to the user.
- Issue #605 Added modules "Modules.adl" and "Patterns.adl" in FormalAmpersand as preparatory work for issue #605.
- Issue #603 Removed obsolete switches about what normalization is used.
- Issue #600 When a configuration file exists (.yaml) with the same name as the file being compiled, it will be used if no config file is explicitly mentioned in the command.
- Renamed "functional specification" to "functional design" for more realistic expectations with users.
- Restructured internal structure of modules of Ampersand.
- Issue #587 There is no need any longer to explicitly specify the language in a script. If omitted, IN ENGLISH will be used as default.
- Issue #588 PURPOSE sytax changed: Now matching brackets are:
{+
and+}
(no backwards compatibility, to enable nested comment blocks) - Added some additional diagnosis info in settings.json
- Added support for project/application and extension specific composer dependencies.
- Added 'customization' folder to prototype generation process. This folder can be used to e.g. overwrite generated views.
- Includes for frontend app must be placed in 'app' folder now. The include folder thereby directly matches the destination directory structure.
- Ampersand version info is printed in verbose mode
- New switch, to add all relations, concepts and generalisation relations of formal ampersand into your script: --add-semantic-metamodel
- Alternative definition of univalence and injectivity to get better violations on runtime.
- Some updates in the meatgrinder. (still experimental)
- Several changes in the generation of the functional design document. (Less LaTex specific)
- Upgrade version of Haskell compiler to 8.0.1 (automatically used via Stack)
- Progress on meatgrinder. Basic meatgrinder functionality is available now.
- Several bugfixes
- Issue #506 Bugfix in chapter diagnosis of Func. spec.
- Issue #483 Introduction of proper way to produce exit codes of Ampersand
- Issue #502 More stable way to generate .pdf file (LaTeX output)
- Issue #72 Symmetry of relations will be checked by a generated application
- Issue #256 Surjectivity of relations will be checked by a generated application
- Issue #345 Surjectivity of relations will be checked by a generated application
- Issue #488 Performance enhancement: Added indexes on table columns when possible
- Issue #486 Performance enhancement: Removed DISTINCT in subqueries
- Issue #459 fix for underscores in Concept name
- Issue #489 Implemented markdown for rule violation messages in frontend
- Issue #412 Partial fix for removing rows from COLS template
- Issue #373 Fix breadcrumb
- ExecEngine extension: improved logging for debugging
- Added new reporting functionality for backend framework
- DB performance: less queries because 'I[Concept]'-term is not queried anymore
- Minor backend fixes
- Fix issues regarding CRUD specifications: missing interfaces in navbar +menu, missing crudR check in templates, return content after create
- Issue #406 Minor changes on syntax of INTERFACE statement.
- Issue #438 New switch:
--include
- Issue #438 Enhancement: Introduction of a configuration file. A sample configuration file is generated when you use the switch
--sampleConfigFile
. To use a config file, use the switch--config=MyConfig.yaml
- Issue #468 Enhancement: default configuration file (when it exists)
- Issue #414 Enhancement: From now on, all text values read from .xlsx files are trimmed (leading and trailing spaces are removed), unless the switch --do-not-trim-cellvalues is given.
- More automation on releasing Ampersand.
- Frontend: Options in frontend navbar now can be defined for certain roles only (e.g. the installer and excelimporter).
- Issue #103 Fix overlap by multiple rows in navbar
- Issue #423 Database is automatically installed when it does not exists yet (first time use)
- Work on meatgrinder (still experimental!)
- Issue #152 Issue with SQL query
- Issue #436 Fix minor issue with SQL query
- Issue #231 Fix nontermination of functional document generator.
- Issue #426 and Issue #217 SQL query performance improvements.
- Back end performance: Postpone calculation of view and label for Atoms untill really needed (e.g. in interfaces)
- Added frontend switch to turn on/off auto saving changes
- Minor enhancement of generation of Logical Data Model
- Issue #416 More consisten use of views in interface definitions.
- Re-enabled output format for
--fSpec=asciidoc
- Added depth parameter in API resources call (?depth=<int>). This provides functionality to specify the depth of subinterfaces for which the content must be returned and is especially usefull for recursive (sub)interfaces using the LINKTO statement.
- Added this release notes file.
- Issue #413 Bugfix
This is the first release of 2016. We are happy announce that we have much more possibilities on creating nice interfaces for the prototype application. Apart from that, lots of bugfixes have been made, and some other features have been introduced.
We didnt make proper release notes. If you are interested, have a look at the Git history.