Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Migrate licenses.py to spec + code generation

Open
#183 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Refactor
Clarity
Clearly specified
Activity status
Stale
Tech stack
javascript, json, python

Research direction

Start by comparing the migration pattern in #182 with le_utils/constants/licenses.py and resources/licenselookup.json. Create spec/constants-licenses.json, update tests/test_licenses.py, and run pytest tests/test_licenses.py -v before running make build. Done means generated Python and JavaScript outputs contain the specified constants and license data, resources/licenselookup.json is removed, and the full test suite passes.

Written by the indexing model from the issue text.

Description

❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.

Overview

licenses should be generated from a spec in the format #182 introduces. It has no known wrong values, so its public Python API should not change.

Complexity: Low
Target branch: main

Context
  • LICENSELIST ids are ints 1–9, while the constants hold license names (CC_BY = "CC BY"); licenselookup.json keys are the ids as strings.
  • Every License.description is ""; licenselookup.json has no description field.
The Change
  • js/Licenses.js should export the constants as its default export and the license records as a named export.
Acceptance Criteria
  • le_utils/constants/licenses.py and js/Licenses.js are generated from spec/constants-licenses.json, licenselookup.json is deleted, and make build on a clean checkout leaves no diff.
  • The pinned-API test from #182 passes unchanged for licenses.

AI usage

I made the decisions recorded on #181 and #182; Claude Code applied them to this module against the current code and drafted the issue.

Dominant language
Python
Stars
7
Forks
37
Avg merge
7d 42m
Merged PRs (30d)
7

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from learningequality/le-utils

All issues in learningequality/le-utils

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.