Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Website roadmap for V1 #1

Open
29 of 37 tasks
AffectedArc07 opened this issue Jul 5, 2021 · 0 comments
Open
29 of 37 tasks

Website roadmap for V1 #1

AffectedArc07 opened this issue Jul 5, 2021 · 0 comments

Comments

@AffectedArc07
Copy link
Member

AffectedArc07 commented Jul 5, 2021

Core:

  • Add some sort of secrets store
  • Add GitHub OAuth sign in (I aint dealing with passwords)
  • Write documentation
  • Have download page give a link to the latest GitHub release as well as install instructions (put it in your path)
  • Package upload stuff (See below)
  • Database stuff (See below)

Database:

  • Table to keep track of GitHub usernames and user IDs (As a cache to avoid mass API queries)
  • Table to keep track of packages (ID, name, description, owner, creation_date)
  • Table to keep track of package versions (ID, package_id [FK], release notes, version number, download count, release_date, byond version)
  • All of this needs to be managed by EntityFramework. No exceptions.

Package creation:

  • Restrict names to alphanumeric, no spaces, all lowercase
  • Short package description
  • Package URL stuff (Documentation + Source), both optional
  • Redirect to the package page on completion
  • Package page need an edit button

Release creation:

  • Accept version as semver
  • Accept package upload in zip format
  • Documentation dictates how a zip must be laid out (There must be a dmpm_includes.dm in the top directory with the required DM file includes inside)
  • Maybe some sort of validation to see if the code compiles. Package should be independent. I could make a test env that grabs the BYOND version the package wants, and compiles dmpm_includes.dm Can be done later
  • Obviously, make it so you can only upload to packages you own
  • Cap uploads to 5mb
  • Store packages in the ASP app app_data
  • App_Data/Packages/Package_Id/Version_Id.zip --> GET /download/packagenames/version
  • Flow will be create package --> create version
  • Package data format
  • Validate that the package has an includes.dm file inside it (ZipFile.files)
package_root:
    |
    |--- includes.dm
    |     |___ in here is your #include statements for stuff in `code`
    |
    |--- code
          |___ in here is your code that changes with each release

Pages - Dynamic:

  • List all packages with search and paging
  • List packages belonging to one user
  • List releases and info for a package
  • Package creation page (see above)
  • Release upload page (see above)

Pages - Static:

  • Install page
  • Client Documentation page
  • Package Documentation page

Package download:

  • Get latest version by max ID in the releases table where the package ID corresponds properly.

Other:

  • CI for the repo
  • Readme for the repo
@AffectedArc07 AffectedArc07 changed the title Roadmap / Todo Roadmap / Todo for V1.0 Jul 5, 2021
@AffectedArc07 AffectedArc07 changed the title Roadmap / Todo for V1.0 Website roadmap for V1 Jul 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant