Skip to content

Website roadmap for V1 #1

@AffectedArc07

Description

@AffectedArc07

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions