-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into documentation
- Loading branch information
Showing
4 changed files
with
131 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,65 @@ | ||
# Herb development guidelines | ||
Below are some guidelines for working on the Herb Program Synthesis framework. These rules are flexible, they can be updated when necessary. | ||
|
||
## Git | ||
- Don't push directly to the main branch | ||
- To add new functionality, create a new branch from the main branch and give it a meaningful name. Once everything works, create a merge request for moving the code back to the main branch and ideally have it reviewed by someone else. | ||
- Make sure that the code in the main branch works and is compatible with the main branches from other repositories | ||
- Create issues and keep them up-to-date | ||
|
||
## Code | ||
- Add *useful* comments to your code | ||
- Document functions using [docstrings](https://docs.julialang.org/en/v1/manual/documentation/#Writing-Documentation) | ||
- Give clear names to functions, variables and structures | ||
- Have a quick look at the [Julia style guide](https://docs.julialang.org/en/v1/manual/style-guide/). Some important things to highlight: | ||
- Append `!` to names of functions that modify their arguments | ||
- Module names are `CamelCase` | ||
- Function names are generally `lowercase` | ||
# Contributor Guide | ||
|
||
Thank you for contributing to Herb.jl. Below are some guidelines on how you can do so. | ||
|
||
## Overview Herb repositories | ||
|
||
The Herb.jl framework for program synthesis comprises multiple sub-packages with the following functionality: | ||
- HerbCore.jl: Core functionality of the program synthesis library, including the representation and manipulation of expression trees, and abstract types for constraints and grammars. | ||
- HerbGrammar.jl: Declaring grammars. | ||
- HerbSpecification.jl: Specifying the program synthesis problems. Currently, only the input-output examples are supported, but we are working on other specification types (formal specifications, traces, rewards...). | ||
- HerbSearch.jl: Search procedures for finding solution programs to a program synthesis problem. | ||
- HerbInterpret.jl: Handling the interpretation of (candidate) programs, supporting arbitrary Julia expressions or other interpretors with provided evaluation functions. | ||
- HerbConstraints.jl: Formulating, representing and using contraints. | ||
- HerbBenchmarks.jl: a collection of problems for testing program synthesisers. We are collecting commonly used problems, standardising them, as finding new ones. | ||
- Garden.jl: complete implementations of known synthesisers. This repository intends to set the standard baselines to use in research, as well as support users that only wish to apply program synthesisers to their problems. | ||
|
||
## Reporting Bugs | ||
|
||
If you find a bug, open a new issue in the appropriate repo. Please provide some details about the bug, including | ||
- a description of the problem. | ||
- a minimal example to reproduce the problem (by copy + paste). | ||
- relevant error messages and logs. | ||
|
||
## Suggesting Features | ||
|
||
We encourage and welcome suggestions for new features. Please open a new issue and describe the desired feature in as much detail as you can, including an example of how you would like to use it. | ||
|
||
## Contributing Code | ||
|
||
### Workflow | ||
|
||
To contribute code, please follow these steps: | ||
1. Fork the repository. | ||
2. Clone your fork to your local machine. | ||
3. Create a new branch (with a descriptive name) for your bug fix or feature. | ||
4. Make changes in the new branch. | ||
5. Test and document your code. | ||
6. Push your changes to your fork of the repo. | ||
7. Open a PR from the appropriate branch of your fork to the `dev` branch of the original repo. | ||
|
||
### Code quality guidelines | ||
|
||
- **Testing:** Make sure your code is well-tested, i.e., that you add new tests for your code changes and that all existing tests still pass. | ||
- **Documentation:** Please update or add documentation as necessary. Follow the Julia guidelines for [writing documentation](https://docs.julialang.org/en/v1/manual/documentation/#Writing-Documentation). | ||
- Please follow the [Julia style guide](https://docs.julialang.org/en/v1/manual/style-guide/). | ||
|
||
### Code changes to multiple sub-packages | ||
|
||
If the code you're developing requires changes to more than one Herb.jl sub-package, see [this description](https://github.com/Herb-AI/) on how to locally change to a specific version (branch) of a package. | ||
|
||
## Don't know how to contribute? | ||
|
||
Check the open issues in the individual repositories. We maintain a list of bugs and desired developments for each of our repositories. | ||
|
||
Have a program synthesiser you wish to be included? Implement it in [Garden](https://github.com/Herb-AI/Garden.jl), following the workflow above! If you are uncertain about the structure, please contact us. | ||
|
||
## Ongoing developments | ||
|
||
We are currently focusing on the following functionality: | ||
- Machine learning-guided program synthesis | ||
- Refactoring approach a la DreamCoder and KNORF | ||
- Divide & conquer approaches a la EUSolver | ||
- New benchmarks. | ||
|
||
Do contact us if you want to help! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# Contributors | ||
|
||
- Organization: Herb-AI | ||
|
||
| Total Contributors | Total Contributions | | ||
| --- | --- | | ||
| 30 | 1819 | | ||
|
||
| Username | Contribution Count | Commits | | ||
| --- | --- | --- | | ||
| @sebdumancic | 102 | [Herb-AI/HerbLanguage.jl](https://github.com/Herb-AI/HerbLanguage.jl/commits?author=sebdumancic), [Herb-AI/HerbProlog.jl](https://github.com/Herb-AI/HerbProlog.jl/commits?author=sebdumancic), [Herb-AI/ExprRules.jl](https://github.com/Herb-AI/ExprRules.jl/commits?author=sebdumancic), [Herb-AI/ContextExprRules.jl](https://github.com/Herb-AI/ContextExprRules.jl/commits?author=sebdumancic), [Herb-AI/HerbSWIPL.jl](https://github.com/Herb-AI/HerbSWIPL.jl/commits?author=sebdumancic), [Herb-AI/Julog.jl](https://github.com/Herb-AI/Julog.jl/commits?author=sebdumancic), [Herb-AI/Problog.jl](https://github.com/Herb-AI/Problog.jl/commits?author=sebdumancic), [Herb-AI/Herb.jl](https://github.com/Herb-AI/Herb.jl/commits?author=sebdumancic), [Herb-AI/HerbBenchmarks.jl](https://github.com/Herb-AI/HerbBenchmarks.jl/commits?author=sebdumancic), [Herb-AI/HerbEvaluation.jl](https://github.com/Herb-AI/HerbEvaluation.jl/commits?author=sebdumancic), [Herb-AI/HerbData.jl](https://github.com/Herb-AI/HerbData.jl/commits?author=sebdumancic), [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=sebdumancic), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=sebdumancic), [Herb-AI/HerbExamples.jl](https://github.com/Herb-AI/HerbExamples.jl/commits?author=sebdumancic), [Herb-AI/HerbConstraints.jl](https://github.com/Herb-AI/HerbConstraints.jl/commits?author=sebdumancic), [Herb-AI/HerbConstraintTranslator.jl](https://github.com/Herb-AI/HerbConstraintTranslator.jl/commits?author=sebdumancic), [Herb-AI/HerbCore.jl](https://github.com/Herb-AI/HerbCore.jl/commits?author=sebdumancic), [Herb-AI/HerbInterpret.jl](https://github.com/Herb-AI/HerbInterpret.jl/commits?author=sebdumancic), [Herb-AI/Garden.jl](https://github.com/Herb-AI/Garden.jl/commits?author=sebdumancic), | | ||
| @rcnlee | 51 | [Herb-AI/ExprRules.jl](https://github.com/Herb-AI/ExprRules.jl/commits?author=rcnlee), | | ||
| @tawheeler | 38 | [Herb-AI/ExprRules.jl](https://github.com/Herb-AI/ExprRules.jl/commits?author=tawheeler), | | ||
| @mykelk | 19 | [Herb-AI/ExprRules.jl](https://github.com/Herb-AI/ExprRules.jl/commits?author=mykelk), | | ||
| @xukai92 | 4 | [Herb-AI/ExprRules.jl](https://github.com/Herb-AI/ExprRules.jl/commits?author=xukai92), | | ||
| @ancorso | 3 | [Herb-AI/ExprRules.jl](https://github.com/Herb-AI/ExprRules.jl/commits?author=ancorso), | | ||
| @cobac | 1 | [Herb-AI/ExprRules.jl](https://github.com/Herb-AI/ExprRules.jl/commits?author=cobac), | | ||
| @ztangent | 90 | [Herb-AI/Julog.jl](https://github.com/Herb-AI/Julog.jl/commits?author=ztangent), | | ||
| @simeonschaub | 2 | [Herb-AI/Julog.jl](https://github.com/Herb-AI/Julog.jl/commits?author=simeonschaub), | | ||
| @CrashBurnRepeat | 1 | [Herb-AI/Julog.jl](https://github.com/Herb-AI/Julog.jl/commits?author=CrashBurnRepeat), | | ||
| @fplk | 1 | [Herb-AI/Julog.jl](https://github.com/Herb-AI/Julog.jl/commits?author=fplk), | | ||
| @mschauer | 1 | [Herb-AI/Julog.jl](https://github.com/Herb-AI/Julog.jl/commits?author=mschauer), | | ||
| @jaapdejong15 | 340 | [Herb-AI/Herb.jl](https://github.com/Herb-AI/Herb.jl/commits?author=jaapdejong15), [Herb-AI/HerbBenchmarks.jl](https://github.com/Herb-AI/HerbBenchmarks.jl/commits?author=jaapdejong15), [Herb-AI/HerbEvaluation.jl](https://github.com/Herb-AI/HerbEvaluation.jl/commits?author=jaapdejong15), [Herb-AI/HerbData.jl](https://github.com/Herb-AI/HerbData.jl/commits?author=jaapdejong15), [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=jaapdejong15), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=jaapdejong15), [Herb-AI/HerbExamples.jl](https://github.com/Herb-AI/HerbExamples.jl/commits?author=jaapdejong15), [Herb-AI/SpecificationExtraction.jl](https://github.com/Herb-AI/SpecificationExtraction.jl/commits?author=jaapdejong15), [Herb-AI/HerbConstraints.jl](https://github.com/Herb-AI/HerbConstraints.jl/commits?author=jaapdejong15), [Herb-AI/HerbCore.jl](https://github.com/Herb-AI/HerbCore.jl/commits?author=jaapdejong15), [Herb-AI/HerbInterpret.jl](https://github.com/Herb-AI/HerbInterpret.jl/commits?author=jaapdejong15), | | ||
| @THinnerichs | 347 | [Herb-AI/Herb.jl](https://github.com/Herb-AI/Herb.jl/commits?author=THinnerichs), [Herb-AI/HerbBenchmarks.jl](https://github.com/Herb-AI/HerbBenchmarks.jl/commits?author=THinnerichs), [Herb-AI/HerbEvaluation.jl](https://github.com/Herb-AI/HerbEvaluation.jl/commits?author=THinnerichs), [Herb-AI/HerbData.jl](https://github.com/Herb-AI/HerbData.jl/commits?author=THinnerichs), [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=THinnerichs), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=THinnerichs), [Herb-AI/HerbExamples.jl](https://github.com/Herb-AI/HerbExamples.jl/commits?author=THinnerichs), [Herb-AI/SpecificationExtraction.jl](https://github.com/Herb-AI/SpecificationExtraction.jl/commits?author=THinnerichs), [Herb-AI/HerbConstraints.jl](https://github.com/Herb-AI/HerbConstraints.jl/commits?author=THinnerichs), [Herb-AI/HerbLearn.jl](https://github.com/Herb-AI/HerbLearn.jl/commits?author=THinnerichs), [Herb-AI/HerbCore.jl](https://github.com/Herb-AI/HerbCore.jl/commits?author=THinnerichs), [Herb-AI/Herb-AI.github.io](https://github.com/Herb-AI/Herb-AI.github.io/commits?author=THinnerichs), [Herb-AI/HerbInterpret.jl](https://github.com/Herb-AI/HerbInterpret.jl/commits?author=THinnerichs), [Herb-AI/HerbSpecification.jl](https://github.com/Herb-AI/HerbSpecification.jl/commits?author=THinnerichs), [Herb-AI/.github](https://github.com/Herb-AI/.github/commits?author=THinnerichs), [Herb-AI/Garden.jl](https://github.com/Herb-AI/Garden.jl/commits?author=THinnerichs), | | ||
| @ReubenJ | 147 | [Herb-AI/Herb.jl](https://github.com/Herb-AI/Herb.jl/commits?author=ReubenJ), [Herb-AI/HerbBenchmarks.jl](https://github.com/Herb-AI/HerbBenchmarks.jl/commits?author=ReubenJ), [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=ReubenJ), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=ReubenJ), [Herb-AI/SpecificationExtraction.jl](https://github.com/Herb-AI/SpecificationExtraction.jl/commits?author=ReubenJ), [Herb-AI/HerbConstraints.jl](https://github.com/Herb-AI/HerbConstraints.jl/commits?author=ReubenJ), [Herb-AI/HerbCore.jl](https://github.com/Herb-AI/HerbCore.jl/commits?author=ReubenJ), [Herb-AI/HerbInterpret.jl](https://github.com/Herb-AI/HerbInterpret.jl/commits?author=ReubenJ), [Herb-AI/HerbSpecification.jl](https://github.com/Herb-AI/HerbSpecification.jl/commits?author=ReubenJ), [Herb-AI/Garden.jl](https://github.com/Herb-AI/Garden.jl/commits?author=ReubenJ), | | ||
| @IssaHanou | 15 | [Herb-AI/Herb.jl](https://github.com/Herb-AI/Herb.jl/commits?author=IssaHanou), [Herb-AI/HerbData.jl](https://github.com/Herb-AI/HerbData.jl/commits?author=IssaHanou), [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=IssaHanou), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=IssaHanou), | | ||
| @pwochner | 32 | [Herb-AI/Herb.jl](https://github.com/Herb-AI/Herb.jl/commits?author=pwochner), [Herb-AI/HerbBenchmarks.jl](https://github.com/Herb-AI/HerbBenchmarks.jl/commits?author=pwochner), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=pwochner), [Herb-AI/HerbCore.jl](https://github.com/Herb-AI/HerbCore.jl/commits?author=pwochner), [Herb-AI/HerbInterpret.jl](https://github.com/Herb-AI/HerbInterpret.jl/commits?author=pwochner), | | ||
| @Pepijnk12 | 6 | [Herb-AI/Herb.jl](https://github.com/Herb-AI/Herb.jl/commits?author=Pepijnk12), [Herb-AI/HerbBenchmarks.jl](https://github.com/Herb-AI/HerbBenchmarks.jl/commits?author=Pepijnk12), [Herb-AI/HerbData.jl](https://github.com/Herb-AI/HerbData.jl/commits?author=Pepijnk12), [Herb-AI/HerbExamples.jl](https://github.com/Herb-AI/HerbExamples.jl/commits?author=Pepijnk12), [Herb-AI/HerbConstraints.jl](https://github.com/Herb-AI/HerbConstraints.jl/commits?author=Pepijnk12), [Herb-AI/HerbRegex.jl](https://github.com/Herb-AI/HerbRegex.jl/commits?author=Pepijnk12), | | ||
| @stefstef00 | 20 | [Herb-AI/HerbBenchmarks.jl](https://github.com/Herb-AI/HerbBenchmarks.jl/commits?author=stefstef00), | | ||
| @matteo-meluzzi | 9 | [Herb-AI/HerbBenchmarks.jl](https://github.com/Herb-AI/HerbBenchmarks.jl/commits?author=matteo-meluzzi), [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=matteo-meluzzi), | | ||
| @RobbinBaauw | 34 | [Herb-AI/HerbBenchmarks.jl](https://github.com/Herb-AI/HerbBenchmarks.jl/commits?author=RobbinBaauw), [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=RobbinBaauw), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=RobbinBaauw), [Herb-AI/HerbConstraints.jl](https://github.com/Herb-AI/HerbConstraints.jl/commits?author=RobbinBaauw), | | ||
| @Whebon | 255 | [Herb-AI/HerbBenchmarks.jl](https://github.com/Herb-AI/HerbBenchmarks.jl/commits?author=Whebon), [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=Whebon), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=Whebon), [Herb-AI/HerbConstraints.jl](https://github.com/Herb-AI/HerbConstraints.jl/commits?author=Whebon), [Herb-AI/HerbConstraintTranslator.jl](https://github.com/Herb-AI/HerbConstraintTranslator.jl/commits?author=Whebon), [Herb-AI/HerbCore.jl](https://github.com/Herb-AI/HerbCore.jl/commits?author=Whebon), | | ||
| @nicolaefilat | 97 | [Herb-AI/HerbEvaluation.jl](https://github.com/Herb-AI/HerbEvaluation.jl/commits?author=nicolaefilat), [Herb-AI/HerbData.jl](https://github.com/Herb-AI/HerbData.jl/commits?author=nicolaefilat), [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=nicolaefilat), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=nicolaefilat), [Herb-AI/HerbConstraints.jl](https://github.com/Herb-AI/HerbConstraints.jl/commits?author=nicolaefilat), [Herb-AI/HerbCore.jl](https://github.com/Herb-AI/HerbCore.jl/commits?author=nicolaefilat), [Herb-AI/HerbInterpret.jl](https://github.com/Herb-AI/HerbInterpret.jl/commits?author=nicolaefilat), | | ||
| @sourceCode4 | 117 | [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=sourceCode4), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=sourceCode4), [Herb-AI/HerbConstraintTranslator.jl](https://github.com/Herb-AI/HerbConstraintTranslator.jl/commits?author=sourceCode4), | | ||
| @piotr-cichon | 13 | [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=piotr-cichon), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=piotr-cichon), | | ||
| @sjerpsthomas | 10 | [Herb-AI/HerbSearch.jl](https://github.com/Herb-AI/HerbSearch.jl/commits?author=sjerpsthomas), [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=sjerpsthomas), [Herb-AI/HerbConstraints.jl](https://github.com/Herb-AI/HerbConstraints.jl/commits?author=sjerpsthomas), | | ||
| @kwasielewski | 1 | [Herb-AI/HerbGrammar.jl](https://github.com/Herb-AI/HerbGrammar.jl/commits?author=kwasielewski), | | ||
| @tsjerps-tud | 1 | [Herb-AI/HerbConstraints.jl](https://github.com/Herb-AI/HerbConstraints.jl/commits?author=tsjerps-tud), | | ||
| @Floor97 | 50 | [Herb-AI/HerbConstraintTranslator.jl](https://github.com/Herb-AI/HerbConstraintTranslator.jl/commits?author=Floor97), | | ||
| @dahkraf | 12 | [Herb-AI/HerbConstraintTranslator.jl](https://github.com/Herb-AI/HerbConstraintTranslator.jl/commits?author=dahkraf), | | ||
|
||
_this file was generated by the [Contributors GitHub Action](https://github.com/github/contributors)_ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
name = "Herb" | ||
uuid = "c09c6b7f-4f63-49de-90d9-97a3563c0f4a" | ||
authors = ["Jaap de Jong <[email protected]>", "Tilman Hinnerichs <[email protected]>", "Sebastijan Dumancic <[email protected]>"] | ||
version = "0.3.0" | ||
version = "0.4.0" | ||
|
||
[deps] | ||
HerbConstraints = "1fa96474-3206-4513-b4fa-23913f296dfc" | ||
|
@@ -15,7 +15,7 @@ Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" | |
[compat] | ||
HerbConstraints = "^0.2.0" | ||
HerbCore = "^0.3.0" | ||
HerbGrammar = "^0.3.0" | ||
HerbGrammar = "^0.4.0" | ||
HerbInterpret = "^0.1.2" | ||
HerbSearch = "^0.3.0" | ||
HerbSpecification = "^0.1.0" | ||
|