Skip to content

all imported external projects (tinycc, linenoise, etc) should have their own git history (via submodule or other) #206

@timotheecour

Description

@timotheecour

right now nim imports several projects by copying their files directly into nim's own git index. This makes it hard/impossible to update nim's version of those from upstream, and is just bad general practice anyways, for so many reaons. eg, it's impossible to tell which changes are our own modifications to those projects vs which ones are from upstream.
Eg: it's impossible to review a PR like nim-lang/Nim#6593 (for tinyc) or nim-lang/Nim#5357 (for linenoise) as we can't tell which change is form upstream vs local.

There is a much simpler, standard, way:

  • either using git submodules for these (which is essentially a git hash that gets version controlled)
  • or some logic to git clone those external projects at a specific git hash (very similar), to be called inside koch boot or build_all.{sh/bat}

main benefit: allows our versions of these external projects to be rebased against upstream regularly, while being able to maintain our own modifications of this (and independenly of nim's own git repo). We'd maintain our own forks if any modification to upstream is needed.

example external projects that should be moved out of Nim's index

  • Nim/tests/deps/jester-#head/
  • Nim/tests/deps/opengl-1.1.0/
  • Nim/tests/deps/x11-1.0/
  • Nim/tests/deps/zip-0.2.1/

Metadata

Metadata

Assignees

No one assigned

    Labels

    wontfixThis will not be worked on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions