Compare commits
3
Commits
main
...
9fdc003a71
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9fdc003a71
|
||
|
|
496413415f
|
||
|
|
7c5e657e77
|
@@ -0,0 +1,48 @@
|
|||||||
|
name: Compile manual
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- "**"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ci:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: catthehacker/ubuntu:act-latest
|
||||||
|
if: github.event.pull_request.draft == false
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: "3.2"
|
||||||
|
|
||||||
|
- name: Setup Fontist
|
||||||
|
uses: fontist/setup-fontist@v2
|
||||||
|
|
||||||
|
- name: Install Fonts
|
||||||
|
run: fontist manifest install docs/fonts.yaml
|
||||||
|
|
||||||
|
- uses: typst-community/setup-typst@v5
|
||||||
|
with:
|
||||||
|
typst-version: "0.15.0"
|
||||||
|
zip-packages: docs/requirements.json
|
||||||
|
cache-local-packages: true
|
||||||
|
token: ""
|
||||||
|
|
||||||
|
- run: |
|
||||||
|
typst compile \
|
||||||
|
--root . \
|
||||||
|
--font-path ~/.fontist/fonts \
|
||||||
|
--input hash=${{ gitea.sha }} \
|
||||||
|
docs/manual.typ \
|
||||||
|
docs/manual.pdf
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: christopherhx/gitea-upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: manual
|
||||||
|
path: docs/manual.pdf
|
||||||
@@ -51,16 +51,7 @@ This framework is being developed as part of a Bachelor's Thesis by Louis Herede
|
|||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
|
|
||||||
<!--
|
Hereafter is a description of the commands you can use with Midas. For a full description, refer to [the manual](./docs/manual.pdf).
|
||||||
check
|
|
||||||
compile
|
|
||||||
format
|
|
||||||
highlight
|
|
||||||
parse
|
|
||||||
dump_registry
|
|
||||||
types
|
|
||||||
validate
|
|
||||||
-->
|
|
||||||
|
|
||||||
### Type Checking
|
### Type Checking
|
||||||
|
|
||||||
@@ -78,6 +69,10 @@ midas compile -t types.midas source.py
|
|||||||
|
|
||||||
With the `compile` command, you can process a source Python file, with any number of custom type definition files (`-t FILE` option), and the type checker will verify the coherence of your program and generate the runnable code with valid syntax and runtime assertions.
|
With the `compile` command, you can process a source Python file, with any number of custom type definition files (`-t FILE` option), and the type checker will verify the coherence of your program and generate the runnable code with valid syntax and runtime assertions.
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
> By default, any type checking error aborts the compilation and the generator is not run. You can bypass this behaviour with the `--ignore-errors` flag.
|
||||||
|
> Only use this flag if you know what you are doing as it will produce a possibly unsafe program and goes against the whole purpose of Midas
|
||||||
|
|
||||||
### Formatting
|
### Formatting
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
@@ -143,7 +138,7 @@ This command lets you validate a Midas definition file by running the parser and
|
|||||||
|
|
||||||
## Tests
|
## Tests
|
||||||
|
|
||||||
Several snapshot tests are available to assert the good behaviour of the parsers and type checker. They can be run as follows:
|
Several snapshot tests are available to assert the good behaviour of the parser, type checker and generator. They can be run as follows:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
uv run -m tests.midas run -a
|
uv run -m tests.midas run -a
|
||||||
@@ -152,7 +147,16 @@ uv run -m tests.checker run -a
|
|||||||
uv run -m tests.generator run -a
|
uv run -m tests.generator run -a
|
||||||
```
|
```
|
||||||
|
|
||||||
**Available subcommands:**
|
Alternatively, you can run all tests by executing the `tests` module directly:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
uv run -m tests
|
||||||
|
```
|
||||||
|
|
||||||
|
When running only one test group, you may use one of the following subcommands.\
|
||||||
|
Not specifying any subcommand is equivalent to running `run -a`
|
||||||
|
|
||||||
|
**Available subcommands**:
|
||||||
- Run all tests: `run -a`
|
- Run all tests: `run -a`
|
||||||
- Run specific tests: `run tests/cases/test1.py tests/cases/test2.py ...`
|
- Run specific tests: `run tests/cases/test1.py tests/cases/test2.py ...`
|
||||||
- Update all tests: `update -a`
|
- Update all tests: `update -a`
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
Source Sans Pro:
|
||||||
|
Source Sans 3:
|
||||||
+10260
File diff suppressed because it is too large
Load Diff
+11
-2
@@ -8,8 +8,17 @@
|
|||||||
#import "@preview/gentle-clues:1.3.1" as gc
|
#import "@preview/gentle-clues:1.3.1" as gc
|
||||||
|
|
||||||
#let midas-version = toml("../pyproject.toml").project.version
|
#let midas-version = toml("../pyproject.toml").project.version
|
||||||
#let head-ref = read("../.git/HEAD").split(":").at(1).trim()
|
|
||||||
#let commit-hash = read("../.git/" + head-ref).slice(0, 8)
|
#let commit-hash = if "hash" in sys.inputs {
|
||||||
|
sys.inputs.hash.slice(0, 8)
|
||||||
|
} else {
|
||||||
|
let head-ref = read("../.git/HEAD").split(":").at(1, default: "").trim()
|
||||||
|
if head-ref.len() != 0 {
|
||||||
|
read("../.git/" + head-ref).slice(0, 8)
|
||||||
|
} else {
|
||||||
|
none
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#show: project.with(
|
#show: project.with(
|
||||||
title: [Midas User Manual],
|
title: [Midas User Manual],
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"preview": {},
|
||||||
|
"local": {
|
||||||
|
"codly": "https://github.com/LordBaryhobal/codly-fix-v15/archive/refs/tags/v1.3.1-fix.zip"
|
||||||
|
}
|
||||||
|
}
|
||||||
+6
-2
@@ -52,7 +52,7 @@
|
|||||||
title: none,
|
title: none,
|
||||||
author: none,
|
author: none,
|
||||||
version: "0.0.1",
|
version: "0.0.1",
|
||||||
hash: "abcdefgh",
|
hash: none,
|
||||||
icon-path: none,
|
icon-path: none,
|
||||||
doc,
|
doc,
|
||||||
) = {
|
) = {
|
||||||
@@ -69,13 +69,17 @@
|
|||||||
set raw(syntaxes: path("midas.sublime-syntax"))
|
set raw(syntaxes: path("midas.sublime-syntax"))
|
||||||
|
|
||||||
let front-page() = {
|
let front-page() = {
|
||||||
|
let version-name = [v#version]
|
||||||
|
if hash != none {
|
||||||
|
version-name = [#version-name - #hash]
|
||||||
|
}
|
||||||
align(center)[
|
align(center)[
|
||||||
#{
|
#{
|
||||||
set text(size: 1.5em)
|
set text(size: 1.5em)
|
||||||
std.title()
|
std.title()
|
||||||
}
|
}
|
||||||
|
|
||||||
v#version - #hash
|
#version-name
|
||||||
|
|
||||||
#if icon-path != none {
|
#if icon-path != none {
|
||||||
v(1cm)
|
v(1cm)
|
||||||
|
|||||||
Reference in New Issue
Block a user