Skip to content

[Tech debt] Purge the Bootstrap hacks (finally) #405

@HebaruSan

Description

@HebaruSan

Background

SpaceDock's layout is based on Bootstrap, which has been installed by copying the Bootstrap files to /frontend/static/css and /frontend/static/js.

Problems

Historically, alarmingly, these files were not treated as static dependencies to be left alone and patched with additional overrides from the outside, but as files owned by SpaceDock; edits were made to the Bootstrap files themselves to fix SpaceDock-specific problems or tweak SpaceDock's page layouts.

This is (very?) bad practice because:

  • It's impossible to tell at a glance whether a given style directive is really part of Bootstrap or a hack added later by SpaceDock devs without digging into the git log, which makes investigating and fixing visual problems more difficult.
  • We can't upgrade our version of Bootstrap, which is currently stuck at v3.3.6 (from 2015!!) while the upstream project has moved on to v5.1.3 as I write this, because we would lose all these hack changes if we replaced our static copies of the Bootstrap files, completely breaking the layout.

Suggestions

  • Remove all SpaceDock-specific hacks from these files by checking their git log
    • Move them to separate stylesheet files that are clearly identifiable as SpaceDock-specific
  • Remove the embedded copy of Bootstrap from the source repo
  • Switch to installing Bootstrap with npm
  • Upgrade Bootstrap to a recent version

This would make it much easier for us to make big changes like migrating away from Bootstrap if we wanted to do that, or adding a new frontend dependency like AdminLTE if we wanted to do that (and as @V1TA5 does very much want to do).

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions