openedx / public-engineering

General public issue repository for the Open edX engineering community
3 stars 1 forks source link

add minimal readme to npm packages with rst readmes #215

Open brian-smith-tcril opened 10 months ago

brian-smith-tcril commented 10 months ago

Currently, repos with rst readmes that are published to npm appear without a readme

image

https://www.npmjs.com/package/@edx/frontend-build

Since NPM doesn't support RST, we should use Markdown READMEs in those repositories. See this documentation decision for more details on why.

Once https://github.com/openedx/openedx-atlas/issues/39 is resolved we will have a pattern to follow for other repos that have this issue.

Tasks

Relevant Repos

Note: This list might need to be refreshed if the time between this being written and it being picked up is more than a few weeks.

##### Currently Published to NPM
- [ ] @edx/frontend-component-header
- [ ] @edx/frontend-logging
- [ ] @edx/frontend-analytics
- [ ] @edx/frontend-enterprise
- [ ] @edx/edx-bootstrap
- [ ] @edx/edx-proctoring
- [ ] @edx/frontend-component-site-footer
- [ ] @edx/frontend-build
- [ ] @edx/frontend-component-header-edx
- [ ] @edx/frontend-auth
- [ ] @edx/frontend-component-site-header
- [ ] @edx/frontend-i18n
- [ ] @edx/frontend-enterprise-catalog-search
##### MFEs that will be published in the Future
- [ ] frontend-template-application
- [ ] frontend-app-authn
- [ ] frontend-app-course-authoring
- [ ] frontend-app-ora
- [ ] frontend-app-library-authoring
- [ ] frontend-app-accounthttps://github.com/openedx
- [ ] frontend-app-discussions
- [ ] frontend-app-ecommerce
- [ ] frontend-app-payment
- [ ] frontend-app-learning
- [ ] frontend-app-enterprise-public-catalog
- [ ] frontend-app-profile
- [ ] frontend-component-footer
- [ ] frontend-app-support-tools
- [ ] frontend-app-learner-record
- [ ] frontend-app-communications
- [ ] frontend-app-ora-grading

Acceptance Criteria

OmarIthawi commented 10 months ago

Copying my comment from https://github.com/openedx/openedx-atlas/issues/39.

@brian-smith-tcril Based on my quick research, it looks like that npm doesn't support RST at all, while PyPi appears to support both RST and Markdown:

Popular packages such as React.js use Markdown: https://www.npmjs.com/package/react

Some Open edX packages uses Markdown as well such https://www.npmjs.com/package/@edx/paragon while others don't as you pointed out for frontend-build.

We have a couple of options:

  1. Use Markdown on all Open edX Nodej.s packages
  2. Use Placeholder README (my least favorite)
  3. Convert to Markdown on the fly (adds yet one more build step)

I'm leaning towards using Markdown at least until npmjs has support for RST.

I understand that RST is generally more powerful and concise (while Markdown can be flaky sometimes). However, it's helpful to see the full README within npmjs.

If popular packages like React.js and paragon can get away with Markdown, I believe other npm-published packages can.

I remember a decision to push for RST documentation, which is a good format for Sphinx docs and python tools but it seems that npmjs decides to keep it unsupported so it seems to worth a double check.

brian-smith-tcril commented 10 months ago

I did a search for all npm packages in the @edx org

repo markdown readme rst readme
@edx/paragon :heavy_check_mark: :x:
@edx/studio-frontend :heavy_check_mark: :x:
@edx/new-relic-source-map-webpack-plugin :heavy_check_mark: :x:
@edx/gradebook :heavy_check_mark: :x:
@edx/frontend-app-gradebook :heavy_check_mark: :x:
@edx/eslint-config :heavy_check_mark: :x:
@edx/frontend-lib-content-components :heavy_check_mark: :x:
@edx/frontend-component-header :x: :heavy_check_mark:
@edx/frontend-logging :x: :heavy_check_mark:
@edx/frontend-analytics :x: :heavy_check_mark:
@edx/frontend-enterprise :x: :heavy_check_mark:
@edx/edx-bootstrap :x: :heavy_check_mark:
@edx/edx-proctoring :x: :heavy_check_mark:
@edx/frontend-component-site-footer :x: :heavy_check_mark:
@edx/frontend-build :x: :heavy_check_mark:
@edx/frontend-component-header-edx :x: :heavy_check_mark:
@edx/frontend-auth :x: :heavy_check_mark:
@edx/frontend-component-site-header :x: :heavy_check_mark:
@edx/frontend-i18n :x: :heavy_check_mark:
@edx/frontend-enterprise-catalog-search :x: :heavy_check_mark:

I also know we plan to publish MFEs on npm, which would require moving those over to md too

repo markdown readme rst readme
frontend-app-learner-dashboard :heavy_check_mark: :x:
frontend-app-learner-portal-enterprise :heavy_check_mark: :x:
frontend-app-publisher :heavy_check_mark: :x:
frontend-app-admin-portal :heavy_check_mark: :x:
frontend-app-gradebook :heavy_check_mark: :x:
frontend-app-program-console :heavy_check_mark: :x:
frontend-app-learner-portal-programs :heavy_check_mark: :x:
frontend-app-shell :heavy_check_mark: :x:
frontend-app-programs-dashboard :heavy_check_mark: :x:
frontend-app-authn :x: :heavy_check_mark:
frontend-app-course-authoring :x: :heavy_check_mark:
frontend-app-ora :x: :heavy_check_mark:
frontend-app-library-authoring :x: :heavy_check_mark:
frontend-app-account :x: :heavy_check_mark:
frontend-app-discussions :x: :heavy_check_mark:
frontend-app-ecommerce :x: :heavy_check_mark:
frontend-app-payment :x: :heavy_check_mark:
frontend-app-learning :x: :heavy_check_mark:
frontend-app-enterprise-public-catalog :x: :heavy_check_mark:
frontend-app-profile :x: :heavy_check_mark:
frontend-component-footer :x: :heavy_check_mark:
frontend-template-application :x: :heavy_check_mark:
frontend-app-support-tools :x: :heavy_check_mark:
frontend-app-learner-record :x: :heavy_check_mark:
frontend-app-communications :x: :heavy_check_mark:
frontend-app-ora-grading :x: :heavy_check_mark:

based on this, it seems moving to md is non-trivial but not impossible