<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tazel, branch feature/custom-commands-and-options</title>
<subtitle>A build system and package manager for C, C++, Objective-C, Objective-C++ and Zig, with Kotlin project files.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/tazel/'/>
<entry>
<title>Bring Tazel Custom Commands and Tazel Options from the legacy Tazel</title>
<updated>2026-11-12T13:05:54+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-12T13:05:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/tazel/commit/?id=74c6d3b2e85cc51e5dde1bcccae581e23eae20df'/>
<id>74c6d3b2e85cc51e5dde1bcccae581e23eae20df</id>
<content type='text'>
The code and tests come from Progmasoft/tazel-legacy, with the packages
renamed so that the shared lexer sits beside both users:

- com.progmasoft.tazel.custom.commands        -&gt; com.progmasoft.tazel.dsl.custom
- com.progmasoft.tazel.custom.commands.lexer  -&gt; com.progmasoft.tazel.dsl.custom.lexer
- com.progmasoft.tazel.custom.commands.parser -&gt; com.progmasoft.tazel.dsl.custom.parser
- com.progmasoft.tazel.options                -&gt; com.progmasoft.tazel.dsl.options

tazel custom runs a command of the nearest tazel_custom.txt in the
directory of that file, or lists the commands; the name matching, &lt;N&gt;
and &lt;*&gt; arguments, the -- separator, s(...) shell steps (CMD on Windows,
sh elsewhere) and the strict-process check are those of the legacy
Tazel. tazel_options.txt is read as before: a sandbox asked for in any
file at or above the directory stops the command, since Tazel has no
MicroVM to start yet.

The process interface (driver.Processes) and the suggestions under
errors come along; program lookup on PATH is driver.Programs, the part
of the legacy Toolchain that is not about Tala tools. OperatingSystem
becomes the Os of the project files. An unknown command now gets a
"did you mean" hint.

The 33 legacy tests of these parts pass against a smaller fixture.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The code and tests come from Progmasoft/tazel-legacy, with the packages
renamed so that the shared lexer sits beside both users:

- com.progmasoft.tazel.custom.commands        -&gt; com.progmasoft.tazel.dsl.custom
- com.progmasoft.tazel.custom.commands.lexer  -&gt; com.progmasoft.tazel.dsl.custom.lexer
- com.progmasoft.tazel.custom.commands.parser -&gt; com.progmasoft.tazel.dsl.custom.parser
- com.progmasoft.tazel.options                -&gt; com.progmasoft.tazel.dsl.options

tazel custom runs a command of the nearest tazel_custom.txt in the
directory of that file, or lists the commands; the name matching, &lt;N&gt;
and &lt;*&gt; arguments, the -- separator, s(...) shell steps (CMD on Windows,
sh elsewhere) and the strict-process check are those of the legacy
Tazel. tazel_options.txt is read as before: a sandbox asked for in any
file at or above the directory stops the command, since Tazel has no
MicroVM to start yet.

The process interface (driver.Processes) and the suggestions under
errors come along; program lookup on PATH is driver.Programs, the part
of the legacy Toolchain that is not about Tala tools. OperatingSystem
becomes the Os of the project files. An unknown command now gets a
"did you mean" hint.

The 33 legacy tests of these parts pass against a smaller fixture.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2 from Progmasoft/feature/labels-and-project-files</title>
<updated>2026-11-12T13:01:45+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-12T13:01:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/tazel/commit/?id=0a37512d10792996402c21051c6ad58e4f5f506e'/>
<id>0a37512d10792996402c21051c6ad58e4f5f506e</id>
<content type='text'>
Read MODULE.kts and BUILD.kts, and resolve labels</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Read MODULE.kts and BUILD.kts, and resolve labels</pre>
</div>
</content>
</entry>
<entry>
<title>Read MODULE.kts and BUILD.kts, and resolve labels</title>
<updated>2026-11-12T04:46:46+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-12T04:46:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/tazel/commit/?id=3bffdc1d747a73ff83fab83f1a51b53c0ab507d9'/>
<id>3bffdc1d747a73ff83fab83f1a51b53c0ab507d9</id>
<content type='text'>
Tazel now reads the project files of the accepted DSL:

- Labels: //:x for the root BUILD.kts, //dir/:x for dir/BUILD.kts, :x for
  the same file, @name//:x for a dependency, and the patterns //dir/... and
  //... . The //dir shorthand is refused with a hint.
- MODULE.kts: module (name, SemVer version, description, authors, license),
  dependencies (implementation, testImplementation, localImplementation,
  localTestImplementation, with alias), viget (push, pushTarget, exclude),
  cache and execution. Duplicate dependency names, a push without version,
  description or author, and a pushTarget in a private BUILD.kts are errors.
- BUILD.kts: isPublic per file and c, cpp, objc, objcpp and zig targets,
  each with bin, staticlib, sharedlib and test. The scopes carry type
  markers of their language and kind, so a setting that one does not have
  (exports on a bin, args on a staticlib, a C standard on C++, arc on C,
  compiler on Zig, test settings on a bin, bundle on C++) is a compile
  error at its line in the project file.
- A target block runs for each triple and build mode it is built for; OS
  and ARCH come from the LLVM triple, BUILD_MODE from the command. Its
  depends are resolved: libraries only, visibility through isPublic, test
  dependencies for test targets only, paths kept inside the module.
- Directories starting with a dot and nested modules are not packages;
  file names are compared case-sensitively.

The tests load a reference module that uses every setting of the DSL and
configure each of its eleven targets for each triple and mode.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Tazel now reads the project files of the accepted DSL:

- Labels: //:x for the root BUILD.kts, //dir/:x for dir/BUILD.kts, :x for
  the same file, @name//:x for a dependency, and the patterns //dir/... and
  //... . The //dir shorthand is refused with a hint.
- MODULE.kts: module (name, SemVer version, description, authors, license),
  dependencies (implementation, testImplementation, localImplementation,
  localTestImplementation, with alias), viget (push, pushTarget, exclude),
  cache and execution. Duplicate dependency names, a push without version,
  description or author, and a pushTarget in a private BUILD.kts are errors.
- BUILD.kts: isPublic per file and c, cpp, objc, objcpp and zig targets,
  each with bin, staticlib, sharedlib and test. The scopes carry type
  markers of their language and kind, so a setting that one does not have
  (exports on a bin, args on a staticlib, a C standard on C++, arc on C,
  compiler on Zig, test settings on a bin, bundle on C++) is a compile
  error at its line in the project file.
- A target block runs for each triple and build mode it is built for; OS
  and ARCH come from the LLVM triple, BUILD_MODE from the command. Its
  depends are resolved: libraries only, visibility through isPublic, test
  dependencies for test targets only, paths kept inside the module.
- Directories starting with a dot and nested modules are not packages;
  file names are compared case-sensitively.

The tests load a reference module that uses every setting of the DSL and
configure each of its eleven targets for each triple and mode.
</pre>
</div>
</content>
</entry>
<entry>
<title>Start Tazel again at 0.1.0 for C, C++, Objective-C, Objective-C++ and Zig</title>
<updated>2026-11-12T04:31:31+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-12T04:31:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/tazel/commit/?id=f7545228848e250856b9cdf2cf92538dfda0eb4f'/>
<id>f7545228848e250856b9cdf2cf92538dfda0eb4f</id>
<content type='text'>
Tazel restarts as a build system and package manager for C, C++,
Objective-C, Objective-C++ and Zig, with MODULE.kts and BUILD.kts project
files and labels such as //app/:greeter. The earlier Tazel, the build system
of Tala (0.1.0 to 0.4.0.3), is archived as Progmasoft/tazel-legacy, with its
history and releases.

This first commit holds the build of the program only: Gradle 9 with the
Kotlin JVM plugin (JDK 25, warnings as errors), Spotless, JaCoCo, the
Kotlin scripting libraries the project files will need, Mordant, and an
entry point that answers version and help and refuses anything else with
exit code 2. CI runs gradlew check installDist on Linux, Windows and macOS;
CodeQL, zizmor and Dependency Review come from the earlier repository.
The license is MPL-2.0 WITH AdditionRef-Progmasoft-Exception-2.0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Tazel restarts as a build system and package manager for C, C++,
Objective-C, Objective-C++ and Zig, with MODULE.kts and BUILD.kts project
files and labels such as //app/:greeter. The earlier Tazel, the build system
of Tala (0.1.0 to 0.4.0.3), is archived as Progmasoft/tazel-legacy, with its
history and releases.

This first commit holds the build of the program only: Gradle 9 with the
Kotlin JVM plugin (JDK 25, warnings as errors), Spotless, JaCoCo, the
Kotlin scripting libraries the project files will need, Mordant, and an
entry point that answers version and help and refuses anything else with
exit code 2. CI runs gradlew check installDist on Linux, Windows and macOS;
CodeQL, zizmor and Dependency Review come from the earlier repository.
The license is MPL-2.0 WITH AdditionRef-Progmasoft-Exception-2.0.
</pre>
</div>
</content>
</entry>
</feed>
