Skip to content

Commit

Permalink
Merge branch 'master' into documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
ReubenJ committed Oct 3, 2024
2 parents 8daed41 + 41110ac commit 0a24af5
Show file tree
Hide file tree
Showing 4 changed files with 131 additions and 46 deletions.
49 changes: 22 additions & 27 deletions .github/workflows/contributors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Monthly contributor report
on:
workflow_dispatch:
schedule:
- cron: '3 2 1 * *'
- cron: '0 0 1 * *'

permissions:
contents: read
Expand All @@ -12,41 +12,36 @@ jobs:
name: contributor report
runs-on: ubuntu-latest
permissions:
issues: write
contents: write
pull-requests: write

steps:
- name: Check out repository code
uses: actions/checkout@v4

- name: Get start and end dates
shell: bash
run: |
# Some date before the start of the Herb.jl project
start_date=2023-01-01
# Calculate the last day of the previous month
end_date=$(date -d "$start_date +1 month -1 day" +%Y-%m-%d)

#Set an environment variable with the date range
echo "START_DATE=$start_date" >> "$GITHUB_ENV"
echo "END_DATE=$end_date" >> "$GITHUB_ENV"

- name: Run contributor action
uses: github/contributors@v1
uses: reubenj/contributors@v1.4.4
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
START_DATE: ${{ env.START_DATE }}
END_DATE: ${{ env.END_DATE }}
START_DATE: ""
END_DATE: ""
ORGANIZATION: Herb-AI
SPONSOR_INFO: "true"
LINK_TO_PROFILE: "true"
SPONSOR_INFO: "True"
LINK_TO_PROFILE: "True"

- name: Move contributors file to repo directory
- name: Rename file and remove JSON
shell: bash
run: mv contibutors.md ${{ github.repository }}/CONTRIBUTORS.md

- name: Add and commit CONTRIBUTORS.md
uses: EndBug/add-and-commit@v9
run: |
rm contributors.json
mv contributors.md CONTRIBUTORS.md
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
message: "Monthly contributors report"
default_author: github_actor
commit-message: Update CONTRIBUTORS.md
branch: update-contributors
title: Update CONTRIBUTORS.md
body: |
Updates to `CONTRIBUTORS.md`.
Auto-generated by [`create-pull-request`](https://github.com/peter-evans/create-pull-request).
82 changes: 65 additions & 17 deletions CONTRIBUTING.md
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!
42 changes: 42 additions & 0 deletions CONTRIBUTORS.md
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)_
4 changes: 2 additions & 2 deletions Project.toml
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"
Expand All @@ -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"
Expand Down

0 comments on commit 0a24af5

Please sign in to comment.