Giter Club home page Giter Club logo

fig's People

Contributors

adklimki avatar akombo avatar clonezone avatar cread avatar cwalquist avatar gburca avatar kcowgill avatar mfoemmel avatar osi avatar walquis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fig's Issues

"-c" does not work for publishing -- default config not changed, and a subsequent "fig -u" gives a stack overflow

Using fig 0.1.14, and given this package.fig...

resource drw.jetlang.core.jar

config default
        include drw.jetlang.core-linux-pub/1.0.0
end

config dist
        append CLASSPATH=@/drw.jetlang.core.jar
end

...a "fig --publish drw.jetlang.core-linux-pub/1.0.0 -c dist" simply publishes the entire package.fig. When a "fig -u" is run, fig crashes because drw.jetlang.core-linux-pub's config is "default" rather than "dist", and it includes itself ad infinitum.

Fig tries to parse args passed to command

$ fig -- somecommand --foo
/usr/lib/ruby/1.8/optparse.rb:1450:in complete': invalid option: --foo (OptionParser::InvalidOption) from /usr/lib/ruby/1.8/optparse.rb:1448:incatch'
from /usr/lib/ruby/1.8/optparse.rb:1448:in complete' from /usr/lib/ruby/1.8/optparse.rb:1261:inparse_in_order'
from /usr/lib/ruby/1.8/optparse.rb:1254:in catch' from /usr/lib/ruby/1.8/optparse.rb:1254:inparse_in_order'
from /usr/lib/ruby/1.8/optparse.rb:1248:in order!' from /usr/lib/ruby/1.8/optparse.rb:1339:inpermute!'
from /usr/lib/ruby/1.8/optparse.rb:1360:in parse!' from /home/joe/.gem/ruby/1.8/gems/fig-0.1.6/lib/fig/options.rb:79:inparse_options'
from /home/joe/.gem/ruby/1.8/gems/fig-0.1.6/bin/fig:33
from /home/joe/.gem/ruby/1.8/bin/fig:19:in `load'
from /home/joe/.gem/ruby/1.8/bin/fig:19

--foo is something processed by somecommand... fig should just pass it through.

Fig 0.1.13 doesn't build on Linux - missing archive.h

Specifically Ubuntu 9.10. Here's the error output, tried on a couple of machines.

$ gem install fig -v 0.1.13
Building native extensions.  This could take a while...
ERROR:  Error installing fig:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for a BSD-compatible install... /usr/bin/install -c
configure: creating ./config.status
config.status: creating config.h
config.status: config.h is unchanged
checking for config.h... yes
checking for archive.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.           

Fig does not resolve @ in paths when using an unpublished package.fig

$ cat package.fig 
resource "dist/foo.jar"
config default 
  append CLASSPATH=@/dist/foo.jar
end

$ fig -- echo \$CLASSPATH
@/dist/foo.jar

Expected result:
dist/foo.jar

Having this feature would make it really convenient to use fig for dependency management, without having to publish to a repository.

odd stack trace when retrieving to 'include'

When .fighome has resources like 'include/log4cplus/... stuff', trying to retrieve using
'retrieve INCLUDEPATH->include', we get the stack trace below. Changing the local package.fig to 'retrieve INCLUDEPATH->inc' makes fig happy.

[08:57][badams@wud-badams03 ~/dev/harvest]$ rm -rf include/ lib/ && fig --update-if-missing
retrieving lib/liblog4cplus.so
retrieving include/include/log4cplus/helpers/threads.h
/usr/lib/ruby/1.8/fileutils.rb:243:in `mkdir': File exists - include (Errno::EEXIST)
  from /usr/lib/ruby/1.8/fileutils.rb:243:in `fu_mkdir'
  from /usr/lib/ruby/1.8/fileutils.rb:217:in `mkdir_p'
  from /usr/lib/ruby/1.8/fileutils.rb:215:in `reverse_each'
  from /usr/lib/ruby/1.8/fileutils.rb:215:in `mkdir_p'
  from /usr/lib/ruby/1.8/fileutils.rb:201:in `each'
  from /usr/lib/ruby/1.8/fileutils.rb:201:in `mkdir_p'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/os.rb:183:in `copy'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/environment.rb:144:in `expand_value'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/environment.rb:90:in `append_variable'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/environment.rb:60:in `apply_config_statement'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/environment.rb:35:in `apply_config'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/environment.rb:35:in `each'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/environment.rb:35:in `apply_config'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/environment.rb:74:in `include_config'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/environment.rb:64:in `apply_config_statement'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/environment.rb:35:in `apply_config'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/environment.rb:35:in `each'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/lib/fig/environment.rb:35:in `apply_config'
  from /home/badams/.gem/ruby/1.8/gems/fig-0.1.21/bin/fig:134
  from /home/badams/.gem/ruby/1.8/bin/fig:19:in `load'
  from /home/badams/.gem/ruby/1.8/bin/fig:19

NameError in ssh_download

When trying to download items from an SSH repository, you get the following exception if the package isn't found:

/opt/local/lib/ruby/gems/1.8/gems/fig-0.1.14/lib/fig/os.rb:263:in ssh_download': undefined local variable or methoduri' for #Fig::OS:0x11ca588 (NameError)

Should use the local variable, "path," instead of "uri".

Carriage returns in file cause parse error

If there is a carriage return in the .fig or the package.fig file, fig will fail with the error:

downloading ftp://devnas/builds/Fig/repos/foo/1.0.0/.fig
install failed, cleaning up
ruby/1.8/gems/fig-0.1.14/lib/fig/parser.rb:16:in parse_package': /home/user/.fighome/repos/foo/1.0.0: Expected one of resource, retrieve, config at line 1, column 2 (byte 2) after (RuntimeError) from ruby/1.8/gems/fig-0.1.14/lib/fig/repository.rb:145:inread_package_from_file'
from ruby/1.8/gems/fig-0.1.14/lib/fig/repository.rb:135:in read_package_from_directory' from ruby/1.8/gems/fig-0.1.14/lib/fig/repository.rb:118:inread_local_package'
from ruby/1.8/gems/fig-0.1.14/lib/fig/repository.rb:163:in install_package' from ruby/1.8/gems/fig-0.1.14/lib/fig/repository.rb:108:inupdate_package'
from ruby/1.8/gems/fig-0.1.14/lib/fig/repository.rb:98:in load_package' from ruby/1.8/gems/fig-0.1.14/lib/fig/environment.rb:121:inlookup_package'
from ruby/1.8/gems/fig-0.1.14/lib/fig/environment.rb:73:in include_config' from ruby/1.8/gems/fig-0.1.14/lib/fig/environment.rb:64:inapply_config_statement'
from ruby/1.8/gems/fig-0.1.14/lib/fig/environment.rb:35:in apply_config' from ruby/1.8/gems/fig-0.1.14/lib/fig/environment.rb:35:ineach'
from ruby/1.8/gems/fig-0.1.14/lib/fig/environment.rb:35:in apply_config' from ruby/1.8/gems/fig-0.1.14/bin/fig:134 from ruby/1.8/bin/fig:19:inload'
from ruby/1.8/bin/fig:19

Update-if-missing

Here's the problem:

--update is slow. I don't want to run it on every command, or even once per build. But if I skip it, things might break.

Having an --update-if-missing would be a nice middle ground - it would only contact the network if the dep wasn't already in the local filesystem. So long as you're always using immutable dependencies, this should be fine.

Error when trying to run a fig command

$ fig -u jruby/1.3.1:jirb
/home/joe/.gem/ruby/1.8/gems/fig-0.1.6/bin/fig:138: private method include_config' called for #<Fig::Environment:0x7fd252a38578> (NoMethodError) from /home/joe/.gem/ruby/1.8/bin/fig:19:inload'
from /home/joe/.gem/ruby/1.8/bin/fig:19

.fig in the repo contains a command:

config jirb
command "do something"
end

differentiate between fig options and fig commands

fig [options] command [package...]

fig commands are things like update, list[-remote], publish, clean

fig options are things like --include, --append

So you have:

  • fig -i cheese/1.1 -i pie/2.3 update

or

  • fig -a ham-1.1.tgz publish ham/1.1

Better error message for missing version of a package

Currently I get:

$ fig -u -i log4j/1.3
downloading ftp://myhost/path/to/repos/log4j/1.3/.fig
/usr/lib/ruby/1.8/net/ftp.rb:243:in `getresp': 550 path/to/repos/log4j/1.3/.fig: The system cannot find the path specified. (Net::FTPPermError)

followed by a stack trace.

Prevent accidental overwriting of an existing version

When using fig --publish, I'd like fig to fail (by default) if I try to push a version that already exists. I keep accidentally breaking old builds.

If I really really want to republish an existing version, I could specify --force

A new "append @/pkg//foo/bar.a" statement should preserve path information after the '//'

In Go, the path information is part of your import statement. Therefore it would be helpful to preserve the path information available to "retrieve" statements.

Given a library:
"foo/bar.a" where "foo" is a namespace, and "bar.a" is the name of the actual library.

When I publish using the following statement:
fig --publish bar/1.0 --resource=pkg/foo/bar.a --append="GOPATH=@/pkg//foo/bar.a"

And when I have a package.fig in my project that both includes the package bar/1.0 and has a retrieve statement:
retrieve GOPATH->pkg
config default
include bar/1.0
end

Then I should see the following directory structure in my project directory that contained the package.fig above. Note that the directory structure for 'foo/bar.a' was preserved.
$ tree .
.
├── package.fig
└── pkg
└── foo
└── bar.a

And double-slashes should be stripped when printing and using environment variables.
$ fig -g GOPATH
/home/username/.fighome/repos/bar/1.0/foo/bar.a

Extra junk folder

I used the following invocation on a mac:
fig --publish google.guava/r04-weird --resource guava-r04.jar --append CLASSPATH=@/guava-r04.jar

Which worked fine - but when I un tar/gzip'd the resultant tarball on windows using 7zip, I saw an extra folder called PaxHeader along side the jarfile. Inside the folder was an empty file with the name of the jar file.

When I un tar/gzip'd the resultant tarball on a mac, this extra file didn't exist.

Running the same command from linux (ubuntu) I didn't see this extra folder created when untar'ing on windows.

Is this horribly broken? Probably not. Is it a tad ugly? I think so.

Allow per config retrieve statements.

I'd like to do this:

config build
  retrieve CLASSPATH->lib
  include some/stuff
end

config runtime
  retrieve CLASSPATH->dist/lib
  include other/stuff
end

resource statement should accept wildcards

The "resource" statement used when publishing should support some wildcards. These wildcards would act like ant-style file globs.

Given the following wildcards and their descriptions:
* Match zero or more characters for files in the directory.
** Match zero or more directories.
? Match one character
And the following jar files in my project:
output/
├── bar.jar
└── baz.jar
When I have a wildcard of foo/.jar in my resource statement
fig --publish foo/1.0 --resource="output/
.jar" --append="CLASSPATH=@/output/bar.jar"

Then both "bar.jar" and "baz.jar" will be published to the fig repository, and downloaded when a user includes the foo/1.0 package in their project.

fig --list throws error

$ fig --list
jruby/1.3.1
scala/2.8.0-betaRC8
/home/joe/.gem/ruby/1.8/gems/fig-0.1.6/lib/fig/repository.rb:116:in join': can't convert nil into String (TypeError) from /home/joe/.gem/ruby/1.8/gems/fig-0.1.6/lib/fig/repository.rb:116:inlocal_dir_for_package'
from /home/joe/.gem/ruby/1.8/gems/fig-0.1.6/lib/fig/repository.rb:91:in read_local_package' from /home/joe/.gem/ruby/1.8/gems/fig-0.1.6/lib/fig/repository.rb:79:inload_package'
from /home/joe/.gem/ruby/1.8/gems/fig-0.1.6/lib/fig/environment.rb:107:in lookup_package' from /home/joe/.gem/ruby/1.8/gems/fig-0.1.6/lib/fig/environment.rb:45:inexecute_config'
from /home/joe/.gem/ruby/1.8/gems/fig-0.1.6/bin/fig:141
from /home/joe/.gem/ruby/1.8/bin/fig:19:in `load'
from /home/joe/.gem/ruby/1.8/bin/fig:19

uploading using fig with multiple resource lines doesn't work

With fig 0.1.13, using a package file like:

resource "one.jar"
resource "two.jar"

Causes:

$ fig --publish mylib/0.0.1
/home/mroberts/.gem/ruby/1.8/gems/fig-0.1.13/lib/fig/os.rb:184:in copy_stat': Copy stat failed: (Archive::Error) from /home/mroberts/.gem/ruby/1.8/gems/fig-0.1.13/lib/fig/os.rb:184:increate_archive'
from /home/mroberts/.gem/ruby/1.8/gems/fig-0.1.13/lib/fig/os.rb:183:in new_entry' from /home/mroberts/.gem/ruby/1.8/gems/fig-0.1.13/lib/fig/os.rb:183:increate_archive'
from /home/mroberts/.gem/ruby/1.8/gems/fig-0.1.13/lib/fig/os.rb:182:in each' from /home/mroberts/.gem/ruby/1.8/gems/fig-0.1.13/lib/fig/os.rb:182:increate_archive'
from /home/mroberts/.gem/ruby/1.8/gems/fig-0.1.13/lib/fig/os.rb:181:in write_open_filename' from /home/mroberts/.gem/ruby/1.8/gems/fig-0.1.13/lib/fig/os.rb:181:increate_archive'
from /home/mroberts/.gem/ruby/1.8/gems/fig-0.1.13/lib/fig/repository.rb:89:in bundle_resources' from /home/mroberts/.gem/ruby/1.8/gems/fig-0.1.13/lib/fig/repository.rb:49:inpublish_package'
from /home/mroberts/.gem/ruby/1.8/gems/fig-0.1.13/bin/fig:157
from /home/mroberts/.gem/ruby/1.8/bin/fig:19:in `load'
from /home/mroberts/.gem/ruby/1.8/bin/fig:19

fig help shows invalid option

$ fig -h
Usage: fig [--debug] [--update] [--config ] [-echo | --list | | - ]

Note the '-echo' version. I think this should be '--get'.

Using Fig 0.1.6.

Have a local.fig to override package.fig

Typically local.fig would be ignored by e.g. version control and fig publishing - it's just for development.

It would contain:

local cheese/1.2.3 /path/to/my/cheese # just override version 1.2.3 of cheese
local goats /path/to/my/goats # override any reference to goats
local pie/>=1.2 /path/to/my/pie # override any reference to pie/1.2 or greater

possibly within config blocks.

Actually, just the first one will cover most cases, until we get >= elsewhere.

Windows: NAnt has trouble with "~f0" line in fig.bat

Invoking fig like this from NAnt script:

    <exec program="fig.bat" workingdir="${Build.BuildRootDirectory}"
        failonerror="true" verbose="true"
        commandline="-u -- cp -r @anthillpro-agent/agent --target-directory=${pkg_path} --exclude=docs" />

...causes this error:

     [exec] Starting 'fig.bat (-u -- cp -r @anthillpro-agent/agent --target-directory=AntHillProAgent-Win32 --exclude=docs)' in 'C:\
src\git\anthillpro_agent_installer_win'
     [exec] ruby.exe: No such file or directory -- C:/src/git/anthillpro_agent_installer_win/fig (LoadError)

BUILD FAILED - 0 non-fatal error(s), 1 warning(s)

C:\src\git\anthillpro_agent_installer_win\Build\DrwLabeledBuild.win.nant(21,4):
External Program Failed: fig.bat (return code was 1)

Total time: 0.2 seconds.

C:\src\git\anthillpro_agent_installer_win>

If I remove this line in fig.bat and re-run, everything is OK:

IF NOT "%~f0" == "~f0" GOTO :WinNT

fig --list throws error when run straight after a fresh install

To reproduce:
rm -rf ~/.fighome
fig --list

/home/joe/.gem/ruby/1.8/gems/fig-0.1.8/lib/fig/os.rb:9:in open': No such file or directory - /home/joe/.fighome/repos (Errno::ENOENT) from /home/joe/.gem/ruby/1.8/gems/fig-0.1.8/lib/fig/os.rb:9:inentries'
from /home/joe/.gem/ruby/1.8/gems/fig-0.1.8/lib/fig/os.rb:9:in list' from /home/joe/.gem/ruby/1.8/gems/fig-0.1.8/lib/fig/repository.rb:23:inlist_packages'
from /home/joe/.gem/ruby/1.8/gems/fig-0.1.8/bin/fig:111
from ./.gem/ruby/1.8/bin/fig:19:in `load'
from ./.gem/ruby/1.8/bin/fig:19

Running fig w/o first running "fig -u" throws file not found exception, if package.fig is present

This is true for both Windows and Linux.

C:\src\git\anthillpro_agent_installer_win>cat package.fig
config default
   include java-zipped/1.6.0.13
   include ruby-zipped-win/1.8.6.287
   include anthillpro-agent/3.7.1.53990
end

C:\src\git\anthillpro_agent_installer_win>fig
C:/Progra~1/AntHillPro3/ruby/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/repository.rb:133:in `read_package_from_directory': File not
found: C:/Documents and Settings/cwalquist/.fighome/repos/java-zipped/1.6.0.13/package.fig (RuntimeError)
        from C:/Progra~1/AntHillPro3/ruby/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/repository.rb:118:in `read_local_package'
        from C:/Progra~1/AntHillPro3/ruby/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/repository.rb:100:in `load_package'
        from C:/Progra~1/AntHillPro3/ruby/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:121:in `lookup_package'
        from C:/Progra~1/AntHillPro3/ruby/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:73:in `include_config'
        from C:/Progra~1/AntHillPro3/ruby/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:64:in `apply_config_statement'
        from C:/Progra~1/AntHillPro3/ruby/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:35:in `apply_config'
        from C:/Progra~1/AntHillPro3/ruby/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:35:in `each'
        from C:/Progra~1/AntHillPro3/ruby/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:35:in `apply_config'
        from C:/Progra~1/AntHillPro3/ruby/lib/ruby/gems/1.8/gems/fig-0.1.13/bin/fig:134
        from C:/PROGRA~1/AntHillPro3/ruby/bin/fig:19:in `load'
        from C:/PROGRA~1/AntHillPro3/ruby/bin/fig:19

C:\src\git\anthillpro_agent_installer_win>fig -u
downloading ftp://devnas/builds/Fig/repos/java-zipped/1.6.0.13/.fig
downloading ftp://devnas/builds/Fig/repos/java-zipped/1.6.0.13/resources.tar.gz
downloading ftp://devnas/builds/Fig/repos/ruby-zipped-win/1.8.6.287/.fig
downloading ftp://devnas/builds/Fig/repos/ruby-zipped-win/1.8.6.287/resources.tar.gz
downloading ftp://devnas/builds/Fig/repos/anthillpro-agent/3.7.1.53990/.fig
downloading ftp://devnas/builds/Fig/repos/anthillpro-agent/3.7.1.53990/resources.tar.gz

C:\src\git\anthillpro_agent_installer_win>fig
C:\src\git\anthillpro_agent_installer_win>
[buildadmin@sud-chibld01 ahp_installer_linux]$ rm -rf ~/.fighome/repos/java-tgzipped/
[buildadmin@sud-chibld01 ahp_installer_linux]$ fig
/site/apps/ruby-1.8.6/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/repository.rb:133:in `read_package_from_directory': File not found: /home/buildadmin/.fighome/repos/java-tgzipped/1.6.0.11/package.fig (RuntimeError)
        from /site/apps/ruby-1.8.6/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/repository.rb:118:in `read_local_package'
        from /site/apps/ruby-1.8.6/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/repository.rb:100:in `load_package'
        from /site/apps/ruby-1.8.6/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:121:in `lookup_package'
        from /site/apps/ruby-1.8.6/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:73:in `include_config'
        from /site/apps/ruby-1.8.6/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:64:in `apply_config_statement'
        from /site/apps/ruby-1.8.6/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:35:in `apply_config'
        from /site/apps/ruby-1.8.6/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:35:in `each'
        from /site/apps/ruby-1.8.6/lib/ruby/gems/1.8/gems/fig-0.1.13/lib/fig/environment.rb:35:in `apply_config'
        from /site/apps/ruby-1.8.6/lib/ruby/gems/1.8/gems/fig-0.1.13/bin/fig:134
        from /site/apps/ruby/bin/fig:19:in `load'
        from /site/apps/ruby/bin/fig:19
[buildadmin@sud-chibld01 ahp_installer_linux]$ fig -u
downloading ftp://devnas/Builds/Fig/repos/java-tgzipped/1.6.0.11/.fig
downloading ftp://devnas/Builds/Fig/repos/java-tgzipped/1.6.0.11/resources.tar.gz
[buildadmin@sud-chibld01 ahp_installer_linux]$ fig
[buildadmin@sud-chibld01 ahp_installer_linux]$

zips published from Windows fig are corrupted - OK when same are pub'd from Linux

From Windows, published java\jre1.6.0_13.zip. All good until I tried to run the installer, and then 7zip barfed.

Investigation revealed a binary diff between the published version and the original:

$ tar xzf //devnas/builds/Fig/repos/java-zipped/1.6.0.13/resources.tar.gz

$ ls java/
jre1.6.0_13.zip

$ svn co http://svpsvn/drw/libs/thirdparty/JVMs/jre1.6.0_13-win
A    jre1.6.0_13-win\jre1.6.0_13.zip
A    jre1.6.0_13-win\README.txt
Checked out revision 226837.

$ ls -l jre1.6.0_13-win/jre1.6.0_13.zip
-rw-r--r--    1 cwalquis Administ 31576912 Mar  5 14:01 jre1.6.0_13-win/jre1.6.0_13.zip

$ cmp jre1.6.0_13-win/jre1.6.0_13.zip  java/jre1.6.0_13.zip
jre1.6.0_13-win/jre1.6.0_13.zip java/jre1.6.0_13.zip differ: char 669, line 4

$

The workaround is to do the publish operation from Linux, and then everything is fine.

Simple tagging of version numbers

fig --tag foo/1.2.3 current
fig --tag foo/1.2.4 beta

fig -i foo/current # 1.2.3
fig -i foo/beta # 1.2.4
fig -i foo # implicit current (1.2.3)

Publish to local repository only

Let's say I'm working on two closely related libraries A and B.

B depends on A.

My workflow at the moment is...

edit A
release new version of A
deploy A to repo
update B's deps to depend on new version of A
edit B
goto 10

This is painful if iterating frequently. I'd like a way to be able to temporarily depend on a local version.

'prepend' to compliment 'append'

I'm running into an issue, where I'm appending something to the path that already exists.

For example, I already have 'scala' in my default PATH in my .bashrc, but when I use a Fig dependency that defines 'append PATH=my-scala/bin', it appears too late in the PATH to be useful.

I considered using 'set' instead, but this wouldn't play well with other things that add to the path.

Fig 'retrieve' syntax for copying all files in a package

Currently fig's 'retrieve' syntax only supports copying individual files that have an 'append' statement for them.

Sometimes you want to copy all the files contained in a package into your project's working directory.

A syntax example:

retrieve @package_name->some_dir

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.