org.atproto-nix.project.json
edited
1{
2 "lexicon": 1,
3 "id": "org.atproto-nix.project",
4 "description": "A lexicon for defining metadata about AT Protocol projects and their packaging status in Nix/NixOS.",
5 "defs": {
6 "main": {
7 "type": "record",
8 "description": "Defines a single ATProto project and its Nix packaging information.",
9 "key": "tid",
10 "record": {
11 "type": "object",
12 "required": [
13 "projectName",
14 "repoUrl",
15 "nixStatus",
16 "updatedAt"
17 ],
18 "properties": {
19 "projectName": {
20 "type": "string",
21 "description": "Canonical name of the project (e.g., 'atproto', 'bluesky-client')."
22 },
23 "repoUrl": {
24 "type": "string",
25 "format": "uri",
26 "description": "URL to the official source repository of the project."
27 },
28 "tangledRepo": {
29 "type": "string",
30 "format": "at-uri",
31 "description": "The AT URI of the project's repository on Tangled, if it exists."
32 },
33 "maintainers": {
34 "type": "array",
35 "description": "List of maintainers or teams responsible for packaging, following nixpkgs format.",
36 "items": {
37 "type": "object",
38 "required": [
39 "name"
40 ],
41 "properties": {
42 "name": {
43 "type": "string",
44 "description": "The maintainer's full name or a team name."
45 },
46 "github": {
47 "type": "string",
48 "description": "The maintainer's GitHub username."
49 },
50 "email": {
51 "type": "string",
52 "description": "The maintainer's email address."
53 },
54 "matrix": {
55 "type": "string",
56 "description": "The maintainer's Matrix handle (e.g., '@user:matrix.org')."
57 },
58 "did": {
59 "type": "string",
60 "format": "did",
61 "description": "The maintainer's AT Protocol Decentralized Identifier (DID)."
62 }
63 }
64 }
65 },
66 "nixpkgsAttrPath": {
67 "type": "string",
68 "description": "The Nix/NixOS package attribute path if it exists (e.g., 'pkgs.atproto-pds')."
69 },
70 "nixStatus": {
71 "type": "string",
72 "enum": [
73 "unpackaged",
74 "in-progress",
75 "packaged",
76 "broken",
77 "deprecated"
78 ],
79 "description": "Current packaging status of the project in Nix."
80 },
81 "version": {
82 "type": "string",
83 "description": "The latest known upstream version packaged (or target version)."
84 },
85 "description": {
86 "type": "string",
87 "description": "Short description of the project/package."
88 },
89 "longDescription": {
90 "type": "string",
91 "description": "Longer description or documentation for the package."
92 },
93 "homepage": {
94 "type": "string",
95 "format": "uri",
96 "description": "The package homepage URL."
97 },
98 "downloadPage": {
99 "type": "string",
100 "format": "uri",
101 "description": "Optional download page URL for the package."
102 },
103 "changelog": {
104 "type": "string",
105 "format": "uri",
106 "description": "Optional link to package changelog."
107 },
108 "license": {
109 "type": "string",
110 "description": "Package license SPDX identifier (e.g., 'GPL-3.0-or-later')."
111 },
112 "dependencies": {
113 "type": "array",
114 "items": {
115 "type": "string"
116 },
117 "description": "List of Nix packages that this project depends on."
118 },
119 "platforms": {
120 "type": "array",
121 "items": {
122 "type": "string"
123 },
124 "description": "Platforms the package supports (e.g., 'x86_64-linux')."
125 },
126 "badPlatforms": {
127 "type": "array",
128 "items": {
129 "type": "string"
130 },
131 "description": "Platforms the package does not support."
132 },
133 "notes": {
134 "type": "string",
135 "description": "Optional additional notes (patches, overlays, build instructions)."
136 },
137 "sources": {
138 "type": "array",
139 "items": {
140 "type": "string",
141 "format": "uri"
142 },
143 "description": "List of upstream sources or tarballs used for packaging."
144 },
145 "updatedAt": {
146 "type": "string",
147 "format": "datetime",
148 "description": "Timestamp of the last update to this record."
149 }
150 }
151 }
152 }
153 }
154}