Lexicon for tracking atproto projects and their packaging status for nix/nixos
org.atproto-nix.project.json edited
154 lines 5.1 kB view raw
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}