Create Build-A-Module process [LUCENE-3263]
- Dominant language
- Java
- Stars
- 3.6k
- Forks
- 1.4k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 88
Description
Over the last few weeks, we've had a number of modules made. This process seems only likely to continue with the potential for modules within modules as well.
When creating a module, there is usually a consistent series of steps that need to be done. For me these are:
- Create module directory
- Add LICENSE.txt and NOTICE.txt
- Create build.xml with dependencies on other modules (if there are any)
- Update parent build.xml (in case of modules)
- Add java and test directories to dev-tools/eclipse/dot.classpath
- Create module directory in dev-tools/idea
- Add .iml to dev-tools/idea/path/to/module
- Add module to dev-tools/idea/.idea/modules.xml
- Add module to dev-tools/idea/.idea/workspace.xml
- Create module directory in dev-tools/maven
- Add pom.xml.template to dev-tools/maven/path/to/module
I think we can create a script which provided some basic information, can complete the majority of the above tasks. Of course if the module requires some custom build targets or dependencies, then human involvement will be required afterwards. But at the very least, it'll reduce the effort required to make a new module and lower the risk of a step being missed (which I've done a few times).
We can also use this as a chance to build in any verification of the configurations, so people can feel more comfortable using them.
---
Migrated from [LUCENE-3263](https://issues.apache.org/jira/browse/LUCENE-3263) by Chris Male
Contributor guide
Research direction
Review the module-creation steps in the issue, including build.xml, dev-tools/eclipse/dot.classpath, dev-tools/idea configuration files, and dev-tools/maven/pom.xml.template. Define the script's basic inputs and verify that it creates the module directory and updates the listed configurations; custom targets and dependencies may remain for manual follow-up.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system, developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100