<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tazel, branch feature/labels-and-project-files</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>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>
