Skip to content

Commit

Permalink
Merge pull request #48 from Herb-AI/dev
Browse files Browse the repository at this point in the history
Prepare Herb.jl for publication to JuliaHub
  • Loading branch information
THinnerichs authored Sep 5, 2023
2 parents 7880055 + 7ab7e6b commit 5b516a5
Show file tree
Hide file tree
Showing 18 changed files with 197 additions and 86 deletions.
35 changes: 35 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: CI
on:
push:
branches:
- master
tags: ['*']
pull_request:
concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
test:
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
version:
- '1.8'
- 'nightly'
os:
- ubuntu-latest
arch:
- x64
steps:
- uses: actions/checkout@v3
- uses: julia-actions/setup-julia@v1
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: julia-actions/cache@v1
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
16 changes: 16 additions & 0 deletions .github/workflows/CompatHelper.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: CompatHelper
on:
schedule:
- cron: 0 0 * * *
workflow_dispatch:
jobs:
CompatHelper:
runs-on: ubuntu-latest
steps:
- name: Pkg.add("CompatHelper")
run: julia -e 'using Pkg; Pkg.add("CompatHelper")'
- name: CompatHelper.main()
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }}
run: julia -e 'using CompatHelper; CompatHelper.main()'
31 changes: 31 additions & 0 deletions .github/workflows/TagBot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: TagBot
on:
issue_comment:
types:
- created
workflow_dispatch:
inputs:
lookback:
default: 3
permissions:
actions: read
checks: read
contents: write
deployments: read
issues: read
discussions: read
packages: read
pages: read
pull-requests: read
repository-projects: read
security-events: read
statuses: read
jobs:
TagBot:
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
runs-on: ubuntu-latest
steps:
- uses: JuliaRegistries/TagBot@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
ssh: ${{ secrets.DOCUMENTER_KEY }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,7 @@ docs/site/
# committed for packages, but should be committed for applications that require a static
# environment.
Manifest.toml

# Herb modules
HerbBenchmarks.jl
HerbLearn.jl
21 changes: 0 additions & 21 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,21 +0,0 @@
[submodule "HerbSearch.jl"]
path = HerbSearch.jl
url = https://github.com/Herb-AI/HerbSearch.jl.git
[submodule "HerbGrammar.jl"]
path = HerbGrammar.jl
url = https://github.com/Herb-AI/HerbGrammar.jl.git
[submodule "HerbData.jl"]
path = HerbData.jl
url = https://github.com/Herb-AI/HerbData.jl.git
[submodule "HerbEvaluation.jl"]
path = HerbEvaluation.jl
url = https://github.com/Herb-AI/HerbEvaluation.jl.git
[submodule "HerbExamples.jl"]
path = HerbExamples.jl
url = https://github.com/Herb-AI/HerbExamples.jl
[submodule "HerbConstraints.jl"]
path = HerbConstraints.jl
url = https://github.com/Herb-AI/HerbConstraints.jl.git
[submodule "HerbCore.jl"]
path = HerbCore.jl
url = https://github.com/Herb-AI/HerbCore.jl.git
1 change: 0 additions & 1 deletion HerbConstraints.jl
Submodule HerbConstraints.jl deleted from 70a302
1 change: 0 additions & 1 deletion HerbCore.jl
Submodule HerbCore.jl deleted from 5b6bea
1 change: 0 additions & 1 deletion HerbData.jl
Submodule HerbData.jl deleted from c3fea1
1 change: 0 additions & 1 deletion HerbEvaluation.jl
Submodule HerbEvaluation.jl deleted from a0f8ef
1 change: 0 additions & 1 deletion HerbExamples.jl
Submodule HerbExamples.jl deleted from 3d0825
1 change: 0 additions & 1 deletion HerbGrammar.jl
Submodule HerbGrammar.jl deleted from 091437
1 change: 0 additions & 1 deletion HerbSearch.jl
Submodule HerbSearch.jl deleted from e2e6c5
31 changes: 22 additions & 9 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,16 +1,29 @@
name = "Herb"
uuid = "c09c6b7f-4f63-49de-90d9-97a3563c0f4a"
authors = ["Jaap de Jong <[email protected]>"]
authors = ["Jaap de Jong <[email protected]>", "Tilman Hinnerichs <[email protected]>", "Sebastijan Dumancic <[email protected]>"]
version = "0.1.0"

[deps]
AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
TreeView = "39424ebd-4cf3-5550-a685-96706a953f40"
Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
HerbConstraints = "1fa96474-3206-4513-b4fa-23913f296dfc"
HerbCore = "2b23ba43-8213-43cb-b5ea-38c12b45bd45"
HerbData = "495a3ad3-8034-41b3-a087-aacf2fd71098"
HerbEvaluation = "eb1bf938-813d-4942-ac0f-b4657a683e76"
HerbGrammar = "4ef9e186-2fe5-4b24-8de7-9f7291f24af7"
HerbSearch = "3008d8e8-f9aa-438a-92ed-26e9c7b4829f"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"

[compat]
AbstractTrees = "0.4"
DataStructures = "0.17,0.18"
TreeView = "0.5"
julia = "1"
HerbConstraints = "0.1.0"
HerbCore = "0.1.1"
HerbData = "0.1.1"
HerbEvaluation = "0.1.0"
HerbGrammar = "0.1.0"
HerbSearch = "0.1.0"
julia = "1.8"

[extras]
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Test"]
34 changes: 23 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,33 @@
[![Build Status](https://github.com/Herb-AI/Herb.jl/actions/workflows/CI.yml/badge.svg?branch=master)](https://github.com/Herb-AI/Herb.jl/actions/workflows/CI.yml?query=branch%3Amaster)
[![Dev-Docs](https://img.shields.io/badge/docs-latest-blue.svg)](https://Herb-AI.github.io/Herb.jl/dev)


# Herb.jl
*A library for defining and efficiently solving program synthesis tasks in Julia.*

## Introduction
When writing research software we almost always investigate highly specific properties or algorithms of our domain, leading to us building the tools from scratch over and over again. The very same holds for the field of program synthesis: Tools are hard to run, benchmarks are hard to get and prepare, and its hard to adapt our existing code to a novel idea.

## Getting started

As this project is working with git-submodules, after cloning please run
Herb.jl will take care of this for you and helps you defining, solving and extending your program synthesis problems.

```
git submodule init
```
Herb.jl provides...
- a unified and universal framework for program synthesis
- Herb.jl allows you to describe all sorts of program synthesis problems using context-free grammars
- a number of state-of-the-art benchmarks and solvers already implemented and usable out-of-the-box

To update each submodule to their latest master commit, please run
Herb.jl's sub-packages provide fast and easily extendable implementations of
- various static and dynamic search strategies,
- learning search strategies, sampling techniques and more,
- constraint formulation and propagation,
- easy grammar formulation and usage,
- wide-range of usable program interpreters and languages + the possibility to use your own, and
- efficient data formulation.

```
<!-- git submodule -q foreach git pull -q origin master -->
git submodule update --rebase --remote
```
## Getting started
Please check out our [tutorial](https://herb-ai.github.io/Herb.jl/dev/install/)

## Conventions

## Documentation
The entire documentation is available at [https://herb-ai.github.io/Herb.jl/dev/install/](https://herb-ai.github.io/Herb.jl/dev/install/).

21 changes: 7 additions & 14 deletions src/Herb.jl
Original file line number Diff line number Diff line change
@@ -1,18 +1,11 @@
module Herb

include("../HerbCore.jl/src/HerbCore.jl")
include("../HerbGrammar.jl/src/HerbGrammar.jl")
include("../HerbConstraints.jl/src/HerbConstraints.jl")
include("../HerbData.jl/src/HerbData.jl")
include("../HerbEvaluation.jl/src/HerbEvaluation.jl")
include("../HerbSearch.jl/src/HerbSearch.jl")

using .HerbCore
using .HerbGrammar
using .HerbConstraints
using .HerbData
using .HerbEvaluation
using .HerbSearch
using HerbCore
using HerbGrammar
using HerbConstraints
using HerbData
using HerbEvaluation
using HerbSearch

export
HerbCore,
Expand All @@ -22,4 +15,4 @@ export
HerbEvaluation,
HerbSearch

end # module
end # module
24 changes: 0 additions & 24 deletions test/herb_test.jl

This file was deleted.

29 changes: 29 additions & 0 deletions test/runtests.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
module HerbTest

using HerbConstraints
using HerbCore
using HerbData
using HerbEvaluation
using HerbGrammar
using HerbSearch

using Test
import Pkg

@testset verbose=false "Herb" begin
@test 1==1 # dummy test
println("\n--- HerbConstraints tests ---")
Pkg.test("HerbConstraints")
println("\n--- HerbCore tests ---")
Pkg.test("HerbCore")
println("\n--- HerbData tests ---")
Pkg.test("HerbData")
println("\n--- HerbEvaluation tests ---")
Pkg.test("HerbEvaluation")
println("\n--- HerbGrammar tests ---")
Pkg.test("HerbGrammar")
println("\n--- HerbSearch tests ---")
Pkg.test("HerbSearch")
end

end # module
30 changes: 30 additions & 0 deletions test/runtests.jl_copy
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
module HerbTest

using HerbConstraints
using HerbCore
using HerbData
using HerbEvaluation
using HerbGrammar
using HerbSearch

using Test
import Pkg

@testset verbose=false "Herb" begin
# @test 1==1 # dummy test

println("\n--- HerbConstraints tests ---")
Pkg.test("HerbConstraints")
println("\n--- HerbCore tests ---")
Pkg.test("HerbCore")
println("\n--- HerbData tests ---")
Pkg.test("HerbData")
println("\n--- HerbEvaluation tests ---")
Pkg.test("HerbEvaluation")
println("\n--- HerbGrammar tests ---")
Pkg.test("HerbGrammar")
println("\n--- HerbSearch tests ---")
Pkg.test("HerbSearch")
end

end # module

2 comments on commit 5b516a5

@THinnerichs
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator register()

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request created: JuliaRegistries/General/90849

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v0.1.0 -m "<description of version>" 5b516a56b55e2450d47c9873bd8da68649de870b
git push origin v0.1.0

Please sign in to comment.