Skip to content

Commit

Permalink
unbundle fusion (nim-lang#16925)
Browse files Browse the repository at this point in the history
* unbundle fusion
* changelog
* address comment: `./koch fusion` calls nimble install fusion (at a fixed hash)
  • Loading branch information
timotheecour authored Feb 11, 2021
1 parent d4f7f1d commit b7dd8e7
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 20 deletions.
4 changes: 0 additions & 4 deletions .github/workflows/ci_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,10 +126,6 @@ jobs:
shell: bash
run: ./koch boot -d:release

- name: 'Clone fusion'
shell: bash
run: ./koch fusion

- name: 'Build documentation'
shell: bash
run: ./koch doc --git.commit:devel
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ testament.db
/tests/**/*.js
/csources
/dist/
/lib/fusion
# /lib/fusion # fusion is now unbundled; `git status` should reveal if it's there so users can act on it

# Private directories and files (IDEs)
.*/
Expand Down
3 changes: 3 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,3 +187,6 @@ with other backends. see #9125. Use `-d:nimLegacyJsRound` for previous behavior.
- cell alignment is not supported, i.e. alignment annotations in a delimiter
row (`:---`, `:--:`, `---:`) are ignored,
- every table row must start with `|`, e.g. `| cell 1 | cell 2 |`.

- `fusion` is now un-bundled from nim, `./koch fusion` will
install it via nimble at a fixed hash.
1 change: 0 additions & 1 deletion compiler/installer.ini
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ Files: "lib"
[Other]
Files: "examples"
Files: "dist/nimble"
Files: "dist/fusion"

Files: "tests"

Expand Down
21 changes: 8 additions & 13 deletions koch.nim
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@

const
NimbleStableCommit = "324de9202fb3db82b266e7350731d1ec41013a2b" # master
FusionStableCommit = "372ee4313827ef9f2ea388840f7d6b46c2b1b014"

# examples of possible values: #head, #ea82b54, 1.2.3
FusionStableHash = "#372ee4313827ef9f2ea388840f7d6b46c2b1b014"
HeadHash = "#head"
when not defined(windows):
const
Z3StableCommit = "65de3f748a6812eecd7db7c478d5fc54424d368b" # the version of Z3 that DrNim uses
Expand Down Expand Up @@ -66,7 +67,8 @@ Possible Commands:
e.g. nimble)
doesn't require network connectivity
nimble builds the Nimble tool
fusion clone fusion into the working tree
fusion installs fusion via Nimble
Boot options:
-d:release produce a release version of the compiler
-d:nimUseLinenoise use the linenoise library for interactive mode
Expand Down Expand Up @@ -180,14 +182,7 @@ proc bundleWinTools(args: string) =
nimCompile(r"tools\downloader.nim",
options = r"--cc:vcc --app:gui -d:ssl --noNimblePath --path:..\ui " & args)

proc bundleFusion(latest: bool) =
let commit = if latest: "HEAD" else: FusionStableCommit
cloneDependency(distDir, "https://github.com/nim-lang/fusion.git", commit,
allowBundled = true)
copyDir(distDir / "fusion" / "src" / "fusion", "lib" / "fusion")

proc zip(latest: bool; args: string) =
bundleFusion(latest)
bundleNimbleExe(latest, args)
bundleNimsuggest(args)
bundleNimpretty(args)
Expand Down Expand Up @@ -227,7 +222,6 @@ proc buildTools(args: string = "") =
options = "-d:release " & args)

proc nsis(latest: bool; args: string) =
bundleFusion(latest)
bundleNimbleExe(latest, args)
bundleNimsuggest(args)
bundleWinTools(args)
Expand Down Expand Up @@ -694,12 +688,13 @@ when isMainModule:
of "tools":
buildTools(op.cmdLineRest)
bundleNimbleExe(latest, op.cmdLineRest)
bundleFusion(latest)
of "pushcsource", "pushcsources": pushCsources()
of "valgrind": valgrind(op.cmdLineRest)
of "c2nim": bundleC2nim(op.cmdLineRest)
of "drnim": buildDrNim(op.cmdLineRest)
of "fusion": bundleFusion(latest)
of "fusion":
let suffix = if latest: HeadHash else: FusionStableHash
exec("nimble install -y fusion@$#" % suffix)
else: showHelp()
break
of cmdEnd: break
2 changes: 1 addition & 1 deletion tools/kochdocs.nim
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ lib/system/widestrs.nim
proc follow(a: PathEntry): bool =
result = a.path.lastPathPart notin ["nimcache", htmldocsDirname,
"includes", "deprecated", "genode"] and
not a.path.isRelativeTo("lib/fusion")
not a.path.isRelativeTo("lib/fusion") # fusion was un-bundled but we need to keep this in case user has it installed
for entry in walkDirRecFilter("lib", follow = follow):
let a = entry.path
if entry.kind != pcFile or a.splitFile.ext != ".nim" or
Expand Down

0 comments on commit b7dd8e7

Please sign in to comment.