It's an IDE based on react+neovim. Made hackernews first page https://news.ycombinator.com/item?id=16673267 and is available at https://github.com/onivim/oni/
I used to track the advance of this neovim "spinoff" but I can't on nixos for now :(
I've try to follow the building instruction but have no luck. yarn install give me error about missing /bin/cat.
~~~~
$ nix-shell -p yarn nodejs-8_x xorg.libxkbfile x11 python
[nix-shell]$ yarn install
./configure: ./sharpbang: /bin/cat: bad interpreter: No such file or directory
./configure: ./sharpbang2: /usr/bin/cat: bad interpreter: No such file or directory
~~~~
The problem seem solvable but I have little knowledge on yarn and node things.
Maybe yarn2nix might be the correct way to do this.
I had previously tried building this package last week with this expression:
{ yarn2nix, fetchFromGitHub }:
with yarn2nix; mkYarnPackage rec {
name = "oni-vim-${version}";
version = "v0.3.1";
src = fetchFromGitHub {
owner = "onivim";
repo = "oni";
rev = "adf404a32c585b498b57d9f52fabeaef635e087d";
sha256 = "1h4xlvm2h6lln2w2f5flxycf3175w9cb19f2g5v3d7ksnzm9x2wp";
};
}
However I get this error:
builder for '/nix/store/lhi77k72zi84415gcl4iz81ngimjlwdw-oni-modules-0.3.1.drv' failed with exit code 1; last 10 log lines:
building
yarn config v1.5.1
success Set "yarn-offline-mirror" to "/nix/store/1gvl75025qh6608fnq9r7q7iz13s136c-offline".
Done in 0.10s.
yarn install v1.5.1
[1/4] Resolving packages...
[2/4] Fetching packages...
error An unexpected error occurred: "EACCES: permission denied, unlink '/nix/store/1gvl75025qh6608fnq9r7q7iz13s136c-offline/shelljs-0.7.7.tgz'".
info If you think this is a bug, please open a bug report with the information provided in "/tmp/nix-build-oni-modules-0.3.1.drv-0/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
cannot build derivation '/nix/store/jaqwiq29ba2zv8yyh9ir63xsjwiqq3gi-oni-vim-v0.3.1.drv': 1 dependencies couldn't be built
[349 built (1 failed), 70 copied (6.6 MiB), 2.9 MiB DL]
I'm not sure if this is a yarn2nix issue, or something particular about shelljs?
Attempted to reproduce with this package.json: but seems to work
{
"name": "yarn2nix-shelljs",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"shelljs": "0.7.7"
}
}
Unsure what to try next.
what do you mean seems to work :) ? thanks for taking into account the request, I am not familiar with the latest web technologies, even less with that part of nixpkgs sry xD
Sorry, I was attempting to use yarn2nix (a function in nixpkgs) to generate an expression for Oni so it could be built as part of nixpkgs, however it broke with an unusual error. I tried to reproduce the error with a minimal case, as I thought it might be something about the shelljs node package, but my minimal case worked (which is bad). This means that I do not know how to build Oni currently with nixpkgs but someone else might.
I too have encountered this issue, probably should have looked here first but I also ended up discovering yarn2nix and getting the same problems. I also tried to install all the dependencies into my user profile and manually run the yarn commands myself so I can start getting used to Oni however this also fails due to
Looking again at this, it seems Oni has tarball releases which we could use in a similar way to VSCode's nix expression: https://github.com/thorerik/nixpkgs/blob/master/pkgs/applications/editors/vscode/default.nix
This should be all we need to "build" it, but I'm not sure how much of the VSCode expression we would need to duplicate.
I booted windows yesterday for the first time in a long time, I tried running the latest oni and they have done great things: experimental wbgl renderer, vim tutorial gamification see https://twitter.com/oni_vim . I hope it comes to nixos too :)
@teto yeah I switched my laptop from NixOS to debian because of the install problems, Oni is awesome. Tried doing a nix package with the binary as described by @johnchildren but had no joy.
If someone wants to use Oni now I can write how to build it from source
tomorrow (I have installed it locally), but I don't know if I can build a
package from it because I don't know if the build is reproducible (the big
problem with npm [Now in some cases npm builds are reproducible so it can
works])
On Wed, 2 May 2018, 23:36 Nekroze, notifications@github.com wrote:
@teto https://github.com/teto yeah I switched my laptop from NixOS to
debian because of the install problems, Oni is awesome. Tried doing a nix
package with the binary as described by @johnchildren
https://github.com/johnchildren but had no joy.—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/issues/38231#issuecomment-386129174,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIdDzLj2h3WXpSEKqUBsfsskUDWhp5cYks5tuibggaJpZM4TCfcu
.
@DeltaEvo I would really appreciate that if you could, I tried to use the build from source instructions on the wiki but I keep getting stuck early when running yum due to
git clone https://github.com/onivim/oni
cd oni
nix-shell -p python x11 xorg.libxkbfile pkgconfig electron yarn nodejs-8_x
# bs-platform is a big module and it needs to compile a lot of things, it's only used when you're working with ocaml, so we remove it :)
yarn remove bs-platform
node_modules/.bin/electron-rebuild -v $(electron --version)
yarn build
rm node_modules/electron/dist/electron
# Very ugly
ln -s $(which electron) node_modules/electron/dist/
# You can launch it now with
yarn launch
If you want you can "install" it in your node global with
yarn link
You can setup your node global directory to be in your user home with https://github.com/sindresorhus/guides/blob/master/npm-global-without-sudo.md
@DeltaEvo that works, thank you!
No one motivated to convert those into a package ? I am working on other stuff at the moment
@teto I believe we should await https://github.com/moretea/yarn2nix/issues/53 as it seems the best bet to generate nix expressions for the kind of install process oni has.
I got impatient (had problems with neovim quickfix and wanted to see if we could have sthg better in Oni) and tried the instructions from https://github.com/NixOS/nixpkgs/issues/38231#issuecomment-386391109 to oni master 25ab4a2dc171d0974972172615b97c2ff0a423f2 but it failed with:
[snip]
[nix-shell:/mnt/ext/oni]$ node_modules/.bin/electron-rebuild -v $(electron --version)
✔ Rebuild Complete
[nix-shell:/mnt/ext/oni]$ yarn build
yarn run v1.9.2
$ yarn run build:browser && yarn run build:webview_preload && yarn run build:main && yarn run build:plugins && yarn run build:cli
$ webpack --config browser/webpack.production.config.js
Hash: 18ed63358705f831fe3b
Version: webpack 4.6.0
Time: 31289ms
Built at: 2018-08-01 17:32:23
Asset Size Chunks Chunk Names
13.bundle.js 2.44 KiB 13 [emitted]
vendor.bundle.js 1.09 MiB 0 [emitted] vendor
2.bundle.js 1.06 KiB 2 [emitted]
3.bundle.js 1.28 KiB 3 [emitted]
4.bundle.js 3.79 KiB 4 [emitted]
5.bundle.js 4.01 KiB 5 [emitted]
6.bundle.js 2.7 KiB 6 [emitted]
7.bundle.js 3.13 KiB 7 [emitted]
8.bundle.js 11.5 KiB 8 [emitted]
9.bundle.js 6.11 KiB 9 [emitted]
10.bundle.js 364 KiB 10 [emitted]
11.bundle.js 15.3 KiB 11 [emitted]
12.bundle.js 996 bytes 12 [emitted]
1.bundle.js 90.9 KiB 1 [emitted]
14.bundle.js 1.01 KiB 14 [emitted]
15.bundle.js 1.96 KiB 15 [emitted]
16.bundle.js 2.8 KiB 16 [emitted]
17.bundle.js 2.39 KiB 17 [emitted]
18.bundle.js 1.05 KiB 18 [emitted]
19.bundle.js 18.4 KiB 19 [emitted]
20.bundle.js 1.14 KiB 20 [emitted]
21.bundle.js 556 bytes 21 [emitted]
22.bundle.js 1.76 KiB 22 [emitted]
23.bundle.js 27.2 KiB 23 [emitted]
24.bundle.js 17.5 KiB 24 [emitted]
bundle.js 85.7 KiB 25 [emitted] main
Entrypoint main = bundle.js
[6] external "electron" 42 bytes {25} [built]
[20] ./browser/src/Utility.ts 5.63 KiB {25} [built]
[39] ./browser/src/App.ts 15.6 KiB {25} [built]
[58] ./browser/src/Services/CommandManager.ts 2.21 KiB {0} [built]
[158] ./browser/src/index.tsx 1 KiB {25} [built]
[159] multi ./browser/src/index.tsx 28 bytes {25} [built]
[173] ./browser/src/UI/Shell/index.ts + 11 modules 19.3 KiB {0} [built]
| ./browser/src/UI/Shell/index.ts 25 bytes [built]
| ./browser/src/UI/Shell/Shell.tsx 1.96 KiB [built]
| ./browser/src/UI/Shell/ShellReducer.ts 1.97 KiB [built]
| ./browser/src/UI/Shell/ShellView.tsx 2.91 KiB [built]
| ./browser/src/UI/Shell/ShellActionCreators.ts 1.68 KiB [built]
| ./browser/src/UI/Shell/OverlayView.tsx 588 bytes [built]
| + 6 hidden modules
[175] ./browser/src/Services/Themes/index.ts + 2 modules 12.9 KiB {0} [built]
| ./browser/src/Services/Themes/index.ts 1.35 KiB [built]
| ./browser/src/Services/Themes/ThemeManager.ts 9.03 KiB [built]
| ./browser/src/Services/Themes/ThemeLoader.ts 2.51 KiB [built]
[176] ./browser/src/Services/Workspace/index.ts + 2 modules 8.49 KiB {0} [built]
| ./browser/src/Services/Workspace/index.ts 71 bytes [built]
| ./browser/src/Services/Workspace/WorkspaceConfiguration.ts 1.86 KiB [built]
| ./browser/src/Services/Workspace/Workspace.ts 6.49 KiB [built]
[177] ./browser/src/Services/Sneak/index.tsx + 3 modules 9.23 KiB {0} [built]
| ./browser/src/Services/Sneak/index.tsx 2.05 KiB [built]
| ./browser/src/Services/Sneak/SneakStore.ts 1.44 KiB [built]
| ./browser/src/Services/Sneak/Sneak.tsx 2.98 KiB [built]
| ./browser/src/Services/Sneak/SneakView.tsx 2.71 KiB [built]
[178] ./browser/src/Services/TokenColors.ts 1.78 KiB {0} [built]
[179] ./browser/src/Services/Completion/CompletionProviders.ts 2.77 KiB {0} [built]
[183] ./browser/src/Services/Menu/index.ts + 4 modules 11.4 KiB {0} [built]
| ./browser/src/Services/Menu/index.ts 333 bytes [built]
| ./browser/src/Services/Menu/MenuComponent.tsx 6.37 KiB [built]
| ./browser/src/Services/Menu/Menu.ts 4.09 KiB [built]
| ./browser/src/Services/Menu/PinnedIconView.tsx 293 bytes [built]
| + 1 hidden module
[184] ./browser/src/Services/Sidebar/index.ts + 4 modules 17.5 KiB {0} [built]
| ./browser/src/Services/Sidebar/index.ts 1.38 KiB [built]
| ./browser/src/Services/Sidebar/SidebarStore.ts 6.85 KiB [built]
| ./browser/src/Services/Sidebar/SidebarContentSplit.tsx 4.11 KiB [built]
| ./browser/src/Services/Sidebar/SidebarSplit.tsx 785 bytes [built]
| ./browser/src/Services/Sidebar/SidebarView.tsx 4.29 KiB [built]
[220] ./browser/src/Services/Debug.ts 1.68 KiB {20} [built]
+ 1519 hidden modules
WARNING in ./node_modules/shell-env/node_modules/cross-spawn/index.js
Module not found: Error: Can't resolve 'spawn-sync' in '/mnt/ext/oni/node_modules/shell-env/node_modules/cross-spawn'
@ ./node_modules/shell-env/node_modules/cross-spawn/index.js 32:26-47
@ ./node_modules/shell-env/node_modules/execa/index.js
@ ./node_modules/shell-env/index.js
@ ./browser/src/Plugins/Api/Process.ts
@ ./browser/src/Plugins/PluginInstaller.ts
@ ./browser/src/Plugins/PluginManager.ts
@ ./browser/src/App.ts
@ ./browser/src/index.tsx
@ multi ./browser/src/index.tsx
$ cd webview_preload && tsc -p tsconfig.json
$ cd main && tsc -p tsconfig.json
$ run-p build:plugin:*
$ cd vim/core/oni-plugin-typescript && yarn run build
$ cd extensions/oni-plugin-markdown-preview && yarn run build
$ cd vim/core/oni-plugin-git && yarn run build
$ cd extensions/oni-plugin-quickopen && yarn run build
warning package.json: No license field
warning package.json: No license field
warning package.json: No license field
$ npm install && tsc
warning package.json: No license field
$ rimraf lib && tsc
$ rimraf lib && tsc
$ rimraf lib && tsc
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] No description
npm WARN [email protected] No repository field.
npm WARN [email protected] No license field.
added 6 packages in 0.806s
src/index.tsx(124,48): error TS2339: Property 'reset' does not exist on type 'SimpleGit'.
src/index.tsx(134,48): error TS2339: Property 'reset' does not exist on type 'SimpleGit'.
src/index.tsx(161,57): error TS2339: Property 'commit' does not exist on type 'SimpleGit'.
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ERROR: "build:plugin:oni-plugin-git" exited with 1.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Can you try to yarn install before yarn build ?
Seems like the yarn install unblocked the situation.
Then I tried yarn launch but it ended up with
yarn run v1.9.2
$ electron lib/main/src/main.js
events.js:183
throw er; // Unhandled 'error' event
^
Error: spawn /mnt/ext/oni/node_modules/electron/dist/electron ENOENT
at _errnoException (util.js:992:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
at onErrorNT (internal/child_process.js:372:16)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
at Function.Module.runMain (module.js:695:11)
at startup (bootstrap_node.js:191:16)
at bootstrap_node.js:612:3
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
You need to replace the electron binary
rm node_modules/electron/dist/electron
ln -s $(which electron) node_modules/electron/dist/
The electron removal was mandatory as I had an old version remaining from my previous attempt I guess. It seems to work now ! Thanks !
I have found a (at least temporary) solution for the yarn2nix problem: https://github.com/moretea/yarn2nix/pull/75
If you want to experiment with it, here is a derivation that uses my branch of yarn2nix to build it. But for now, it only starts an empty editor without any interaction, there is some glue missing and I can't figure it out. If someone has an idea on what exactly is missing, I'd be happy for input.
{ runCommand, electron, callPackage, ...}:
let
yarn2nix = callPackage ( builtins.fetchTarball {
url = "https://github.com/phryneas/yarn2nix/archive/8a6b9dcf7cef8840eb7bc64d7639bad566af2e9d.tar.gz " ;
sha256 = "0ih11vcd9ad5y13877bxz7ijsykhqwdfwmvwhic3xlgcdhxji80v";
}) {};
in
(yarn2nix.mkYarnPackage rec {
name = "oni";
version = "v0.3.6";
src = builtins.fetchTarball {
url = "https://github.com/onivim/oni/archive/${version}.tar.gz" ;
sha256 = "10rfm5kxwim6010jhg8v0jz5s2mndb34vgx8bd083a9givlib9v4";
};
yarnLock = runCommand "yarn.lock" {} ''
cp ${src}/yarn.lock .
chmod +w yarn.lock
${yarn2nix.yarn2nix}/bin/yarn2nix --no-nix --lockfile yarn.lock
cp yarn.lock $out
'';
extraBuildInputs = [ electron ];
installPhase = ''
sed -i 's/npm install &&//' vim/core/oni-plugin-typescript/package.json
sed -i '/"declaration":/s/true/false/' vim/core/oni-plugin-typescript/tsconfig.json
yarn build
mkdir -p $out/{lib,bin}
cp -r * $out/lib
echo \"${electron}/bin/electron\" \"$out/lib/lib/main/src/main.js\" > $out/bin/oni
chmod +x $out/bin/oni
'';
})
Nice work! I can't get that derivation to work unfortunately, though it seems to fix the bug in yarn2nix at least.
Is it possible you are just missing some run time dependencies?
I'd try including some of these (assuming linux): https://github.com/onivim/oni/wiki/Development#linux
I'll be gone over the weekend, but can try again next week with those dependencies. Although I fear there's some npm postinstall script or the likes missing.
If someone else wants to experiment meanwhile... :grin:
Yeah, I have no idea how that could have ever built. This version now builds but has the problems I described before. I just don't know whats missing.
{ stdenv, runCommand, electron, callPackage,
bash, python, nodejs-8_x, node? nodejs-8_x, neovim, ripgrep,
...}:
let
yarn2nix = callPackage ( builtins.fetchTarball {
url = "https://github.com/phryneas/yarn2nix/archive/8a6b9dcf7cef8840eb7bc64d7639bad566af2e9d.tar.gz " ;
sha256 = "0ih11vcd9ad5y13877bxz7ijsykhqwdfwmvwhic3xlgcdhxji80v";
}) {};
in
(yarn2nix.mkYarnPackage rec {
name = "oni";
version = "v0.3.6";
src = builtins.fetchTarball {
url = "https://github.com/onivim/oni/archive/${version}.tar.gz" ;
sha256 = "10rfm5kxwim6010jhg8v0jz5s2mndb34vgx8bd083a9givlib9v4";
};
yarnLock = runCommand "yarn.lock" {} ''
cp ${src}/yarn.lock .
chmod +w yarn.lock
${yarn2nix.yarn2nix}/bin/yarn2nix --no-nix --lockfile yarn.lock
cp yarn.lock $out
'';
/*
some dependencies have preinstall, install or postinstall scripts that need to be taken into account.
those were identified by:
find node_modules -name package.json -exec bash -c 'test -n "$( jq ".scripts|{preinstall,install,postinstall}|select(.preinstall or .install or .postinstall)" {})" && echo {}' \;
result:
node_modules/electron/package.json
node_modules/oni-neovim-binaries/package.json
node_modules/bs-platform/package.json
node_modules/oni-ripgrep/package.json
node_modules/styled-components/package.json
node_modules/opencollective/test/package_with_postinstall/package.json
node_modules/husky/package.json
node_modules/electron-chromedriver/package.json
on first glance, none of these seem to be really required though
*/
postConfigure = ''
'';
buildPhase = ''
cd deps/${name}
sed -i 's/npm install &&//' vim/core/oni-plugin-typescript/package.json
sed -i '/"declaration":/s/true/false/' vim/core/oni-plugin-typescript/tsconfig.json
sed -i 's/"build:plugins": .*$/"build:plugins": "true",/' package.json
yarn build
cd ../..
'';
postInstall = ''
cat <<EOF > $out/bin/oni
#!${bash}/bin/bash
PATH=${ stdenv.lib.makeBinPath [ electron python node neovim ripgrep ] }
electron "$out/libexec/${name}/deps/${name}/lib/main/src/main.js"
EOF
chmod +x $out/bin/oni
'';
})
(this one skips the build for the typescript & markdown plugin)
Okay, we finally got a working one. https://gist.github.com/phryneas/82c21177fb55afd7d333ac6ffa19d7c1
Thanks a lot to @stesie who sat down with me yesterday and got a lot of the stuff working.
The question is: this currently has a dependency to a patched yarn2nix. I guess there's no chance of getting it into nixpkgs like this?
Thanks @phryneas and @stesie I added it to my overlay and it worked fine !
Can the patch be merged upstream ? Some packages require some small tweaks of dependencies (khal for instance) and while it's not the best it's possible.
@teto My patch is already a PR at https://github.com/moretea/yarn2nix/pull/75 - but I'm not 100% sure if it is the way to go. It breaks the previous file format of yarn.nix. Looking at nixpkgs, it's not that much of a problem because there seems to be only one yarn.nix (besides yarn2nix itself) in the hadoop derivation - but it might break people's private yarn.nix files.
Also, I don't know when a new version of yarn2nix will be released to nixpkgs - the last release seems to be from march and yarn2nix has undegone many changes since then, but there has not been a real release since.
(PS: it just got merged. maybe this will get upstream faster than I thought :) )
wanna merge Oni :) ?
I handle parts of my neovim config via nixpkgs configure system which means that because it is not wrapped with the generated vimrc, oni shows some failures during startup but it's indenpendant from your package.
Anyway the vim configure system is awful. we should generate a vimrc via attrset without a module, set a nixpkgs.vimrc and let neovim UIs use that as done in
https://discourse.nixos.org/t/use-lib-types-system-to-merge-attrsets-without-the-module-system/534/12.
Meanwhile wrapNeovim = callPackage ../applications/editors/neovim/wrapper.nix { }; could be modified to add oni = wrapNeovim { pkg= oni-unwrapped;}
Hey folks,
I've been working on trying to build this package in a more reliable way and have so far come up with the following:
default.nix
self: super:
{
yarn2nix = super.callPackage ( builtins.fetchTarball {
url = "https://github.com/moretea/yarn2nix/archive/8a6b9dcf7cef8840eb7bc64d7639bad566af2e9d.tar.gz";
sha256 = "0ih11vcd9ad5y13877bxz7ijsykhqwdfwmvwhic3xlgcdhxji80v";
}) {};
oni = self.yarn2nix.mkYarnPackage rec {
name = "oni";
version = "v0.3.7-beta3";
src = super.fetchFromGitHub {
owner = "onivim";
repo = "oni";
rev = version;
sha256 = "0kd8m17war8wsm7v8qwkdx2756y43lmj4i0xv7g2m40hl7idihd1";
};
patches = [
./browser_tsconfig.patch
./yarn.patch
];
nativeBuildInputs = with super; [ pkgconfig python xorg.libxkbfile xorg.libX11 ];
# The following is needed because yarn dependencies are fetched before patching runs.
# With that in mind - we need to force patch the yarn lock file before the fetch occurs.
yarnLock = super.runCommand "yarn.lock" {} ''
cp ${src}/yarn.lock .
patch -p1 -o - < ${./yarn.patch} > $out
'';
# When this command runs - a LOT of node processes are started and soak up all
# available memory. This doesn't happen when the same command is run manually.
buildPhase = ''
${super.yarn}/bin/yarn run build
'';
# We never reach this section so the issue isn't here...
postInstall = ''
rm $out/bin/oni
cat <<EOF > $out/bin/oni
#!${super.bash}/bin/bash
PATH=${super.stdenv.lib.makeBinPath [ super.electron super.python super.nodejs super.neovim ] }
electron "$out/libexec/${name}/deps/${name}/lib/main/src/main.js"
EOF
chmod +x $out/bin/oni
'';
};
}
yarn.patch
--- a/yarn.lock
+++ b/yarn.lock
@@ -2305,7 +2301,7 @@
classnames@^2.2.3, classnames@^2.2.5:
version "2.2.5"
- resolved "https://codeload.github.com/JedWatson/classnames/tar.gz/34a05a53d31d35879ec7088949ae5a1b2224043a"
+ resolved "https://codeload.github.com/JedWatson/classnames/tar.gz/34a05a53d31d35879ec7088949ae5a1b2224043a#dc5d48c08eeffc4406102736457dac2273d6e389"
[email protected]:
version "4.1.11"
browser_tsconfig.patch
--- a/browser/tsconfig.json
+++ b/browser/tsconfig.json
@@ -9,9 +9,7 @@
"module": "esnext",
"moduleResolution": "node",
"newLine": "LF",
- "noEmitOnError": true,
"noFallthroughCasesInSwitch": true,
- "noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noUnusedLocals": true,
The problem I'm facing is very odd though - I'm getting the dependencies fetched properly, getting the build to start but I end up with a LOT of node processes running during the build and I'm running out of RAM (I have 8GB RAM + 6GB swap - should be enough.)
I notice if I build outside of nix (just using the nix-shell to install dependencies, then build using yarn) it works just fine so very strange. The only difference I see is that I'm pulling dependencies live from the Internet when not using Nix but other than that - seems the same. I even apply the same patch files to the sources to enable it to build and it works.
Any ideas folks? I see the solution above but it seems very complicated and involving various packages which shouldn't be needed (and aren't when compiling manually) so it seems to me that the code above should work just fine.
@cawilliamson maybe open up a PR and gather feedback here. Would be great to have that package !
Oni being replaced by oni2 with a different stack reasonml, let's close this.
Most helpful comment
Okay, we finally got a working one. https://gist.github.com/phryneas/82c21177fb55afd7d333ac6ffa19d7c1
Thanks a lot to @stesie who sat down with me yesterday and got a lot of the stuff working.
The question is: this currently has a dependency to a patched yarn2nix. I guess there's no chance of getting it into nixpkgs like this?