|
| 1 | +--- |
| 2 | +title: Repository Topics Guide |
| 3 | +description: How to select and manage topics for DecisionsDev repositories to improve discoverability and organization |
| 4 | +--- |
| 5 | + |
| 6 | +## Overview |
| 7 | + |
| 8 | +This guide helps contributors select appropriate topics for their DecisionsDev repositories. Topics improve discoverability and help organize the DecisionsDev ecosystem. |
| 9 | + |
| 10 | +## π― Quick Start for Contributors |
| 11 | + |
| 12 | +### Step 1: Discover Existing Topics |
| 13 | + |
| 14 | +Before adding topics to your repository, see what topics are already in use: |
| 15 | + |
| 16 | +```bash |
| 17 | +# List all topics currently used in DecisionsDev |
| 18 | +node tools/list-all-topics.js |
| 19 | + |
| 20 | +# See which repositories use each topic |
| 21 | +node tools/list-all-topics.js --verbose |
| 22 | + |
| 23 | +# Filter by pattern |
| 24 | +node tools/list-all-topics.js --pattern "product-*" |
| 25 | +``` |
| 26 | + |
| 27 | +### Step 2: Select Relevant Topics |
| 28 | + |
| 29 | +**Choose 3-7 topics** that best describe your repository: |
| 30 | + |
| 31 | +1. **Reuse existing topics** whenever possible for consistency |
| 32 | +2. **Select the most relevant** - quality over quantity |
| 33 | +3. **Use lowercase with hyphens** (e.g., `decision-center`, not `DecisionCenter`) |
| 34 | +4. **Avoid redundancy** - don't add both `odm` and `ibm-odm` (use `odm`) |
| 35 | + |
| 36 | +### Step 3: Add Topics to Your Repository |
| 37 | + |
| 38 | +#### Via GitHub Web UI (Easiest) |
| 39 | + |
| 40 | +1. Go to your repository on GitHub |
| 41 | +2. Click the gear icon βοΈ next to "About" on the right sidebar |
| 42 | +3. In the "Topics" field, add your selected topics |
| 43 | +4. Click "Save changes" |
| 44 | + |
| 45 | +#### Via GitHub CLI |
| 46 | + |
| 47 | +```bash |
| 48 | +# Add topics one at a time |
| 49 | +gh repo edit DecisionsDev/your-repo-name --add-topic odm |
| 50 | +gh repo edit DecisionsDev/your-repo-name --add-topic docker |
| 51 | +gh repo edit DecisionsDev/your-repo-name --add-topic tutorial |
| 52 | +``` |
| 53 | + |
| 54 | +## π Most Common Topics |
| 55 | + |
| 56 | +Based on current usage across DecisionsDev repositories: |
| 57 | + |
| 58 | +### Products (25+ repos) |
| 59 | +- **`odm`** β IBM Operational Decision Manager (most used) |
| 60 | +- **`ibm`** β IBM products in general |
| 61 | +- **`decision-intelligence`** β IBM Decision Intelligence |
| 62 | +- **`bai`** β Business Automation Insights |
| 63 | +- **`cp4ba`** β Cloud Pak for Business Automation |
| 64 | + |
| 65 | +### Technologies (10+ repos) |
| 66 | +- **`business-rules`** β Business rules engines |
| 67 | +- **`artificial-intelligence`** β AI/ML integrations |
| 68 | +- **`docker`** β Docker containers |
| 69 | +- **`kubernetes`** β Kubernetes orchestration |
| 70 | +- **`java`** β Java applications |
| 71 | +- **`rpa`** β Robotic Process Automation |
| 72 | + |
| 73 | +### Types (5+ repos) |
| 74 | +- **`tutorial`** β Step-by-step guides |
| 75 | +- **`sample`** β Code samples |
| 76 | +- **`integration`** β Integration examples |
| 77 | +- **`tools`** β Utilities and tools |
| 78 | + |
| 79 | +## π¨ Topic Selection Examples |
| 80 | + |
| 81 | +### Example 1: ODM Docker Tutorial |
| 82 | +**Repository**: A tutorial showing how to deploy ODM with Docker |
| 83 | + |
| 84 | +**Good topics**: |
| 85 | +``` |
| 86 | +odm, docker, tutorial, business-rules |
| 87 | +``` |
| 88 | +**Why**: Uses existing popular topics, clearly describes content |
| 89 | + |
| 90 | +**Avoid**: |
| 91 | +``` |
| 92 | +ibm-odm, odmdev-docker, docker-image, dockerfiles, microservices |
| 93 | +``` |
| 94 | +**Why**: Too many topics, includes deprecated prefixes, too specific |
| 95 | + |
| 96 | +--- |
| 97 | + |
| 98 | +### Example 2: Decision Center REST API Sample |
| 99 | +**Repository**: Sample code for Decision Center REST API |
| 100 | + |
| 101 | +**Good topics**: |
| 102 | +``` |
| 103 | +odm, decision-center, sample, api, java |
| 104 | +``` |
| 105 | +**Why**: Clear, uses existing topics, describes technology stack |
| 106 | + |
| 107 | +**Avoid**: |
| 108 | +``` |
| 109 | +decisioncenter, dc, rest-api, ibmodm, operational-decision-manager |
| 110 | +``` |
| 111 | +**Why**: Inconsistent naming, abbreviations, redundant |
| 112 | + |
| 113 | +--- |
| 114 | + |
| 115 | +### Example 3: RPA Integration |
| 116 | +**Repository**: Integration between ODM and RPA tools |
| 117 | + |
| 118 | +**Good topics**: |
| 119 | +``` |
| 120 | +odm, rpa, integration, automation-anywhere |
| 121 | +``` |
| 122 | +**Why**: Describes both products and purpose |
| 123 | + |
| 124 | +## π Topic Categories |
| 125 | + |
| 126 | +### Products |
| 127 | +Use **one** product topic that best describes your repository: |
| 128 | + |
| 129 | +| Topic | Description | |
| 130 | +|-------|-------------| |
| 131 | +| `odm` | Operational Decision Manager | |
| 132 | +| `decision-intelligence` | Decision Intelligence (formerly ADS) | |
| 133 | +| `bai` | Business Automation Insights | |
| 134 | +| `cp4ba` | Cloud Pak for Business Automation | |
| 135 | + |
| 136 | +### Technologies |
| 137 | +Add 2β3 technology topics: |
| 138 | + |
| 139 | +| Topic | Description | |
| 140 | +|-------|-------------| |
| 141 | +| `docker` | Docker containers | |
| 142 | +| `kubernetes` | Kubernetes orchestration | |
| 143 | +| `java` | Java applications | |
| 144 | +| `react` | React front-end | |
| 145 | +| `kafka` | Messaging with Kafka | |
| 146 | +| `analytics` | Analytics / dashboards | |
| 147 | + |
| 148 | +### Purpose |
| 149 | +Add 1β2 purpose topics: |
| 150 | + |
| 151 | +| Topic | Description | |
| 152 | +|-------|-------------| |
| 153 | +| `tutorial` | Learning resources | |
| 154 | +| `sample` | Example code | |
| 155 | +| `integration` | Integration examples | |
| 156 | +| `tools` | Utilities | |
| 157 | + |
| 158 | +### Domain |
| 159 | +Add relevant domain topics: |
| 160 | + |
| 161 | +| Topic | Description | |
| 162 | +|-------|-------------| |
| 163 | +| `business-rules` | Rules engines | |
| 164 | +| `artificial-intelligence` | AI/ML | |
| 165 | +| `rpa` | Robotic Process Automation | |
| 166 | +| `business-automation` | Business automation | |
| 167 | + |
| 168 | +## β οΈ Topics to Avoid |
| 169 | + |
| 170 | +### Deprecated Prefixes |
| 171 | +β Don't use: `product-*`, `comp-*`, `type-*`, `odmdev-*` |
| 172 | +β
Use instead: Clean names without prefixes |
| 173 | + |
| 174 | +### Redundant Topics |
| 175 | +β Don't use both: `ibm-odm` AND `odm` |
| 176 | +β
Use: `odm` (simpler is better) |
| 177 | + |
| 178 | +### Inconsistent Naming |
| 179 | +β Don't use: `decisioncenter`, `decision-center`, `dc` |
| 180 | +β
Use: `decision-center` (check existing usage first) |
| 181 | + |
| 182 | +### Too Many Topics |
| 183 | +β Don't add: 10+ topics |
| 184 | +β
Add: 3β7 most relevant topics |
| 185 | + |
| 186 | +## π οΈ Topic Management Tools |
| 187 | + |
| 188 | +### For Repository Owners |
| 189 | + |
| 190 | +If you need to clean up or standardize topics: |
| 191 | + |
| 192 | +```bash |
| 193 | +# Remove old topics (dry run first) |
| 194 | +node tools/remove-topics-from-repos.js --topics old-topic --dry-run |
| 195 | + |
| 196 | +# Replace topics (only where they exist) |
| 197 | +node tools/remove-topics-from-repos.js --topics ibm-odm --replace odm --dry-run |
| 198 | + |
| 199 | +# Apply changes (after reviewing dry-run output) |
| 200 | +node tools/remove-topics-from-repos.js --topics ibm-odm --replace odm --apply |
| 201 | +``` |
| 202 | + |
| 203 | +### For Organization Admins |
| 204 | + |
| 205 | +```bash |
| 206 | +# List all topics with usage counts |
| 207 | +node tools/list-all-topics.js --sort-count |
| 208 | + |
| 209 | +# Find topics matching a pattern |
| 210 | +node tools/list-all-topics.js --pattern "odmdev-*" |
| 211 | + |
| 212 | +# Generate a topics report |
| 213 | +node tools/generate-topics-report.js |
| 214 | +``` |
| 215 | + |
| 216 | +## π Benefits of Good Topics |
| 217 | + |
| 218 | +1. **Discoverability** β Users find your repository more easily |
| 219 | +2. **Organization** β Repositories are automatically categorized |
| 220 | +3. **Filtering** β Users can filter by product, technology, or type |
| 221 | +4. **Consistency** β Standardized topics improve the ecosystem |
| 222 | +5. **Analytics** β Better insights into the DecisionsDev portfolio |
| 223 | + |
| 224 | +## π€ Getting Help |
| 225 | + |
| 226 | +Not sure which topics to use? |
| 227 | + |
| 228 | +1. **Check similar repositories**: `node tools/list-all-topics.js --verbose` |
| 229 | +2. **Ask in discussions**: Open a [GitHub Discussion](https://github.com/DecisionsDev/decisionsdev.github.io/discussions) |
| 230 | +3. **Review the report**: `node tools/generate-topics-report.js` |
| 231 | + |
| 232 | +## π Additional Resources |
| 233 | + |
| 234 | +- [GitHub Organization](https://github.com/DecisionsDev) |
| 235 | +- [All Repositories](/repositories) |
| 236 | +- [Contributing Guidelines](https://github.com/DecisionsDev/.github) |
| 237 | + |
| 238 | +--- |
| 239 | + |
| 240 | +> **Remember**: When in doubt, use existing topics! Consistency is more valuable than creating new topics. |
0 commit comments