Releases: UST-QuAntiL/qc-atlas
Releases · UST-QuAntiL/qc-atlas
Automating the Comparison of Quantum Compilers for Quantum Circuits
This is part of the implementation for the paper "Automating the Comparison of Quantum Compilers for Quantum Circuits".
The docker-compose of all components can be found here:
https://github.com/UST-QuAntiL/nisq-analyzer-content/tree/paper/compiler-selection
Demo video: https://youtu.be/I5l8vaA-zO8
v1.1.0
Develop (#172) * Updated README (#112) * Feature/add missing publication endpoints (#108) * Added Search and Paging using new ListParameters to Publications * Adjusted Publication-Tests and RootController to use new ListParameters * Added Endpoints in Publication controller to get all linked Algorithms and Implementations * Fixed joinColumn of Publications in Algorithm model * Added linking/unlinking of Algorithms in Publication/Controller * Removed old getAlgorithm methods in PublicationService, adjusted test * Adjusted testAddAlgorithm_WithPublications test, removed cyclic cascading that leads to error in test because relation is saved twice from both sides * Adjusted PublicationControllerTest, removed unused service from PublicationController * Added missing ParametersListDoc annotation * GenericLinkAssembler toModel of Entity now adds links automatically * Removed unused import * Changed the way the linking of algorithm works with publications, now PublicationMixIn is used and publcations are added to the algorithms, no two way jointable * Removed now unused interface * Added Endpoints for linking/unlinking implementations with publications * Removed linking of implementations with publications, now publications are linkes with implementations instead (the other way around) * Readded GET-Endpoints for linked implementations in publication controller * Added Link to publications in ImplementationAssembler * Renamed publication path variable * DeleteMapping fix * Readded links for implementations in PublicationLinkAssembler * Fixed joinTable for Implementation-Publication * Renamed PublicationController methods * Fixed path variable from merge error * Feature/add search option to applicatin area endpoint (#115) * adjust applicationArea controller and service add option to search for name in application areas * Update ApplicationAreaRepository.java * add ListParametersDoc annotation * Feature/upload sketches (#114) * Fix DiscussionTopic relationship with KnowledgeArtifact (#116) * Turn KnowledgeArtifact into an Entity + add a relationship with DiscussionTopic * Make the topic's target artifact required * Refactor and extend execution environment functionalities (#109) * Renamed all Backend related classes and functions to ComputeResource * Renamed ComputingResourceProperty to ComputeResourceProperty * Reinserted CloudServices and ComputeResources * Reworked controllers of software platform, cloud service and compute resource * Reworked services of software platform, cloud service and compute resource Co-authored-by: Christian Müller <dev@c-mueller.xyz> * Swapped remaining Entities with DTOs in DTO-Objects (#118) * Swapped remaining Entities with DTOs in DTO-Objects * Removed title from configured AlgorithmDto Schema to have consistent schema naming for EntityModelDTOs and DTOs * Added ImplementationSchema for ImplementationDTO * Removed unused imports * Merged the two OverrideModelConverters into one * Reintroduce tags (#120) reintroduces tags * Migrate to test containers (#123) * Refactor Backend (#117) -> Improve Readability of controller classes -> Rename QuantumResourcePropertyTypeAssembler to ComputeResourcePropertyTypeAssembler -> Make dependencies in controllers final -> Remove meaningless log outputs in controllers * Begin changing Test URLs to 'fromMethodCall' * Fix Travis * Reformated controllers * Refactored crud algorithm service and controller methods * Started semantic refactoring for algorithm controller and service * Migrate AlgorithmController to fromMethodCall * Misc Refactoring on publications * Refactor more of algorithm controller functions * Fix some tests and refactor some compute resource property functions in algorithm controller * Finish refactoring algorithm controller functions * Fix algorithm controller test * Refactor PublicationController * Fix compile errors and refactor CRUD implementation controller functions * Refactor application area controller and service * Refactored problem type controller and service * Fix test * Creat link service and more refacoting * Move linking functionality to linking service * Add validation annotations in DTOs * Fix merge issues * Move missing linking functions to linking service and adjusted controllers * Fixed tests * Removes unused method * Added missing mockbeans in controller tests * Update model mapper * Fix failing tests * Add UUID Mappings to Implementation and PatternRelations * Changed http status codes of controller methods * Add validators to request bodies in controllers * Add "RequiresID" to ensure a child object in a Dto has an Id * Ensure controllers fulfill our requirements * Refactored pattern relation controller and service * Refactored pattern relation type controller and service * Refactored tag functionality * Refactor ComputeResourceProperty * Removed circular dependency from algorithm service * Fix Service tests * Moved compute resource property type service function to seperate service class * Fix compile errors * Refactor compure resource property methods in controllers * Create algorithm relation controller * Remove ComputeResourecePropertyInteface * Implement algorithm relation service and controller * Misc improvements * Adjust create methods of models with types * Refactor type services * Renaming * Renaming * Fix compile errors * Renmae algorOrImpl * Rename algoRelationType to algorithmRelationType * Fix missing transactions and method names in services * Update License Header * Refactor repository classes * Fix and refactor service tests * Fix failing tests * Add test for application area service * Add nonnull annotations to services * Fix nameing * Fix Controller test * Fix some controller tests * Fix compute resource property type controller test * Fix Tests * Fix service test * Fix pattern relation service test * Fix Annotation * Fix compure resource service test * Add generic find all method - Organize imports * Remove swagger content annotation from controllers * Fix naming inconsistency in service tests * Fix compile error * Remove wxceptions * Add EntityReferenceConstraintViolationException and remove mixin * Adress and remove some TODOs * Organize imports * Expand exception messages and fix tests * Some work on algorithmRelations * Adjust algorithm relation functionality * Model cleanup * Improve robustness of model methods * Implement missing algorithm and tag service tests * Implement AlgorithmRelationService tests * Add missing service tests for ComputeResourcePropertyTypeService * Clean up service tests * Add more ComputeResourcePropertyService tests * Add ImplementationService tests * Add more service tests * Add some find linked objects tests * Added linking service and some of its tests * Add missing linking service tests * Remove pattern relation linking functionality * Organize imports and reformat code * Remove misleading "Atlas is ready to use" message * Fix some code cleanup things * Exceptions now return JSON instead of plain text * Remove hidden annotation from ComputeResourcePropertyController * Change API path of implementation controller * Add example swagger dokumentation to algorithm controller * Change POSTs on resource ids * Change update PUTs to point to the changing resource * Add compute resource property calls to algorithm, implementation and compute resource controllers * Add linking methods of software platform and implementation in software platform controller * Add linking methods to publication controller for algorithm * Fix software platform controller test * Change algorithm relations api path * Add new get mappings for algorithm related objects * Add pattern relation methods to algorithm api path * Change tag add methods from PUT to POST * Add missing mock beans to controller tests * Add validation checking if algorithm and implementation are related in all implementation related methods * Add validations to algorithm relation functions * Add missing override annotation * Expand validation of compute resource property methods in controllers * Add validation to some GET request paths * Add validation to pattern relation controller methods * Replace Update in ids with IDOnly * Change validation group of linking calls * Delete compute resource property controller * Change annotations in compute resource property model class * Fix wrong method nameing in compute resource controller * Fix wrong method nameing in implementation controller * Fix naming of problem type get method * Fix validations * Fix misc issues * Misc fixes again * Add missing request body annotations * Fix wrong return types in controllers Co-authored-by: Tobias Haller <tobias_haller@outlook.de> * Feature/add search option to problem types endpoint (#122) * add search option to problem types controller * fix name and remove findByName method * Upload sketches (#125) * Add upload for sketches * Add delete for sketches * upload-sketch: mock SketchService in AlgorithmControllerTest.java to correct the Tests * upload-sketch: set UTF-8 encoding in docker-build process * upload-sketch: convert sketch.description into text * upload-sketch: KnowledgeArtifact - add creationDate and lastModifiedAt attributes * upload-sketch: remove redundant attributes * upload-sketch: add creationDate and lastModifiedAt in AlgorithmDTO * upload-sketch: set maximum upload size * upload-sketch: set maximum upload size in application.properties.tpl * upload-sketch: remove unused .max-request-size and delete properties from application.properties * PlanQK-85: extend upload Sketches with Image entity * upload-sketch: extend Image.java and upload/download functionality * upload sketches(PlanQk-85): implement: getSketchImage, getSketch and getSketches * upload sketches(PlanQk-85): add controller tests for upload sketches use case * upload sketches(PlanQk-85): add service tests for upload sketches use case * PlanQK-152: update sketch description * PlanQK-153: fix after code review * PlanQK-153: replace where with WHERE * Merge develop branch and resolve merge conflicts * upload-sketch: fix after code review * upload-sketch: change creationDate, lastModifiedAt form public to private * upload-sketch: throw and catch IllegalArgumentException if the content of multipart file can't not be read * upload-sketch: delete unused @Param Co-authored-by: Christoph Krieger <christoph.krieger@stoneone.de> Co-authored-by: Tobias Haller <tobias_haller@outlook.de> * Extend Implementation entity and DTO (#127) * extend Implementation entity and DTO * Define column problemStatement of Implementation as text * Add new added fields of Implementation Entity to update method of ImplementationServiceImpl Co-authored-by: Christoph Krieger <christoph.krieger@stoneone.de> * Versioning improvements (#126) * Add @ApiVersion annotation and custom request path mapping * Use LinkBuilderService to construct test URLs This also adds support for formatting ListParameters into URL components. * delete unnecessary setSketches() from update algorithm. The relation between the algorithms and sketches is made by the sketch entity (#129) * remove references to a problemType as parentProblemType when it gets … (#128) * remove references to a problemType as parentProblemType when it gets deleted * implement proposed change * Fix Travis badge in the README (#131) * Update Service Test docs (#130) * prevent backend from ereasing db on startup (#133) * Add Codecov Badge (#135) * Feature/image mime type (#136) * Add MIME Type to Image Entity * Change type of imageURL to java.net.URL * fix image upload test and revert the application properties Co-authored-by: radufalcusanStoneone <radu.falcusan@stoneone.de> * Add missing service tests (#137) * Add missing algorithm relation service tests * Add missing algorithm service tests and fixes * Add missing compute resource property service tests * Add missing service tests for implementation service * Add missing service tests to pattern relation service * Add missing service tests for publication service and extracted containsElementWithId method into ServiceUtils * Add missing tests for software platform service * Add multiple missing service tests and expand some existing service tests * Remove duplicate findAll method from problem type service * Add update test to sketch service * Add nonnull anootation * Fix failing update test * Fix malformed url exceptions * Comment out failing controller test * fix db init (#140) * add getImplementation() in ImplementationGlobalController.java (#141) * add getImplementation() in ImplementationGlobalController.java * delete unused mocks after code review * Rework Controller tests (#139) * Add Tag Controller test * Add SortwarePlatformTest * Add AAControllerTest * Begin ImplementationControllerTest * More work on the implementation controller test * Finish implementation controllers * Implement PublicationControllerTest (Pt. 1) * Finish PublicationControllerTest * Misc * Add algorithm relation controller test * Add methods to algorithm relation controller test * Implement ProblemTypeControllerTest * Finish Problem type controller * Implement AlgorithmRelationControllerTest * Update names in TagControllerTest * Finish ComputeResourcePropertyTypeControllerTest * Finish CloudServiceControllerTest * Start fixing AlgorithmController tests * Fixed AlgorithmController tests up to pattern relation functions * Implement AlgorithmController tests up to problem type methods * Update ComputeResourceControllerTest * Fix Travis log length * Futher reduce Log output * Implement AlgorithmController tests for application area and reduce log output * Fix Compile Errors * Fix stuff * Remove unused tests * Fix * Finish AlgorithmControllerTest * Refactor link check in discussion topic * Update log cleanup * Add Service test for link method * Fix AlgorithmRelationTypeControllerTest * Rename method * Resolve merge conflicts Co-authored-by: Christian Müller <dev@c-mueller.xyz> * Add Architectural Decision Records (#119) * Create 0003-model-mapper.md * Update index.md * Create 0004-postgres-for-service-tests.md * Update index.md * Update 0004-postgres-for-service-tests.md * Update index.md * adds OpenAPI adr * Document model/link assemblers * Remove license Apparently it's not present in all the others. * Add JUnit adr and extend postgres adr * Fix junit adr title * Add pros and cons * Update 0004-postgres-for-service-tests.md * Update 0005-use-OpenAPI.md * Create 0008-testcontainers.md * Fix index.md Co-authored-by: Felix Burk <felix.burk@googlemail.com> Co-authored-by: Tim Niederhausen <st144339@stud.uni-stuttgart.de> Co-authored-by: Tobias Haller <tobias_haller@outlook.de> Co-authored-by: Christian Müller <dev@c-mueller.xyz> * feat(PLANQK-179): add technology attribute (#143) * Extend JavaDoc and OpenAPI documentation (#142) * Extend openAPI documentation of algorithmController * Add docu for 404 in algorithmController * Add more open api documentation to controllers * Add openapi docu to compute resource controllers * Add openapi docu for implementationController * Add more controller docu * Add missing openapi docu to controllers * Add openapi docu for response code 400 responses * Add docu to dto classes * Add docu for repository classes and organize imports * Add class docu to service interfaces * Fix typo * Add javadoc for algorithm relation and type service interfaces * Document algorithmService class * Add javadoc for applicationArea and problemType services * Add javadoc for CloudService service * Add javadoc for compure resource property services * Add javadoc for compute resource and software platform service interface * Add javadoc for discussion service interfaces * Fix wrong pagable info in javadoc * Add javadoc to implementation and publication service interfaces * Add javadoc for sketch and tag service * Add javadoc for pattern relation and type service * Add javadoc for linking service * add softwarePlatforms to ImplementationDto.java (#144) * Add missing pagination to getImplementationsOfAlgorithm (#145) * Publish API docs to GitHub Pages using GitHub Actions (#147) * Fix ConcurrentModificationException when deleting entities (#149) Copy `referenced objects` collections before iterating over them. Custom removal methods such as `removeAlgorithm()` try to remove an element from both sides of its relationship. This randomly fails as we're iterating over one of the two containers involved. Example stack trace: ``` java.util.ConcurrentModificationException: null at java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1493) at java.base/java.util.HashMap$KeyIterator.next(HashMap.java:1516) at org.hibernate.collection.internal.AbstractPersistentCollection$IteratorProxy.next(AbstractPersistentCollection.java:883) at java.base/java.lang.Iterable.forEach(Iterable.java:74) at org.planqk.atlas.core.services.AlgorithmServiceImpl.removeReferences(AlgorithmServiceImpl.java:152) ``` * Database migrations (#146) * Add Liquibase * Add initial changelog * Include all DB migration changelogs manually (#150) It appears the 'executable jar/war' built via the Spring Boot maven plugin doesn't support directory listings for classpath URIs, breaking the automatic OpenAPI spec extraction. * Feature/adapt checkstyle and copyright (#152) * update copyright and checkstyle file * update copyright in all files * Apply Codestyle * consider part of checkstyle warnings * Apply Codestyle * apply codestyle for constructors * improve depth of nested if statement * Remove try catch * change LinkBuilderService from protected to private in GenericLinkAssembler * add accessors for private LinkBuilderService * Fix checkstyle errors * adapt readme for code style * fix list of contributors Co-authored-by: Christoph Krieger <christoph.krieger@stoneone.de> * Feature/implementation code artifacts Co-authored-by: radufalcusanStoneone <radu.falcusan@stoneone.de> * Temporarily deactivate liquibase (#153) * add checkstyle in poms for build (#155) * add checkstyle in poms for build * remove redundancy in sub poms and delete checkstyle.xml in sub directory * Feature/add discussions (#154) * refactor dependency between knowledge artifacts and discussion topics * fix put operations for discussion topics and comments * add controller tests * add service tests and documentation * remove unused import * Jitpack (#156) * Create jar for using the web module as a dependency * Create jar and war * build web/jar with profiles * Create jar and war * Create jar and war * Create jar and war * add jitpack.yml and run with batch profile * set profile to jar * set profile to jar * set packaging with env.variables * delete profile * delete install stage * delete env. * add custom environment variable * add custom environment variable * add custom environment variable * Update jitpack.yml * Update jitpack.yml * Update jitpack.yml * Update jitpack.yml * test * ./mvnw install -DskipTests -P jar * change to mvn package * change default properties * change default properties * change default properties * delete jitpack.yml * add jitpack and change default profile * comment the custom install command * maven install with jar profile * change packaging type name * delete commented lines Co-authored-by: Christoph Krieger <christoph.krieger@stoneone.de> * Fix docker setup (#157) * Only activate CloudStorageConfiguration in google-cloud profile (#158) * execute classifier with jar profile (#160) * Jitpack (#164) * modify classifier * test * classifier in profile * test * test * add plugins into profiles Co-authored-by: Christoph Krieger <krieger.christoph1@gmail.com> Co-authored-by: Stefan Basaric <43963121+LHommeDeBat@users.noreply.github.com> Co-authored-by: TGrosskopf <st160109@stud.uni-stuttgart.de> Co-authored-by: Tim Niederhausen <timniederhausen@users.noreply.github.com> Co-authored-by: T-Haller <32315230+T-Haller@users.noreply.github.com> Co-authored-by: Christian Müller <dev@c-mueller.xyz> Co-authored-by: Felix B <felix.burk@googlemail.com> Co-authored-by: Tobias Haller <tobias_haller@outlook.de> Co-authored-by: Christoph Krieger <christoph.krieger@stoneone.de> Co-authored-by: Valentin Seifermann <ValeSayfa@t-online.de> Co-authored-by: Tim Niederhausen <st144339@stud.uni-stuttgart.de> Co-authored-by: Marie Salm <github@mielie.de> Co-authored-by: Benjamin Weder <benjamin.weder@iaas.uni-stuttgart.de>
v1.0.0
execute classifier with jar profile (#160)
v0.1.0- Initial Code Contribution
This is the initial code contribution.
Changed
- Add initial knowledge artifact management
- Add initial general discussion thread functionality