Skip to content

Improve README and add CONTRIBUTING#236

Open
JosephDenman wants to merge 2 commits intomainfrom
JosephDenman/improve-readme
Open

Improve README and add CONTRIBUTING#236
JosephDenman wants to merge 2 commits intomainfrom
JosephDenman/improve-readme

Conversation

@JosephDenman
Copy link
Copy Markdown
Contributor

@JosephDenman JosephDenman commented Mar 19, 2026

  • Rewrote README.md to be a clear, user-facing introduction to Compact -- explains what the language does, shows a real contract example, covers installation via the compact CLI, and links to documentation
  • Overhauled CONTRIBUTING.md with concrete build/test instructions for each component (compiler, CLI, VS Code extension, runtime), expand the generic contribution template with actionable developer setup steps
  • Removed outdated sections from the README (Docker registries, Nexus credentials, Nix permissions workarounds, release zip instructions) that no longer reflect how the project is distributed

Addresses issue #46

@JosephDenman JosephDenman requested review from a team as code owners March 19, 2026 20:53
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 19, 2026

Plugin Test Results

 1 files   3 suites   1s ⏱️
21 tests 21 ✅ 0 💤 0 ❌
23 runs  23 ✅ 0 💤 0 ❌

Results for commit 4b3f3fe.

♻️ This comment has been updated with latest results.

@JosephDenman JosephDenman force-pushed the JosephDenman/improve-readme branch from 5ad3cd7 to f60cd9f Compare March 19, 2026 20:58
@JosephDenman JosephDenman self-assigned this Mar 19, 2026
@JosephDenman JosephDenman added documentation Improvements or additions to documentation release: 0.31 Expected April 7 run-release-workflow labels Mar 19, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 19, 2026

Compactc E2E Tests Results

2 825 tests   - 12 175   2 825 ✅  - 12 175   5m 58s ⏱️ - 24m 1s
    1 suites ±     0       0 💤 ±     0 
    1 files   ±     0       0 ❌ ±     0 

Results for commit 4b3f3fe. ± Comparison against base commit fd5310c.

This pull request removes 15000 and adds 2825 tests. Note that renamed tests count towards both.
src/tests/fuzzer.e2e.test.ts ‑ [E2E] Fuzzer tests for compiler > should be able to compile synthetic contract: 'assert_contract_0.compact'
src/tests/fuzzer.e2e.test.ts ‑ [E2E] Fuzzer tests for compiler > should be able to compile synthetic contract: 'assert_contract_1.compact'
src/tests/fuzzer.e2e.test.ts ‑ [E2E] Fuzzer tests for compiler > should be able to compile synthetic contract: 'assert_contract_10.compact'
src/tests/fuzzer.e2e.test.ts ‑ [E2E] Fuzzer tests for compiler > should be able to compile synthetic contract: 'assert_contract_100.compact'
src/tests/fuzzer.e2e.test.ts ‑ [E2E] Fuzzer tests for compiler > should be able to compile synthetic contract: 'assert_contract_101.compact'
src/tests/fuzzer.e2e.test.ts ‑ [E2E] Fuzzer tests for compiler > should be able to compile synthetic contract: 'assert_contract_102.compact'
src/tests/fuzzer.e2e.test.ts ‑ [E2E] Fuzzer tests for compiler > should be able to compile synthetic contract: 'assert_contract_103.compact'
src/tests/fuzzer.e2e.test.ts ‑ [E2E] Fuzzer tests for compiler > should be able to compile synthetic contract: 'assert_contract_104.compact'
src/tests/fuzzer.e2e.test.ts ‑ [E2E] Fuzzer tests for compiler > should be able to compile synthetic contract: 'assert_contract_105.compact'
src/tests/fuzzer.e2e.test.ts ‑ [E2E] Fuzzer tests for compiler > should be able to compile synthetic contract: 'assert_contract_106.compact'
…
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.W6EjZR/temp-test-aSg9FG/contract_0.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.W6EjZR/temp-test-aSg9FG/contract_1.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.W6EjZR/temp-test-aSg9FG/contract_10.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.W6EjZR/temp-test-aSg9FG/contract_100.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.W6EjZR/temp-test-aSg9FG/contract_1000.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.W6EjZR/temp-test-aSg9FG/contract_1001.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.W6EjZR/temp-test-aSg9FG/contract_1002.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.W6EjZR/temp-test-aSg9FG/contract_1003.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.W6EjZR/temp-test-aSg9FG/contract_1004.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.W6EjZR/temp-test-aSg9FG/contract_1005.compact'
…

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 19, 2026

Flaky Rate

Overall Flakiness 0.00%    ±0

No current tests have flaky rates to display ✨

Github Test Reporter by CTRF 💚


Flaky Rate

Overall Flakiness 0.00%    ±0

No current tests have flaky rates to display ✨

Github Test Reporter by CTRF 💚

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 19, 2026

Compactc E2E Tests Results - macos-release-aarch64

  1 files   48 suites   2m 0s ⏱️
467 tests 460 ✅ 7 💤 0 ❌
478 runs  471 ✅ 7 💤 0 ❌

Results for commit 949798c.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 19, 2026

Compactc E2E Tests Results - linux-release-aarch64

  1 files   48 suites   3m 24s ⏱️
467 tests 460 ✅ 7 💤 0 ❌
478 runs  471 ✅ 7 💤 0 ❌

Results for commit 949798c.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 19, 2026

Compactc E2E Tests Results - linux-release-x86_64

  1 files   48 suites   4m 0s ⏱️
467 tests 460 ✅ 7 💤 0 ❌
478 runs  471 ✅ 7 💤 0 ❌

Results for commit 949798c.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 19, 2026

Compactc E2E Tests Results - macos-release-x86_64

  1 files   48 suites   5m 41s ⏱️
467 tests 460 ✅ 7 💤 0 ❌
478 runs  471 ✅ 7 💤 0 ❌

Results for commit 949798c.

♻️ This comment has been updated with latest results.

@JosephDenman JosephDenman force-pushed the JosephDenman/improve-readme branch 2 times, most recently from 7702bff to 28d149e Compare March 19, 2026 22:04
@kmillikin kmillikin self-requested a review March 23, 2026 12:32
CONTRIBUTING.md Outdated
nix develop
```

This sets up `CHEZSCHEMELIBDIRS` and all required dependencies. The default shell includes Node.js, Yarn, and the runtime packages.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Just say that it "sets up environment variables" or the like. Users don't need to know the specific details and they inevitably get out of date.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed

CONTRIBUTING.md Outdated
```
// This file is part of <REPLACE WITH REPOSITORY NAME>.
// This file is part of Compact.
// Copyright (C) 2025 Midnight Foundation
Copy link
Copy Markdown
Contributor

@kmillikin kmillikin Mar 23, 2026

Choose a reason for hiding this comment

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

Copyright year is 2026, holder is "contributors to Minokawa Compact".

See: https://lf-hyperledger.atlassian.net/wiki/spaces/TSC/pages/21430874/Copyright+and+License+Policy#Copyright for the guidance.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed

CONTRIBUTING.md Outdated
```

Where this is not possible, a copy of the Apache 2.0 or the repository's top-level LICENSE file in the same directory is required
Adjust the comment syntax for the file type (e.g., `#` for shell scripts, `--` for Agda). Where comment headers are not possible, include a copy of the LICENSE file in the same directory.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

e.g., ;;; for Scheme, # for shell scripts, and -- for Agda). We have not been following the guidance about including the LICENSE file. For example, compact/doc has files without a copyright notice and no LICENSE file. The LFDT guidance just has it at the top level: https://lf-decentralized-trust.github.io/governance/governing-documents/repository-structure/

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed

CONTRIBUTING.md Outdated
## Code of Conduct

## Support and Communication:
This project follows the [Contributor Covenant](./CODE_OF_CONDUCT.md). Please report any concerns to legal@midnight.foundation.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We follow the LFDT code of conduct: https://www.lfdecentralizedtrust.org/code-of-conduct

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed

CONTRIBUTING.md Outdated

## Code Contribution Process

* **Pull Requests:** Code contributions are submitted via Pull Requests.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'd make this a numbered list, since some of them can't be done in any order.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed

@JosephDenman JosephDenman force-pushed the JosephDenman/improve-readme branch 2 times, most recently from 4b3f3fe to 0829995 Compare March 25, 2026 17:52
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 25, 2026

Plugin Test Summary

 1 files   3 suites   1s ⏱️
21 tests 21 ✅ 0 💤 0 ❌
23 runs  23 ✅ 0 💤 0 ❌

Results for commit 5f0391d.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 25, 2026

Compactc E2E Test Summary

    1 files  ±    0      1 suites   - 47   6m 6s ⏱️ + 3m 37s
2 825 tests +2 358  2 825 ✅ +2 364  0 💤  - 6  0 ❌ ±0 
2 825 runs  +2 347  2 825 ✅ +2 353  0 💤  - 6  0 ❌ ±0 

Results for commit 5f0391d. ± Comparison against base commit 90d3f41.

This pull request removes 467 and adds 2825 tests. Note that renamed tests count towards both.
src/tests/bugs/compiler.bugs.e2e.test.ts ‑ [Bugs] Compiler > '[MFG-413] should compile and not thro…'
src/tests/bugs/compiler.bugs.e2e.test.ts ‑ [Bugs] Compiler > '[PM-12371] should compile and not thr…'
src/tests/bugs/compiler.bugs.e2e.test.ts ‑ [Bugs] Compiler > '[PM-15405] should compile and not thr…'
src/tests/bugs/compiler.bugs.e2e.test.ts ‑ [Bugs] Compiler > '[PM-15733] should compile and not thr…'
src/tests/bugs/compiler.bugs.e2e.test.ts ‑ [Bugs] Compiler > '[PM-15826] should compile and not thr…'
src/tests/bugs/compiler.bugs.e2e.test.ts ‑ [Bugs] Compiler > '[PM-16040] should compile and not thr…'
src/tests/bugs/compiler.bugs.e2e.test.ts ‑ [Bugs] Compiler > '[PM-16059] should compile and not thr…'
src/tests/bugs/compiler.bugs.e2e.test.ts ‑ [Bugs] Compiler > '[PM-16447] should compile and not thr…'
src/tests/bugs/compiler.bugs.e2e.test.ts ‑ [Bugs] Compiler > '[PM-16853] should compile and not thr…'
src/tests/bugs/compiler.bugs.e2e.test.ts ‑ [Bugs] Compiler > '[PM-16999] should return an error if …'
…
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.RR1xdp/temp-test-Tfvzgc/contract_0.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.RR1xdp/temp-test-Tfvzgc/contract_1.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.RR1xdp/temp-test-Tfvzgc/contract_10.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.RR1xdp/temp-test-Tfvzgc/contract_100.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.RR1xdp/temp-test-Tfvzgc/contract_1000.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.RR1xdp/temp-test-Tfvzgc/contract_1001.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.RR1xdp/temp-test-Tfvzgc/contract_1002.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.RR1xdp/temp-test-Tfvzgc/contract_1003.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.RR1xdp/temp-test-Tfvzgc/contract_1004.compact'
src/tests/extracted.e2e.test.ts ‑ [E2E] Extracted unit tests for compiler > should be able to compile extracted contract: '/home/runner/work/_temp/nix-shell.RR1xdp/temp-test-Tfvzgc/contract_1005.compact'
…

♻️ This comment has been updated with latest results.

@JosephDenman JosephDenman mentioned this pull request Mar 26, 2026
Signed-off-by: JosephDenman <joseph.denman@iohk.io>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

For contributing to the compiler, we should mention somewhere that add unit test in compiler/test.ss and follow the formatting and run ./compiler/go inside a nix shell.

We should also point out that if there's a change to the language that requires updating the language reference one should update compiler/compact-reference-proto.mdx and grammars aren't inserted by their tables instead they're inserted using @(anchor-here ...) for terminals and @(request-snippet ...) for non-terminals. Additionally, if a change requires update to the language reference (now called compact-reference) one should run ./compiler/go since ./compiler/go now gives warnings if it's missing terminals and non-terminals (I believe this is the case but it's worth double checking with Kent).

Finally, if ./compiler/go fails or gives warning it should be fixed.

We should also have guardrails for contributing to CLI tool and runtime (like where to add test, the format of test, what to run--I can see we already have how to run test but we should make it clear that we expect a contributor to add test and run them before committing their changes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I forgot, we should also introduce compiler.md and ask contributors to update it when needed.

# Compactc circuit compiler
# Compact

This project integrates with the Midnight Network.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I believe devrel complained that we don't have this and that's why we added it. So maybe we should keep it--unless I've been out of loop on it and they changed it again.

README.md Outdated
# Compact

This project integrates with the Midnight Network.
[![Compiler CI](https://img.shields.io/github/actions/workflow/status/LFDT-Minokawa/compact/build-compiler.yml?label=compiler%20CI)](https://github.com/LFDT-Minokawa/compact/actions/workflows/build-compiler.yml)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ah! I also felt the need to have this but I added it in a separate file (see https://github.com/LFDT-Minokawa/compact/blob/issue-61/DASHBOARD.md). I like separation of concern of putting it into another file but I don't have a strong position on it. In any case, we should consolidate these.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

On second thought, I like how this looks. I'll commit the ones that their workflow already exists and add the one that my PR is also adding its workflow once your PR is merged.

Signed-off-by: pataei <paris.ataei@gmail.com>
@@ -1,298 +1,163 @@
# Compactc circuit compiler
# Compact

Check failure

Code scanning / Scorecard

Vulnerabilities High

score is 0: 24 existing vulnerabilities detected:
Warn: Project is vulnerable to: GHSA-h395-gr6q-cpjc
Warn: Project is vulnerable to: RUSTSEC-2025-0119
Warn: Project is vulnerable to: RUSTSEC-2026-0049 / GHSA-pwjx-qhcg-rvj4
Warn: Project is vulnerable to: RUSTSEC-2026-0068 / GHSA-gchp-q4r4-x4ff
Warn: Project is vulnerable to: RUSTSEC-2026-0067 / GHSA-j4xf-2g29-59ph
Warn: Project is vulnerable to: GHSA-2g4f-4pwh-qvx6
Warn: Project is vulnerable to: GHSA-f886-m6hf-6m8v
Warn: Project is vulnerable to: GHSA-23c5-xmqv-rm74
Warn: Project is vulnerable to: GHSA-3ppc-4f35-3m26
Warn: Project is vulnerable to: GHSA-7r86-cg39-jmmj
Warn: Project is vulnerable to: GHSA-3v7f-55p6-f55p
Warn: Project is vulnerable to: GHSA-c2c7-rcm5-vvqj
Warn: Project is vulnerable to: GHSA-5c6j-r48x-rmvq
Warn: Project is vulnerable to: GHSA-qj8w-gfj5-8c6v
Warn: Project is vulnerable to: GHSA-qpx9-hpmf-5gmw
Warn: Project is vulnerable to: GHSA-2qvq-rjwj-gvw9
Warn: Project is vulnerable to: GHSA-2w6w-674q-4c4q
Warn: Project is vulnerable to: GHSA-3mfm-83xf-c92r
Warn: Project is vulnerable to: GHSA-9cx6-37pm-9jff
Warn: Project is vulnerable to: GHSA-xhpv-hc6g-r9c6
Warn: Project is vulnerable to: GHSA-xjpj-3mr7-gcpf
Warn: Project is vulnerable to: GHSA-38c4-r59v-3vqw
Warn: Project is vulnerable to: GHSA-48c2-rrv3-qjmp
Warn: Project is vulnerable to: GHSA-7h2j-956f-4vf2
Click Remediation section below to solve this issue
@@ -1,298 +1,163 @@
# Compactc circuit compiler
# Compact

Check warning

Code scanning / Scorecard

SAST Medium

score is 0: no SAST tool detected:
Warn: no pull requests merged into dev branch
Click Remediation section below to solve this issue
@@ -1,298 +1,163 @@
# Compactc circuit compiler
# Compact

Check warning

Code scanning / Scorecard

Fuzzing Medium

score is 0: project is not fuzzed:
Warn: no fuzzer integrations found
Click Remediation section below to solve this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation release: 0.31 Expected April 7

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants