3064 Commits (e36f2ea618642f803faa2d2e5c8484ce5591b211)

Author SHA1 Message Date
Jordi Boggiano 64ac32fca9 Merge pull request #2785 from Firehed/master
Add @generated annotation to lockfile (ref PR 2210)
10 years ago
Jordi Boggiano 43a72d1132 Merge pull request #2985 from tristanlins/hotfix/filesystem-remove-directory
Graceful fallback in Filesystem::removeDirectory() to php
10 years ago
Jordi Boggiano 1ce419cc43 Fix var name 10 years ago
Jordi Boggiano 3ebc869060 Extract functionality from GitDownloader to make it more reusable 10 years ago
Jordi Boggiano e0886b94a2 Make Git::cleanEnv static 10 years ago
Jordi Boggiano e23665be59 Fix replacers being picked if whatProvide was called before building the package whitelist, fixes #2991, fixes #2962 10 years ago
Jordi Boggiano a115cfd0d8 Fix regression in github fallback behavior 10 years ago
Christian Schiffler 7cec839d30 Fix the ZipDownloader to catch the exceptions thrown in Symfony process.
The problem was introduced in 72d4bea8 and causes composer to not fallback
to ZipArchive when unzip can not be executed (i.e. when proc_open() is
not allowed).
10 years ago
Dawid Nowak 851082e9f4 JsonConfigSource->array_unshift_ref() set private and changed name to arrayUnshiftRef() 10 years ago
Jordi Boggiano 0c343f925a Clarify code 10 years ago
Tristan Lins a4d43ee860 Implement ComposerRepository::findPackage and ComposerRepository::findPackages. 10 years ago
Tristan Lins 5f86037ff3 Graceful fallback in Filesystem::removeDirectory() to php, if process failed. 10 years ago
Jordi Boggiano 2a7a954f62 Handle multiple urls in package transport options 10 years ago
Jordi Boggiano c811eded7d Do not output if we are about to retry a download 10 years ago
Jordi Boggiano b6981d09e8 Fix handling of origin url in composer repository class 10 years ago
Jordi Boggiano 39c8d3e6e1 Ignore empty refs 10 years ago
Jordi Boggiano 97873a27af Update perforce code 10 years ago
Jordi Boggiano 31b787249c More fixes to mirror support 10 years ago
Jordi Boggiano b39df32d4b Minor fixes 10 years ago
Jordi Boggiano ba776c06ee Add composer mirror class 10 years ago
Jordi Boggiano 9cbfe31983 Fix regression when using -vvv 10 years ago
Jordi Boggiano 44e45ed2d5 Add support for lazy providers/proxies 10 years ago
Jordi Boggiano 77163f66fc Add support for mirrors in composer repos 10 years ago
Jordi Boggiano e707dcd92f Also load transport options in filesystem repositories to avoid loss from the installed repo, refs #2189 10 years ago
Jordi Boggiano faeb706de6 Handle alias packages properly, refs #2189 10 years ago
Jordi Boggiano 32cd883daa Rename options to transport-options, refs #2189 10 years ago
Jordi Boggiano 31092843fd Only load options when they come from the lock file, not from standard metadata, refs #2189 10 years ago
Jordi Boggiano 016a016455 Merge remote-tracking branch 'lcobucci/master'
Conflicts:
	src/Composer/Downloader/FileDownloader.php
10 years ago
renatbilalov ee142688e1 Corrected description of the option --optimize (-o) 10 years ago
jakoch a0e5ead9b0 removed unused variables $baseDir and $vendorDir from "autoloader_real.php" generated by AutoloadGenerator. adjusted tests accordingly. 10 years ago
Jérôme Macias 4f417e3985 Add --no-check-all option to composer validate command 10 years ago
jakoch 01968efa6f renamed listFiles() to getFolderContent(). fixed comment: the method doesn't return a "list of files in a directory, including dotfiles", it returns a "list of files and folders, excluding dotfiles". switched from !is_file() to is_dir() check. 10 years ago
jakoch 8fd82784b2 disable these xdebug settings only, if xdebug is loaded 10 years ago
Jordi Boggiano 05d9912f97 Ignore classes in ClassMapGenerator 10 years ago
Fabien Potencier 12421dd6b7 fixed class map generator when using a heredoc with spaces 10 years ago
Jordi Boggiano eebffacd9f Use pagination to get tags/branches from the github API 10 years ago
Jordi Boggiano 009fcb4262 Fix arg signature 10 years ago
Jordi Boggiano 3251f9f1aa Only check phar validity if phar.readonly is false 10 years ago
schmkr 8dd6b052ce Updating SvnDriver trunk revision check
Not checking revision of composer.json, but from its parent directory.

See composer/composer#2849
10 years ago
Jordi Boggiano 14f35e812c Merge pull request #2912 from ckwalsh/master
Support generating class map for XHP classes
10 years ago
Jordi Boggiano 49d4054e51 Handle files with no php at all, fixes #2910 10 years ago
Cullen Walsh 57d9e9852d Support generating class map for XHP classes 10 years ago
Jordi Boggiano f3c112e9e0 Split non-interactive and bad credential cases 10 years ago
Jordi Boggiano b437c1cc05 Support github auth directly in the RemoteFilesystem class 10 years ago
Jordi Boggiano 68e910d92a Merge pull request #2897 from jaypatel512/patch-1
Removing dist reference info from Artifact Repository
10 years ago
Nils Adermann 1e4df0690a Shorter boolean conversion 10 years ago
Jay 556aceeaaa Removing dist reference info from Artifact Repository
The getComposerInformation method adds dist information to package. This includes reference, which holds the name of the zip file. For e.g. "MyPackage-1.2.zip". 

Now, when using satis for hosting these packages, it uses the same code for archiving composer packages implemented at https://github.com/composer/composer/blob/master/src/Composer/Package/Archiver/ArchiveManager.php

In the implementation, getPackageFilename() adds the distReference info to the file name, which makes the zip file created at the end to be weird. Like "jay-logger-1.2-MyPackage-1.2.zip.tar". I am not sure if there is any other use of dist reference in Artifact Repository, but this would stop causing that issue.
10 years ago
Jordi Boggiano 4392be4d29 Fix some more inconsistencies in json manipulation 10 years ago
Jordi Boggiano d742ffca4f Fix removal of missing keys 10 years ago
Denis Sokolov 836534067b Avoid ambiguity warning for example directories as well
In particular, PEAR repositories use a classmap and example directories trigger
multiple false positive warnings.
10 years ago
Nils Adermann e93eeca13a Merge pull request #2894 from naderman/update-no-dev
Add an --update-no-dev option to the require command
10 years ago
Nils Adermann 8aac44d57d Merge pull request #2893 from naderman/require-delete-duplicate
When requiring a package remove it from require-dev and vice versa
10 years ago
Nils Adermann a2b227740a Add an --update-no-dev option to the require command 10 years ago
Nils Adermann 465f0e3761 When requiring a package remove it from require-dev and vice versa 10 years ago
Paul Tarjan ddec582ca1 use HHVM_VERSION
this one is better (they are the same)
10 years ago
Nils Adermann 78f2ad95a9 Correctly add decision reason to transaction 10 years ago
Jordi Boggiano e7b82cdd88 Only check in require and for non-platform packages, add flag to make this warning optional, refs #2320 10 years ago
Jordi Boggiano e0004d0656 Merge remote-tracking branch 'stof/validate_unbound_constraints' 10 years ago
Igor Wiedler c0086ba1e3 Clarify log messages when skipping existing bins 10 years ago
Michael Kühn 5b7e39e919 fixed: dead symlink breaks gc 10 years ago
Jordi Boggiano 3c0edd8c7f Process remove ops first, fixes #2874 10 years ago
Jordi Boggiano a931faaa34 Fix boolean check fail from a8ec134c2c 10 years ago
David Zuelke a8ec134c2c Only print suggestions in dev mode
There is no need to clutter the screen/logs/whatever with suggestions in production installs. If someone didn't care about them in dev mode, they certainly won't in production :)
10 years ago
Pierre du Plessis 244e865a35 Fix typo 10 years ago
Jordi Boggiano 0902305196 Fix classmap generator warnings and tests 10 years ago
Jordi Boggiano 8974a1ac92 Ignore ambiguous classes in tests/fixtures dirs, fixes #2858 10 years ago
Jordi Boggiano f56d315036 Ensure both bash and stty are present to assume cygwin, fixes #2857 10 years ago
Jordi Boggiano 6e16d53def Also use rawurlencode in git downloader, refs #2859 10 years ago
Alex Romanenko 5078d7c4fb Fix space in password for git auth 10 years ago
Daniel Karp e3be04c443 Don't show Ambiguous class resolution warning if class when not ambiguous
if a class or interface is defined twice in the same class, this should not produce a warning
10 years ago
Jordi Boggiano 781c97fa9b Refactor to avoid global static state 10 years ago
Jordi Boggiano c3ab09750d Merge remote-tracking branch 'johnikx/ambiguous-reference-warning' 10 years ago
Jordi Boggiano 3e8a767f8a Attempt using bash on windows if it is available, fixes #2831 10 years ago
Jordi Boggiano 07b8fe8109 Refactor code so it works cross-platform, refs #2825 10 years ago
Jordi Boggiano 01bf61fede Merge remote-tracking branch 'sebbrandt87/master' 10 years ago
Sebastian Brandt f633ab503e Update SvnDownloader.php 10 years ago
Jordi Boggiano 8e2b1c3e24 Merge pull request #2838 from timroberson/issue-2826
Add auth for private, non-GitHub repos (#2826)
10 years ago
Jordi Boggiano f233383de8 Merge pull request #2834 from vuhl/master
Fixing perforce driver/downloader bugs
10 years ago
Clark Stuth 8dc6a13a1c Removing dead code segment. 10 years ago
Clark Stuth a12c4e2a17 Removed getWindowsFlag and setWindowsFlag methods from Perforce object. 10 years ago
Jordi Boggiano b09fb521d2 Fix headers array, fixes #2821 10 years ago
Clark Stuth dd1fd0e306 fixed perforce to reference labels instead of invalid tags 10 years ago
Tim Roberson 1f70148884 Change elseif to if. 10 years ago
Clark Stuth 3a3661a0b3 removing dead code lines and excess comments 10 years ago
Jan Brecka b94838169d show warning only instead of throwing exception 10 years ago
Tim Roberson db1e4b7574 Add auth for private, non-GitHub repos (#2826) 10 years ago
drscre b75beda99c Bug in RunScriptCommand::execute()
When checking for known command in commandEvents and scriptEvent '&&' should be used instead of '||'
10 years ago
Jordi Boggiano fc9e1d0cff CS fixes, refs #2823 10 years ago
Jordi Boggiano a6531f6fd3 Merge remote-tracking branch 'fredemmott/hh-support' 10 years ago
Jordi Boggiano c96dedd19c Merge pull request #2268 from schmkr/svnDriver-trunkPath-improvements
Improved the handling of trunkPath
10 years ago
Jordi Boggiano e221757197 Update code to latest EventDispatcher, refs #2722 10 years ago
Sandy Pleyte b9efdd8348 Separated the scripts events in 2 arrays because they need to be called by different dispatchers. 10 years ago
Sandy Pleyte 2618e9a4f1 Fixed some docblocks 10 years ago
Sandy Pleyte fd4fb80d1e Fix for #2557, added missing run-scripts 10 years ago
Jordi Boggiano 808e65f7de Merge pull request #2769 from sndpl/issue/2739
Fix for #2739 (and #1755), added support for directory excludes in the gitignore file
10 years ago
Clark Stuth 2651cbc5fe Fixing perforce dev-master stored reference bug. 10 years ago
Clark Stuth 8fc1961463 Fixing delete client workspace bug. 10 years ago
Clark Stuth c11105dd60 Fixing bug not cleaning up workspaces. 10 years ago
Clark Stuth 492539101c got all unit tests passing 10 years ago
Clark Stuth 24dd42267f almost all unit tests passing after IOInterface dependency refactor. no longer passing IOInterface into any Perforce methods 10 years ago
Clark Stuth 0f7b078d6c added new dependency to Perforce object, updating some tests. 10 years ago
Jan Brecka a41370b021 fix plural in exception message 10 years ago
Jan Brecka ea7717c8e5 improve exception message 10 years ago
Jan Brecka 13b57112a9 Throw RuntimeException when ambiguous reference was found. 10 years ago
Sebastian Brandt 16489dc084 Update SvnDownloader.php
added --ignore-ancestry to the switch statement because it can be a problem with svn:properties
10 years ago
Fred Emmott 7d3274224a Only look for .hh files at runtime if using HHVM
The ClassMap generator will look regardless, but that's not a runtime
cost, so seems desirable (in case composer install/update needs to be
called with php5 for some resaon)
10 years ago
Fred Emmott 734e5e2f2b Add autoload support for .hh files (HHVM)
HHVM is adding support for an alternative extension for files using
HHVM-specific features. Support them in the Class Map and PSR4
autoloaders.

Trivial example: https://github.com/fredemmott/hh_extension_toolset
10 years ago
Christian Flothmann 0e9325da79 for AliasPackages check that the aliased package is white listed so that version constraints of AliasPackages are taken into account when computing package provisions 10 years ago
Jordi Boggiano aa9c257f0e Merge remote-tracking branch 'alebiavati/list-paths' 10 years ago
Jordi Boggiano 78343ead10 Merge pull request #2765 from neoascetic/gzip_downloader
Gzip downloader (resolves #2521)
10 years ago
Eric Stern 634d1aba63 Add @generated annotation to lockfile readme, giving a hint for linters and other static analysis tools 10 years ago
Pavel Puchkin 9fda8cdc84 Type in comment 10 years ago
Alessandro Biavati c5d1a3575c Added `path` flag to show install path for installed packages 10 years ago
Jordi Boggiano 5fb005631a Tweaking dispatchScript method to be in line with the rest, and add devMode to *_AUTOLOAD_DUMP events 10 years ago
Jordi Boggiano 790a25c348 Adjust dump command, add another test, update docs, refs #1344 10 years ago
Jordi Boggiano 023ff131aa Merge remote-tracking branch 'bamarni/autoload-dev' 10 years ago
Jordi Boggiano cea7c07cf2 Fix CS 10 years ago
Jordi Boggiano 1f2d8908f3 Merge remote-tracking branch 'olvlvl/fix_issue_2598' 10 years ago
Sandy Pleyte 3e161e8ea9 Updated the regexp and added an other test case for sub dirs 10 years ago
Sandy Pleyte 1d51e54a31 Updated the regexp and added more test cases. 10 years ago
Pavel Puchkin 7ccb91667f Fallback to gzip functions when on Windows 10 years ago
Bilal Amarni db91454a13 added an autoload-dev section 10 years ago
Sandy Pleyte 21109ada22 Fix for #2739 (and #1755), added support for directory excludes in the .gitignore file like /directory or directory/ 10 years ago
Jordi Boggiano 5b0dc99fec Reuse github existing tokens instead of failing, fixes #2724 10 years ago
Jordi Boggiano 1851c29dd3 Update code to work with #2766 10 years ago
Jordi Boggiano 9db2a537e5 Merge remote-tracking branch 'cs278/github-otp-support' 10 years ago
Jordi Boggiano 28bb781324 Capture response bodies in exceptions when http requests fail 10 years ago
Pavel Puchkin c598fdb0f5 Since there is no solution for non-unix (for now), remove the condition 10 years ago
Pavel Puchkin ba56ac362a Final fix. Preserve initial file name 10 years ago
Pavel Puchkin a287884619 There is no need in DIRECTORY_SEPARATOR since it Unix 10 years ago
Pavel Puchkin 3811fe7d8b Resolves #2521. First and simple attempt to make a gzip downloader 10 years ago
Jordi Boggiano e1e48b28f7 Update vendor dir modified time after every install/update, fixes #2764 10 years ago
Nils Adermann b808ff5e28 Don't hardcode the URL to an https one either 10 years ago
Nils Adermann edfaf727e5 When using the github driver with no-api don't reset to an ssh url 10 years ago
Jordi Boggiano 665a2bd0c0 Tweak error message and make TransportException extend from RuntimeException, refs #2753 10 years ago
Jordi Boggiano a612b2affe Merge remote-tracking branch 'naderman/download-failover' 10 years ago
Jordi Boggiano c698c8655c Merge pull request #2754 from naderman/github-no-api
Make the github driver behave like git if "no-api" is specified.
10 years ago
Jordi Boggiano e4a3078685 Merge pull request #2751 from sndpl/issue/1966
Fix for #1966, use the preferred-install from the rootPackage
10 years ago
Nils Adermann 31fd6c233c Rethrow download exceptions when no options left & clean up code 10 years ago
Nils Adermann a80fde97d5 Make the github driver behave like git if "no-api" is specified. 10 years ago
Nils Adermann 35fbe3fd42 Download failover means we can now always try github zip urls for dist 10 years ago
Nils Adermann 5ed18d9aa2 Fail over from source to dist and vice versa when downloads fail
Any RuntimeException descendent will be caught and cause another
download attempt using either source or dist depending on what was
attempted first.
10 years ago
Sandy Pleyte ee62ec60f0 Remove old comment 10 years ago
Sandy Pleyte ab8f67e8cf Always use rootPackage config 10 years ago
Sandy Pleyte 9af5eaa574 Refactored the code with the switch statement. 10 years ago
Sandy Pleyte bc7c93ae85 Fix for #1966, use the preferred-install from the rootPackage config to install the dependencies. 10 years ago
Jordi Boggiano 234be0b5e3 CS fixes, refs #2750 10 years ago
Richard George 2c01c9dd05 Avoid "Package foo/* listed for update is not installed" error
Previously 'compose update foo/*' gave an error
"Package foo/* listed for update is not installed. Ignoring" even if some foo/*
packages were present; however the packages *would* then be updated as
requested. This removes the false error iff foo/SOMEPACKAGE is required.
10 years ago
Jordi Boggiano 714a47ef93 Fix detached head handling for non-committish sources, fixes #2732 11 years ago
Nils Adermann aa74818fe0 Handle array candidates in whatProvides 11 years ago
Nils Adermann eb5c785dcd Remove superfluous string casts 11 years ago
Nils Adermann 33e872d7d3 Merge pull request #2733 from naderman/limit-replace-provide
Whitelist packages with names matching those specified before generating rules
11 years ago
Nils Adermann 5b80144ad0 Resolve job packages after whitelist generation 11 years ago
Nils Adermann bc7008270f Properly limit to name matches only if necessary 11 years ago
Nils Adermann 3148ffd355 Whitelist packages with names matching those specified before generating rules
Addresses #2690 doesn't do any performance optimisations yet which we
could do now
11 years ago
Jordi Boggiano eb3384445b Merge pull request #2188 from Danack/GetRootComposerJson
Find root composer.json in zip artifact more reliably.
11 years ago
Danack 20a7dcd02c Added explanation of why loop continues. 11 years ago
Danack 24aba5b51f Moved file back to correct location. (+1 squashed commit)
Squashed commits:
[eec32aa] Updated detection to only allow composer.josn in root or first level dir.
11 years ago
Olivier Laviale 40e484ed38 Fixed an issue that would lead to scattered autoloading files 11 years ago
Jordi Boggiano 0df9c803a5 Merge pull request #2718 from sndpl/issue/2613
Fix for #2613
11 years ago
Sandy Pleyte d788ee7d99 Fixed docblock 11 years ago
Sandy Pleyte 6bdcd9266c Fixed #2601, the callback functions expect param 1 to be a reference to the $config 11 years ago
Jordi Boggiano 60bf5633ea Wording tweaks, refs #2728 11 years ago
Jordi Boggiano 7ac1f1265e Merge remote-tracking branch 'sndpl/issue/2494' 11 years ago
Sandy Pleyte 40095d980c Fix for #2494, don't retrieve svn log when the references don't contain a reference number. 11 years ago
Jordi Boggiano bbda0434e5 Merge pull request #2584 from Cinderella-Man/version-setter
Package version setter
11 years ago
Jordi Boggiano 41afc8324e Workaround for json schema bug, fixes #2726 11 years ago
Sandy Pleyte 3a2815b778 Added extra unit test from the example in the ticket. 11 years ago
Jordi Boggiano 432ace33d4 Clean up svn environment to fix OSX issues, fixes #2708, refs #2146 11 years ago
Matthias Pigulla beff1f5cc1 This should create relative/absolute dist URLs depending on the way (relative/absolute) the artifact directory path was given. 11 years ago
Jordi Boggiano 5d4900e79d Add --no-checkout flag to avoid checking out the default branch first, fixes #2717 11 years ago
Sandy Pleyte f92f2f45a9 Fix for #2613, when using php < 5.4 there was an unnecessary backslash before each utf-8 char. The problem was that the regexp matched all utf-8 encoded chars (included the ones that where escaped). The new regexp uses the lookbehind feature to check if the backslash isn't prefixed with an other backslash. 11 years ago
Sandy Pleyte 7a902ed96d Fix for #2613, when using php < 5.4 there was an unnecessary backslash before each utf-8 char. The problem was that the regexp matched all utf-8 encoded chars (included the ones that where escaped). The new regexp uses the lookbehind feature to check if the backslash isn't prefixed with an other backslash. 11 years ago
Jordi Boggiano 9896abeb38 Doc tweaks, refs #2682 11 years ago
Jordi Boggiano 245461d8ed Merge pull request #2682 from gena01/ssh-support-in-github-protocols
Adding ssh protocol support to "github-protocols".
11 years ago
Jordi Boggiano 93da24b45a Merge pull request #2695 from guillaumelecerf/fix_cache_gc_with_cachedir_devnull
Fix Cache::gc() when COMPOSER_CACHE_DIR=/dev/null
11 years ago
Jordi Boggiano 3f4e0d22c5 Merge pull request #2691 from dave1010/docs-patch
Fix some PHP doc blocks
11 years ago
Jordi Boggiano 91df245be0 Merge pull request #2688 from slbmeh/master
add allowing require to update dep chain, fixes composer/composer#2668
11 years ago
Jordi Boggiano e03057156c CS fixes 11 years ago
Jordi Boggiano 9d2d828b70 Merge remote-tracking branch 'h4cc/master' 11 years ago
Guillaume LECERF 44fd75ef38 Fix Cache::gc() when COMPOSER_CACHE_DIR=/dev/null
If we set COMPOSER_CACHE_DIR=/dev/null, and the garbage collector
is triggered, we end up with the following error :

The "/dev/null/" directory does not exist.

This is because the Cache::gc() function does not check for Cache::enabled
and instanciates a Finder unconditionnaly.

Fix this by adding a check on Cache::enabled.
11 years ago
Dave Hulbert 81aa3a850c Fix some PHP doc blocks 11 years ago
Steve Buzonas 3ad47b5d2c add allowing require to update dep chain, fixes composer/composer#2668 11 years ago
Gennady Feldman ac78eaa027 Adding ssh protocol support to github-protocols. 11 years ago
René Kerner 0f95e531b8 * fixed svn tag directory handling 11 years ago
Nils Adermann b7a9ea4187 Merge branch 'svn-root-detection'
* svn-root-detection:
  Reformat code to follow coding style
  * added svn handling for tags, trunk, branches in root packages
11 years ago
Nils Adermann f2c48788b8 Reformat code to follow coding style 11 years ago
Jordi Boggiano f72066de90 Merge pull request #2649 from zczapran/bugfix/git_exclude_filter_rules_too_broad
[Archiver] Rules in GitExcludeFilter are too broad
11 years ago
Nicolas Grekas 00a6f8e38d dedicated scope isolation function for autoload_real 11 years ago
Julius Beckmann ed5da804dd Fixed handling of Metapackages in DownloadManager.
The "getDownloaderForInstalledPackage" returns null for "metapackage" and the download(), update() and remove() methods did not handle this return value correctly.
11 years ago
Jordi Boggiano ed02997a7b Fix mode and add docblock, refs #2644 11 years ago
Jordi Boggiano d26dda5c95 Merge remote-tracking branch 'olvlvl/improved_package_sorting_alone' 11 years ago
René Kerner 410181ee29 * added svn handling for tags, trunk, branches in root packages 11 years ago
Nils Adermann 54b8831131 Revert "correct small bug, source files aren't installed and removed from the same path (problem with targetDir package attribute)"
This reverts commit 79a4c5cac1.
11 years ago
Nils Adermann 50cf2ffba7 Merge pull request #2637 from MeKeyCool/master
bug fix with install / remove source codes
11 years ago
Nils Adermann aef0483cc9 Merge pull request #2667 from nicolas-grekas/master
scope isolation for user includes
11 years ago
Nicolas Grekas 6d7b9afc4b scope isolation for user includes 11 years ago
Jordi Boggiano 75cd91657a Merge remote-tracking branch 'jeromemacias/fix_psr4_classmap_generator' 11 years ago
Nils Adermann 7566315c7a Don't put dots in archive filenames they cause problems with PharData
composer/satis#114
11 years ago
Jordi Boggiano a90a05a059 Detect composer install foo/bar misuse and suggest alt 11 years ago