ton-org / blueprint

TON development for professionals - all-in-one tool for writing, testing and deploying smart contracts
475 stars 95 forks source link

Fully support `tact.config.json` in Tact projects and move away from `wrappers/` (`compilables/`) #138

Open novusnota opened 4 months ago

novusnota commented 4 months ago

Problem

At the moment, it's impossible to control anything beyond project-specific compilation options in tact.config.json as it's used in Blueprint.

Furthermore, with upcoming introduction of things like compilerVersion to tact.config.json (https://github.com/tact-lang/tact/issues/574), the Tact and Blueprint would become even more driven apart. And that's not good :)

Current solution

In PR https://github.com/ton-org/blueprint/pull/96, the auto-sourcing of tact.config.json was introduced. However, in order not to re-architect the compilation pipeline, I decided to keep the changes there to a minimum — and so the properties in tact.config.json had to be re-purposed to match the Blueprint approach to compilation.

While this made it possible to better configure Blueprint behavior in Tact projects, it introduced a significant discrepancy between the Tact compiler and Blueprint.

Suggestion for a better solution

Get rid of wrappers/ (recently renamed to compilables/) completely in Tact projects and switch to using tact.config.json:

This change would:

Useful links: