Code Monkey home page Code Monkey logo

gofish's Issues

food package url cannot be a binary

Have a chartmuseum.lua sitting in my default rig that looks like:

...
        {
            os = "darwin",
            arch = "amd64",
            url = "https://s3.amazonaws.com/chartmuseum/release/v" .. version .. "/bin/darwin/amd64/chartmuseum",
            sha256 = "2306cd0c982c158a8d565afb2a3a73391b9c4d1e50cfe33a5e954107c8fff0f8",
            resources = {
                {
                    path = name,
                    installpath = "bin/" .. name,
                    executable = true
                }
            }
...

When installing with

fish install chartmuseum

I get

==> Installing chartmuseum...
Error: chmod /usr/local/Fish/Barrel/chartmuseum/0.5.1/chartmuseum: no such file or directory

`vim $(gofish create foo)` did not do what I thought it would

Platform: macOS

The manual suggests:

Create the Fish Food

gofish update # make sure we've got a fresh checkout of master
vim $(gofish create foo)

I expected this to create Food/foo.lua and open my editor to that file. Instead, it created Food/foo and opened my editor to a blank file (not Food/foo).

Workaround: I renamed foo to foo.lua and edited that.

Add CircleCI to the mix

We need a CI system in place for testing changes as well as compiling and uploading releases to Azure.

gofish cannot install itself on windows

This works on linux because of the black magic behind /proc/self, but does not work on Windows because there is no equivalent AFAIK.

==> Installing gofish...
gofish : Error: symlink C:\ProgramData\Fish\Barrel\gofish\0.2.0\windows-amd64\gofish.exe C:\ProgramData\bin\gofish.exe: Cannot create a file when that file already exists.
At line:1 char:62
+ ... hildItem "$env:FISH_DEFAULT_RIG\Food") { gofish install $f.BaseName }
+                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Error: symlink ...already exists.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

For now, users can re-run the install.ps1 script when they need to upgrade.

Feature: Add a `license` header to fish food

I think it would be nice to have a license field on the fish food file, even if it's optional. Since we're working with binary instead of source, it's entirely possible that a license may be something other than a standard open source license. As a user, it would be nice to be able to discover that before installing something.

Here's the SPDX listing of the common license identifiers. It's what NPM, Dep, and similar tools use in their license fields: https://spdx.org/licenses/

Support .zip files

It's a common practice on Windows to release them as .zip files since tar is not available by default on Windows.

implement `gofish lint`

We should implement a linter so that we can verify a fish food has all of its ducks in a row. name, description, homepage, license (#50), version, etc.

Handling dependencies

GoFish should have a way to declare that one fish food depends (or conflicts) with another.

Installation on Windows fails if gofish is already installed

Gofish cannot be installed (updated) with gofish because of #46.

But gofish also fails to install on Powershell as it refuses to replace gofish binary that already exits!

PS C:\Windows\system32> iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/fishworks/gofish/master/scripts/install.ps1'))
Downloading https://gofi.sh/releases/gofish-v0.4.0-windows-amd64.zip
Preparing to install into C:\ProgramData\bin
Move-Item : Cannot create a file when that file already exists.
At line:23 char:1
+ Move-Item -Path "$tempDir\windows-amd64\gofish.exe" -Destination "$in ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (C:\Users\xxxxxx...md64\gofish.exe:FileInfo) [Move-Item], IOException
    + FullyQualifiedErrorId : MoveFileInfoItemIOError,Microsoft.PowerShell.Commands.MoveItemCommand

gofish installed into C:\ProgramData\bin\gofish.exe
Restart your terminal, then run 'gofish init' to get started!
PS C:\Windows\system32>

`gofish upgrade minikube` fails due to a cache conflict

Seems like the previous release of minikube is being used instead of fetching the latest release. We should probably namespace the cached downloads to prevent version conflicts when fetching downloads.

==> Upgrading minikube...
Error: shasum verify check failed: checksums differ for /home/bacongobbler/.fish/minikube-linux-amd64: expected '65dcc26a595c73b5bd2a3e47c3d5aa3bbdef81fe603f8d56f947d37cb12c74fc', got '41d666ddc9ea1eee3d08a939b1075347da7e670c93836d2756ee5ef1daaa1457'

The quick fix is to just remove /home/bacongobbler/.fish/minikube-linux-amd64 from the cache before trying again.

Differentiation between macOS versions

It looks like platform-wise every version of macOS is treated as a single target: darwin amd64.

I know this maps to the model used by the Go programming language, but homebrew clearly distinguishes packages for the different releases of macOS. This will probably start to matter when you define packages that link against system libraries.

Is there a design goal to address this problem?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.