Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -130,3 +130,4 @@ temp/
/npm/release.json
/npm/transpile.worker.mjs
/npm/glue.py
/npm/LICENSE
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ Python entry points are `pineforge_codegen.transpile()` and
`pineforge_codegen.transpile_full()`; the Pyodide package ships the
`gate/glue.py` JSON protocol. See `docs/PUBLIC_CONTRACT.md`.

This is the **source-available** half of the PineForge stack (PolyForm
Noncommercial — see `LICENSE`). The runtime half (`pineforge-engine`,
This is the **source-available** half of the PineForge stack (PineForge
Source License 1.0 — see `LICENSE`). The runtime half (`pineforge-engine`,
Apache-2.0) lives in a sibling repo and is typically checked out at
`../pineforge-engine`. From 1.0.0 on, a released codegen `X.Y.Z` pairs only
with engine `vX.Y.Z`; prereleases match exactly. Codegen 1.1.0 pairs with
Expand Down
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ Python entry points are `pineforge_codegen.transpile()` and
`pineforge_codegen.transpile_full()`; the Pyodide package ships the
`gate/glue.py` JSON protocol. See `docs/PUBLIC_CONTRACT.md`.

This is the **source-available** half of the PineForge stack (PolyForm
Noncommercial — see `LICENSE`). The runtime half (`pineforge-engine`,
This is the **source-available** half of the PineForge stack (PineForge
Source License 1.0 — see `LICENSE`). The runtime half (`pineforge-engine`,
Apache-2.0) lives in a sibling repo and is typically checked out at
`../pineforge-engine`. From 1.0.0 on, a released codegen `X.Y.Z` pairs only
with engine `vX.Y.Z`; prereleases match exactly. Codegen 1.1.0 pairs with
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This is the source-available PineScript v6 to C++ translator. Read the
[license and contribution terms](LEGAL.md) before sending a material change.
Contributions use the Developer Certificate of Origin: add a `Signed-off-by`
line with `git commit -s`. Material contributions also require a Contributor
License Agreement so PineForge can include them in its commercial license;
License Agreement so pineforge, LLC can include them in its commercial licenses;
contact luis@4pass.com.tw before opening a material pull request.

## Local setup
Expand Down
16 changes: 12 additions & 4 deletions LEGAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,21 @@ Summary of licensing, third-party components, and trademarks for `pineforge-code

## License

`pineforge-codegen` is **source-available**, **not** OSI "open source." It is distributed under the **PolyForm Noncommercial License 1.0.0** with two supplemental terms — see [LICENSE](LICENSE), which is the controlling text:
`pineforge-codegen` is **source-available**, **not** OSI "open source." It is distributed under the **PineForge Source License 1.0** — see [LICENSE](LICENSE), which is the controlling text.

- **Personal Trading exception** — free to research, backtest, and trade your **own** capital, for an individual acting on their own behalf.
- **Commercial use** — companies, funds, managing third-party capital, embedding in a product, or operating a hosted/public-facing service requires a **commercial license** (email **luis@4pass.com.tw**).
- **Noncommercial use** — any noncommercial purpose, and use by a charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization or government institution for its teaching, research and other operations, is free.
- **Personal Trading** — free for a natural person to research, develop or backtest strategies and trade their **own** account with their **own** capital. Household, joint and retirement accounts and ordinary margin count as their own; a company's or fund's account does not, even a company they wholly own.
- **Investment management** — managing, advising on or trading investment capital, or researching strategies for it (a friend's, clients' or investors' capital, an endowment, a pension fund, a public fund, a foundation's treasury), is **Commercial Use for every individual and every organization**, noncommercial organizations included, except Personal Trading.
- **Commercial Use** — investment management and any other use that is not free, such as use by or for a company or fund, embedding the software or its output in a product or service for others, or operating a hosted/public-facing service with it, requires a **commercial license** (email **enterprise@pineforge.dev**; the commercial-license store is coming soon).

Describe this project as **"source-available"** rather than "open source." The runtime it targets, [`pineforge-engine`](https://github.com/pineforge-4pass/pineforge-engine), is separate and **Apache-2.0**.

Releases up to and including 1.1.0 were published under the license text that came with them (the PolyForm Noncommercial License 1.0.0 with a PineForge supplement); copies of those releases keep that license. The PineForge Source License 1.0 is a separate license and is not a PolyForm license.

## Copyright and licensor

The licensor is **pineforge, LLC**, a Delaware limited liability company. It holds the copyright in `pineforge-codegen`; the founder's rights in the software are assigned to it. Commercial licenses are granted by pineforge, LLC.

## What this repository is

A pure-Python PineScript v6 → C++ transpiler that emits source against the public PineForge engine C-ABI. It implements PineScript v6 from **TradingView's publicly published language documentation**; it does **not** incorporate TradingView proprietary source. Names like "PineScript v6" are used **nominatively** to describe the input language.
Expand All @@ -25,7 +33,7 @@ The transpiler has **no runtime dependencies** (`transpile()` and `transpile_ful

## Contributions

Contributions are accepted under a Developer Certificate of Origin (`Signed-off-by`). Because this project is **dual-licensed** (source-available + a sold commercial license), material contributions require a Contributor License Agreement granting PineForge the right to include the contribution in the commercial license; otherwise it cannot be accepted. See [CONTRIBUTING.md](CONTRIBUTING.md) (or contact luis@4pass.com.tw) before opening a material PR.
Contributions are accepted under a Developer Certificate of Origin (`Signed-off-by`). Because this project is **dual-licensed** (source-available + a sold commercial license), material contributions require a Contributor License Agreement granting pineforge, LLC the right to include the contribution in its commercial licenses; otherwise it cannot be accepted. See [CONTRIBUTING.md](CONTRIBUTING.md) (or contact luis@4pass.com.tw) before opening a material PR.

## No warranty

Expand Down
Loading
Loading