Lucian CI/CD

== Overview ==
Lucian CI/CD tests and builds repositories. They can be in Prolog or other programming languages. Modifications to List Prolog Package Manager to include the user's repositories are required.
== Bottom-Up Version ==
The bottom-up version of Lucian CI/CD detects dependencies in the Prolog predicates, tests predicates in the repository branches using post-order depth-first search (bottom-up) and adjusts the code using the current and immediate past versions. Only comments in the current version are retained, and multiple repository branches and repositories are supported. A web page may display the recent passed or failed results by test summary and code diffs. Each output variable in tests is tested to be a non-variable (preventing tests from always working). Commands without output in `keep1//1` in `keep.pl` are kept instead of deleted because they don't have output to test.
== Features ==
* README.md - Contains installation and use instructions.
* ci.pl - Contains the diff algorithm at the centre of the algorithm, which identifies changes, additions and deletions to lines in the repositories to find the combinations of and test.
* luciancicd.pl - Contains the set_up_luciancicd (to keep all changes without running tests), luciancicd (to find modified files, find tests, merge and build repositories, run tests and update repository) and modification_dates (find modified files) predicates.
* ci3.pl - Contains the code to load code to find changes against.
* find_tests_from_repos.pl - finds tests in Prolog code (where non-Prolog can be tested by a Prolog algorithm).
* move_to_repository_or_back.pl - Contains the move_to_repository_or_back predicate, which undoes updating the repository.
* save_diff_html.pl - code to display changes made to the repository before updating it, showing changes, additions and deletions.
Link at https://github.com/luciangreen/luciancicd