Skip to content

Commit 423663f

Browse files
committed
feat: update ideas list
1 parent 7af480e commit 423663f

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

ideas.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1260,6 +1260,79 @@ A thorough understanding of ESLint, including its configuration system and plugi
12601260

12611261
### Checklist
12621262

1263+
- [x] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
1264+
- [x] I have read and understood the application materials found in this repository.
1265+
- [x] The issue name begins with `[Idea]:` and succinctly describes your idea.
1266+
- [x] I understand that, in order to apply to be a GSoC contributor, I must submit my final application to <https://summerofcode.withgoogle.com/> **before** the submission deadline.
1267+
1268+
* * *
1269+
1270+
## Improve `stdlib` Publishing Pipeline
1271+
1272+
Linked issue: <https://github.com/stdlib-js/google-summer-of-code/issues/92>
1273+
1274+
### Idea
1275+
1276+
stdlib is composed of thousands of individual packages. Managing this complexity requires a complex publishing pipeline that handles automatic updates to repositories, generation of various bundle types, publishing packages to the npm registry, changelog generation, and more.
1277+
1278+
The project aims to refactor the current workflows by breaking down the monolithic, feature-rich scripts ([example](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/_tools/scripts/publish_packages.js)) into discrete, standalone tooling packages in the [_tools](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/_tools) namespac, which can be independently tested and maintained.
1279+
1280+
In addition, while we still will lean on GitHub Actions for the publishing flow, this project will ensure that our publishing pipeline will not be tightly coupled with it anymore.
1281+
1282+
Goals of the refactoring will also include to improve logging and observability, enable rigorous testing and checkpointing, and the ability to trigger all steps locally via a CLI tool.
1283+
1284+
1285+
### Expected outcomes
1286+
1287+
- Having the publishing pipeline fully composed into modular packages.
1288+
- Each module having its own suite of unit tests.
1289+
- Integration tests and end-to-end tests for the entire workflow.
1290+
- Enhanced observability and diagnostic tools integrated into the publishing process.
1291+
- A reduction in the complexity of the existing scripts by making GitHub Actions interactions explicit and manageable.
1292+
- Better error recovery, collection of statistics, and a more maintainable architecture.
1293+
1294+
### Status
1295+
1296+
No effort has been undertaken to start modularizing the publishing pipeline architecture, but there is agreement among the TSC that this is a desirable goal.
1297+
1298+
### Involved software
1299+
1300+
GitHub Actions, Bash.
1301+
1302+
### Technology
1303+
1304+
JavaScript, nodejs
1305+
1306+
### Other technology
1307+
1308+
None.
1309+
1310+
### Difficulty
1311+
1312+
3
1313+
1314+
### Difficulty justification
1315+
1316+
The project involves a large refactor of an existing, complex system.
1317+
1318+
- Decoupling the interwoven dependencies of the current monolithic script requires careful planning and modular design.
1319+
- Handling platform variability between local development and GitHub Actions orchestration, including differences between Linux and MacOS, adds complexity.
1320+
- Introducing enhanced testing and observability requires integrating new tools and extending the current functionality.
1321+
1322+
1323+
### Prerequisite knowledge
1324+
1325+
- Proficiency in JavaScript and Node.js development as well as Bash scripting.
1326+
- Familiarity with GitHub Actions and CI/CD pipeline design.
1327+
- Understanding of modular design principles and software refactoring techniques.
1328+
1329+
1330+
### Project length
1331+
1332+
350
1333+
1334+
### Checklist
1335+
12631336
- [x] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
12641337
- [x] I have read and understood the application materials found in this repository.
12651338
- [x] The issue name begins with `[Idea]:` and succinctly describes your idea.

0 commit comments

Comments
 (0)