From af67f0352b280aba24d158a548c963b256f5bff6 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Jan 09 2025 17:16:13 +0000 Subject: New guidelines for Tree-sitter parsers --- diff --git a/guidelines/modules/ROOT/nav.adoc b/guidelines/modules/ROOT/nav.adoc index 5a366c7..ed12e57 100644 --- a/guidelines/modules/ROOT/nav.adoc +++ b/guidelines/modules/ROOT/nav.adoc @@ -81,5 +81,6 @@ ** xref:MPI.adoc[MPI] ** xref:ShellCompletions.adoc[Shell Completions] ** xref:SugarActivityGuidelines.adoc[Sugar activities] +** xref:Tree-sitter.adoc[Tree-sitter parsers] ** xref:Web_Assets.adoc[Web Assets] ** xref:WordPress_plugin_packaging_guidelines.adoc[WordPress extensions] diff --git a/guidelines/modules/ROOT/pages/Tree-sitter.adoc b/guidelines/modules/ROOT/pages/Tree-sitter.adoc new file mode 100644 index 0000000..fafe34c --- /dev/null +++ b/guidelines/modules/ROOT/pages/Tree-sitter.adoc @@ -0,0 +1,51 @@ += Packaging of Tree-sitter parsers + +== Macros + +The macros in package `tree-sitter-srpm-macros` can do most of the work +for you. + +=== Specifying the build system + +Declare that this is a Tree-sitter parser with: + +[source,spec] +---- +BuildSystem: tree_sitter +---- + +The `%prep`, `%conf`, `%generate_buildrequires`, `%build`, `%install` +and `%check` sections will all be provided for you. + +This requires RPM version 4.20 (i.e., Fedora 41) or greater. + +=== Defining packages and their contents + +Generate `%package` and `%files` sections for the subpackages built from your package: + +[source,spec] +---- +%{tree_sitter -l language-name} +---- + +Here, _language-name_ is the human-friendly name(s) of the Language +parser(s) provided by this package, to be mentioned in the package +summaries and descriptions. + +== Example spec file + +[source,spec] +---- +Name: tree-sitter-typescript +Version: 0.21.2 +Release: %autorelease +License: MIT +URL: https://github.com/tree-sitter/%{name} +Source: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +BuildSystem: tree_sitter + +%{tree_sitter -l %{quote:TypeScript and TSX}} + +%changelog +%autochangelog +---- diff --git a/guidelines/modules/ROOT/pages/index.adoc b/guidelines/modules/ROOT/pages/index.adoc index 36f7272..e01f31b 100644 --- a/guidelines/modules/ROOT/pages/index.adoc +++ b/guidelines/modules/ROOT/pages/index.adoc @@ -3247,5 +3247,6 @@ have specific guidelines written for them, located on their own pages: * xref:Rust.adoc[Rust] * xref:SugarActivityGuidelines.adoc[Sugar activities] * xref:Tcl.adoc[Tcl/Tk extensions] +* xref:Tree-sitter.adoc[Tree-sitter parsers] * xref:Web_Assets.adoc[Web Assets] * xref:WordPress_plugin_packaging_guidelines.adoc[WordPress extensions]