Giter VIP home page Giter VIP logo

cocoapods-app's Introduction

CocoaPods Logo

CocoaPods.app

The foremost goal of CocoaPods.app is to provide a full-featured and standalone installation of CocoaPods, instead of requiring users to install CocoaPods through RubyGems or Homebrew. In addition to easy installation, it also includes ease of updating.

It is able to expose this standalone installation in a command-line interface environment through the pod command-line tool, which it will request to install on launch of the application or through the ‘Install the Command-Line Tool…’ menu item under the application menu.

Download

Building for Development

If you want to hack on CocoaPods.app:

This is known to work on Xcode 9.3, and high sierra

git clone https://github.com/CocoaPods/CocoaPods-app.git --recursive
cd CocoaPods-app
rake app:prerequisites --quiet
open app/CocoaPods.xcworkspace

This will set up your environment with a compiled versions of: ruby, git, cocoapods (the gem), hg, openssl, etc into both destroot and workbench.

Rake Tasks

The main tasks can be found with rake -T:

rake app:build               # Build release version of application
rake app:clean               # Clean
rake app:prerequisites       # Prepare all prerequisites for building the app
rake app:update_version      # Updates the Info.plist of the application to reflect the CocoaPods version
rake bundle:build            # Build complete dist bundle
rake bundle:clean:all        # Clean all artefacts, including downloads
rake bundle:clean:artefacts  # Clean build and destroot artefacts
rake bundle:submodules       # Ensure Submodules are downloaded
rake bundle:test             # Test bundle
rake bundle:verify_linkage   # Verifies that no binaries in the bundle link to incorrect dylibs
rake release                 # Create a clean release build for distribution
rake release:build           # Perform a full build of the bundle and app
rake release:cleanbuild      # Create a clean build
rake release:sparkle         # Version bump the Sparkle XML
rake release:upload          # Upload release

If you’re working on the build system and want to debug intermediate steps, such as building Ruby, Git, Subversion, Mercurial, or Bazaar, be sure to checkout all the tasks with rake -T -A.

We have heard reports of issues with installing on custom ruby installations, we'd recommend using system ruby (rvm use system for example) during the installation process. Nothing will be installed into the system, it all goes into the destroot folder, but then you have the same environment we are using.

Creating a release

  1. Run rake release.

cocoapods-app's People

Contributors

aaronpearce avatar alexito4 avatar alloy avatar amorde avatar andreamazz avatar ashfurrow avatar bih avatar dwicke01 avatar endocrimes avatar fullmetalfist avatar kolinkrewinkel avatar kylef avatar leberwurstsaft avatar marcboquet avatar mariusciocanel avatar mennenia avatar nwest avatar ohayon avatar orta avatar pedrovieira avatar samdmarshall avatar seanlabastille avatar segiddins avatar wjk avatar wrutkowski 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  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  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  avatar  avatar  avatar  avatar

cocoapods-app's Issues

Add env variable to select bundle in case user has multiple.

E.g. if the user has: /Applications/CocoaPods.app and /Applications/CocoaPods-0.34.0.app, then the user should be able to choose which one to use when using the binstub. E.g.

$ env CP_APP=CocoaPods-0.34.0 pod […]

or

$ env CP_APP=/Applications/CocoaPods-0.34.0.app pod […]

Finally, also read from optional User Defaults, which the user can set through the defaults command:

$ defaults write org.cocoapods.CocoaPods CPApplicationBundlePath /Applications/CocoaPods-0.34.0.app

We should not advertise the defaults way, though, it’s more to prepare for if the need to persist really arises.

Improve ENV setup.

Currently the binstub dismisses the user's env completely, which might make it hard whenever a user does need to be able to set one.

Instead, we should maybe make bundle-env unset any variables that we know are harmful. E.g.

  • RUBYOPT
  • GEM_HOME
  • Etc?

rake bundle:build refers to a svn file that doesn't exist any more

It stops at:

/usr/bin/curl -sSL http://apache.hippo.nl/subversion/subversion-1.8.13.tar.gz -o downloads/subversion-1.8.13.tar.gz
tar -zxvf downloads/subversion-1.8.13.tar.gz -C workbench
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
rake aborted!
Command failed with status (1): [tar -zxvf downloads/subversion-1.8.13.tar....]
/Users/orta/dev/mac/apps/CocoaPods-app/Rakefile:512:in `block in <top (required)>'
Tasks: TOP => bundle:build => bundle:build_tools => destroot/bundle/bin/svn => workbench/subversion-1.8.13/subversion/svn/svn => workbench/subversion-1.8.13
(See full trace by running task with --trace)

When you look at it, it's a 404

/usr/bin/curl -sSL http://apache.hippo.nl/subversion/subversion-1.8.13.tar.gz
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>Not Found</title>
    <style type="text/css">

      /* CSS Mini Reset */
      :link,:visited{text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6,pre,code{font-size:1em}ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,body,html,p,blockquote,fieldset,input{margin:0;padding:0}a img,:link  img,:visited img{border:none}address{font-style:normal}

      body { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAC8CAMAAAC65vUMAAAAAXNSR0IArs4c6QAAAwBQTFRFxMTEzs7O2NjY4ODg5+fn7e3t8fHx9fX19/f38vr+9Pv+9vz++Pj4+fn5+vr6+/v7+fz++/3/+/7//Pz8/f39/f3+/v7+/f7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvPOJNgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfcAhgOLSEgmD1fAAAAQklEQVRYw+3LMQ4AEADAQCsWLP7/Uy+oiISQtOulIVJBUZQTkihF+VgypShXpVCKoigLUqmJNOpp6ZTP5qMoyscyALrQEsW30RwAAAAAAElFTkSuQmCC) repeat-x #fff; font: 15px/ 1.64 arial, helvetica, clean, sans-serif; color: #333; }

      h1 { font-size: 1.8em; margin: 40px 0 10px; }
      p { margin-bottom: 10px; line-height: 1.64}
      #container { width: 960px; margin: 0 auto; }
      #main { margin-top: 150px; background-color: white; border: 1px solid #ccc; border-radius: 5px; padding: 0 50px 40px; }

    </style>
  </head>


  <body>
    <div id="container">
      <div id ="main">
        <h1>Oops!</h1>
        <p>The server is unable to find the page you requested.</p>
      </div>
    </div>

    <!-- www -->
  </body>
</html>

Bundle Build Failure

I was trying to run rake bundle:build, and got the following error output:

cd workbench/serf-1.3.8 && /Users/wjk/Documents/Source/CocoaPods-app/workbench/scons-local-2.3.4/scons.py PREFIX='/Users/wjk/Documents/Source/CocoaPods-app/destroot/dependencies' OPENSSL='/Users/wjk/Documents/Source/CocoaPods-app/destroot/dependencies' ZLIB='/Users/wjk/Documents/Source/CocoaPods-app/destroot/dependencies'
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o context.o -c -std=c89 -Wdeclaration-after-statement -Wmissing-prototypes -Wall -O2 -DNDEBUG -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I. -I/usr/include/apr-1 -I/Users/wjk/Documents/Source/CocoaPods-app/destroot/dependencies/include context.c
context.c:16:10: fatal error: 'apr_pools.h' file not found
#include <apr_pools.h>
         ^
1 error generated.
scons: *** [context.o] Error 1
scons: building terminated because of errors.
rake aborted!
Command failed with status (2): [cd workbench/serf-1.3.8 && /Users/wjk/Docu...]
/Users/wjk/Documents/Source/CocoaPods-app/Rakefile:311:in `block in <top (required)>'
Tasks: TOP => bundle:build => bundle:build_tools => destroot/bundle/bin/svn => workbench/subversion-1.8.13/subversion/svn/svn => destroot/dependencies/lib/libserf-1.a => workbench/serf-1.3.8/libserf-1.a
(See full trace by running task with --trace)

It seems that Xcode 7 moved the APR headers into the $SDKROOT/usr/include/apr-1 subdirectory, and the serf build doesn’t look there. Any thoughts as to how a patch should be prepared?

Add a Launcher window

Rough first draft:
http://cl.ly/image/3T3T3B0A471x/Screen%20Shot%202014-12-02%20at%2012.47.56.png

Right side = github mobile page for the release
Left side shows most recently edited Podfiles/XcodeProjects and jumps straight into the editor

Then jump off links into the guides / site.
Top banner is if you've not installed the command line tools.

Plugin support requirements

This supersedes #24.

We need a CLI interface to install plugins into the application bundle. Since we already have a pod plugins command, it makes sense to name this pod plugins install NAME. These are the requirements:

  • It should basically just gem install using the gem command inside the application bundle. When the pod plugins install command is run, the PATH should already be properly configured for that, so no further work on looking gem up is needed.
  • Installing plugins should not lead to other versions of the CP gems being installed. For instance, installing the current slather gem will install xcodeproj version 0.19.2, as per the requirement: https://github.com/venmo/slather/blob/v1.5.2/slather.gemspec#L29, which is not the CP 0.35.0 version of xcodeproj. To combat this, we should install the plugins using the gem install --file tmp-gemfile-that-locks-cocoapods feature and have it pin the CP gem to the version bundled in the application bundle (see example below). This means that pod plugins install will have to create a temporary file that adds the requested plugin to it.
  • In case the user does not have write permissions to the gem directory inside the application bundle, the command should use sudo so that the user is requested to authorise the installations.
  • Installed plugins should be recorded into a shared manifest so that we can automatically install them after updating the application bundle.

Example of pinning CocoaPods gem versions

E.g. the following tmp-gemfile-that-locks-cocoapods would install an older version of slather (1.3.0) which does have a requirement that’s compatible with CP 0.35.0’s xcodeproj:

source 'https://rubygems.org'
gem 'cocoapods', '0.35.0'
gem 'slather'
./destroot/bundle/bin/bundle-env gem install --file tmp-gemfile-that-locks-cocoapods
Fetching: clamp-0.6.3.gem (100%)
Installing clamp (0.6.3)
Using i18n (0.6.11)
Using json (1.8.1)
Using minitest (5.4.3)
Using thread_safe (0.3.4)
Using tzinfo (1.2.2)
Using activesupport (4.1.8)
Using colored (1.2)
Using xcodeproj (0.20.2)
Fetching: slather-1.3.0.gem (100%)
Installing slather (1.3.0)
Using claide (0.7.0)
Using fuzzy_match (2.0.4)
Using nap (0.8.0)
Using cocoapods-core (0.35.0)
Using cocoapods-downloader (0.8.0)
Using cocoapods-plugins (0.3.2)
Using netrc (0.7.8)
Using cocoapods-trunk (0.4.1)
Using cocoapods-try (0.4.2)
Using escape (0.0.4)
Using molinillo (0.1.2)
Using open4 (1.3.4)
Using cocoapods (0.35.0)

Finish release workflow

Install latest CocoaPods gem and based on the version of what that last release is:

  • update the app's Info.plist
  • create a build
  • archive
  • create GitHub release and upload archive
  • update Sparkle feed (see #4)

Plugin Support

Discuss how we would handle cocoapods-plugins in the bundled App. /cc @alloy

Should we have a menu that list all known plugins (probably fetched from the plugins.json file) and allows the use to install them for the bundled cocoapods in one click?


Maybe we should also only embed SCM tools only if the corresponding cocoapods-plugin is installed, namely don't embed bazaar, hg or svn binaries in the initial .app, and only download a bundled svn.tar.xz containing the SVN binary when the use choose to install the cocoapods-svn plugin?
(This solution would lighten the CocoaPods.app package a lot)

Gemfile should pin json version to the bundled, compiled version

Installing plugin: cocoapods-dependencies
[!] /Applications/CocoaPods.app/Contents/Resources/bundle/bin/gem install --file /var/folders/bc/zsywpv_950d_79w_6nxkvfy80000gn/T/cocoapods-plugins-install-cocoapods-dependencies20150405-48698-ntmh3l

Using nap (0.8.0)

Using thread_safe (0.3.5)

Using minitest (5.5.1)

Using tzinfo (1.2.2)

Installing json (1.8.2)

Building native extensions.  This could take a while...
ERROR:  While executing gem ... (Gem::Ext::BuildError)

    ERROR: Failed to build gem native extension.



    /Applications/CocoaPods.app/Contents/Resources/bundle/bin/ruby -r ./siteconf20150405-48707-1vndlom.rb extconf.rb

creating Makefile



make "DESTDIR=" clean



make "DESTDIR="

compiling generator.c

clang: warning: no such sysroot directory: '/Applications/Xcode-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk'

In file included from generator.c:1:

In file included from ./../fbuffer/fbuffer.h:5:

In file included from /Applications/CocoaPods.app/Contents/Resources/bundle/include/ruby-2.2.0/ruby.h:33:

In file included from /Applications/CocoaPods.app/Contents/Resources/bundle/include/ruby-2.2.0/ruby/ruby.h:29:

/Applications/CocoaPods.app/Contents/Resources/bundle/include/ruby-2.2.0/ruby/defines.h:26:10: fatal error: 'stdio.h' file not found

#include <stdio.h>

         ^

1 error generated.

make: *** [generator.o] Error 1



make failed, exit code 2



Gem files will remain installed in /Applications/CocoaPods.app/Contents/Resources/bundle/lib/ruby/gems/2.2.0/gems/json-1.8.2 for inspection.

Results logged to /Applications/CocoaPods.app/Contents/Resources/bundle/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/json-1.8.2/gem_make.out

Remove unneeded git commands

No idea which commands are really needed for our work, we really only need those required to pull.

~/C/C/CocoaPods.app [master] » find destroot/bundle/libexec/git-core -mindepth 1 ! -type l -exec ls -lh '{}' +
-rwxr-xr-x  1 eloy  staff   2.9M Nov 23 17:48 destroot/bundle/libexec/git-core/git
-rwxr-xr-x  1 eloy  staff    36K Nov 23 17:48 destroot/bundle/libexec/git-core/git-add--interactive
-rwxr-xr-x  1 eloy  staff    23K Nov 23 17:48 destroot/bundle/libexec/git-core/git-am
-rwxr-xr-x  1 eloy  staff    36K Nov 23 17:48 destroot/bundle/libexec/git-core/git-archimport
-rwxr-xr-x  1 eloy  staff    12K Nov 23 17:48 destroot/bundle/libexec/git-core/git-bisect
-rwxr-xr-x  1 eloy  staff   1.5M Nov 23 17:48 destroot/bundle/libexec/git-core/git-credential-cache
-rwxr-xr-x  1 eloy  staff   1.5M Nov 23 17:48 destroot/bundle/libexec/git-core/git-credential-cache--daemon
-rwxr-xr-x  1 eloy  staff   1.5M Nov 23 17:48 destroot/bundle/libexec/git-core/git-credential-store
-rwxr-xr-x  1 eloy  staff    13K Nov 23 17:48 destroot/bundle/libexec/git-core/git-cvsexportcommit
-rwxr-xr-x  1 eloy  staff    31K Nov 23 17:48 destroot/bundle/libexec/git-core/git-cvsimport
-rwxr-xr-x  1 eloy  staff   159K Nov 23 17:48 destroot/bundle/libexec/git-core/git-cvsserver
-rwxr-xr-x  1 eloy  staff   1.5M Nov 23 17:48 destroot/bundle/libexec/git-core/git-daemon
-rwxr-xr-x  1 eloy  staff    13K Nov 23 17:48 destroot/bundle/libexec/git-core/git-difftool
-rwxr-xr-x  1 eloy  staff   1.9K Nov 23 17:48 destroot/bundle/libexec/git-core/git-difftool--helper
-rwxr-xr-x  1 eloy  staff   1.6M Nov 23 17:48 destroot/bundle/libexec/git-core/git-fast-import
-rwxr-xr-x  1 eloy  staff    11K Nov 23 17:48 destroot/bundle/libexec/git-core/git-filter-branch
-rwxr-xr-x  1 eloy  staff   1.5M Nov 23 17:48 destroot/bundle/libexec/git-core/git-http-backend
-rwxr-xr-x  1 eloy  staff   1.6M Nov 23 17:48 destroot/bundle/libexec/git-core/git-http-fetch
-rwxr-xr-x  1 eloy  staff   1.6M Nov 23 17:48 destroot/bundle/libexec/git-core/git-http-push
-rwxr-xr-x  1 eloy  staff   1.6M Nov 23 17:48 destroot/bundle/libexec/git-core/git-imap-send
-rwxr-xr-x  1 eloy  staff    18K Nov 23 17:48 destroot/bundle/libexec/git-core/git-instaweb
-rwxr-xr-x  1 eloy  staff   2.2K Nov 23 17:48 destroot/bundle/libexec/git-core/git-merge-octopus
-rwxr-xr-x  1 eloy  staff   3.4K Nov 23 17:48 destroot/bundle/libexec/git-core/git-merge-one-file
-rwxr-xr-x  1 eloy  staff   944B Nov 23 17:48 destroot/bundle/libexec/git-core/git-merge-resolve
-rwxr-xr-x  1 eloy  staff   8.4K Nov 23 17:48 destroot/bundle/libexec/git-core/git-mergetool
-rw-r--r--  1 eloy  staff   7.4K Nov 23 17:48 destroot/bundle/libexec/git-core/git-mergetool--lib
-rwxr-xr-x  1 eloy  staff   119K Nov 23 17:48 destroot/bundle/libexec/git-core/git-p4
-rw-r--r--  1 eloy  staff   2.3K Nov 23 17:48 destroot/bundle/libexec/git-core/git-parse-remote
-rwxr-xr-x  1 eloy  staff   8.7K Nov 23 17:48 destroot/bundle/libexec/git-core/git-pull
-rwxr-xr-x  1 eloy  staff   3.3K Nov 23 17:48 destroot/bundle/libexec/git-core/git-quiltimport
-rwxr-xr-x  1 eloy  staff    16K Nov 23 17:48 destroot/bundle/libexec/git-core/git-rebase
-rw-r--r--  1 eloy  staff   2.4K Nov 23 17:48 destroot/bundle/libexec/git-core/git-rebase--am
-rw-r--r--  1 eloy  staff    28K Nov 23 17:48 destroot/bundle/libexec/git-core/git-rebase--interactive
-rw-r--r--  1 eloy  staff   3.7K Nov 23 17:48 destroot/bundle/libexec/git-core/git-rebase--merge
-rwxr-xr-x  1 eloy  staff   4.2K Nov 23 17:48 destroot/bundle/libexec/git-core/git-relink
-rwxr-xr-x  1 eloy  staff   1.6M Nov 23 17:48 destroot/bundle/libexec/git-core/git-remote-http
-rwxr-xr-x  1 eloy  staff   1.6M Nov 23 17:48 destroot/bundle/libexec/git-core/git-remote-testsvn
-rwxr-xr-x  1 eloy  staff   3.8K Nov 23 17:48 destroot/bundle/libexec/git-core/git-request-pull
-rwxr-xr-x  1 eloy  staff    44K Nov 23 17:48 destroot/bundle/libexec/git-core/git-send-email
-rw-r--r--  1 eloy  staff   2.0K Nov 23 17:48 destroot/bundle/libexec/git-core/git-sh-i18n
-rwxr-xr-x  1 eloy  staff   1.5M Nov 23 17:48 destroot/bundle/libexec/git-core/git-sh-i18n--envsubst
-rw-r--r--  1 eloy  staff   8.1K Nov 23 17:48 destroot/bundle/libexec/git-core/git-sh-setup
-rwxr-xr-x  1 eloy  staff   1.5M Nov 23 17:48 destroot/bundle/libexec/git-core/git-shell
-rwxr-xr-x  1 eloy  staff   1.5M Nov 23 17:48 destroot/bundle/libexec/git-core/git-show-index
-rwxr-xr-x  1 eloy  staff    13K Nov 23 17:48 destroot/bundle/libexec/git-core/git-stash
-rwxr-xr-x  1 eloy  staff    31K Nov 23 17:48 destroot/bundle/libexec/git-core/git-submodule
-rwxr-xr-x  1 eloy  staff    60K Nov 23 17:48 destroot/bundle/libexec/git-core/git-svn
-rwxr-xr-x  1 eloy  staff   1.6M Nov 23 17:48 destroot/bundle/libexec/git-core/git-upload-pack
-rwxr-xr-x  1 eloy  staff   4.3K Nov 23 17:48 destroot/bundle/libexec/git-core/git-web--browse
-rw-r--r--  1 eloy  staff   392B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/araxis
-rw-r--r--  1 eloy  staff   401B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/bc3
-rw-r--r--  1 eloy  staff   387B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/codecompare
-rw-r--r--  1 eloy  staff   628B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/deltawalker
-rw-r--r--  1 eloy  staff   286B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/diffmerge
-rw-r--r--  1 eloy  staff   282B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/diffuse
-rw-r--r--  1 eloy  staff   340B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/ecmerge
-rw-r--r--  1 eloy  staff   415B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/emerge
-rw-r--r--  1 eloy  staff    29B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/gvimdiff
-rw-r--r--  1 eloy  staff    29B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/gvimdiff2
-rw-r--r--  1 eloy  staff    29B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/gvimdiff3
-rw-r--r--  1 eloy  staff   499B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/kdiff3
-rw-r--r--  1 eloy  staff    83B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/kompare
-rw-r--r--  1 eloy  staff   876B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/meld
-rw-r--r--  1 eloy  staff   301B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/opendiff
-rw-r--r--  1 eloy  staff   651B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/p4merge
-rw-r--r--  1 eloy  staff   224B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/tkdiff
-rw-r--r--  1 eloy  staff   638B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/tortoisemerge
-rw-r--r--  1 eloy  staff   878B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/vimdiff
-rw-r--r--  1 eloy  staff    29B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/vimdiff2
-rw-r--r--  1 eloy  staff    29B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/vimdiff3
-rw-r--r--  1 eloy  staff   618B Nov 23 17:48 destroot/bundle/libexec/git-core/mergetools/xxdiff

destroot/bundle/libexec/git-core/mergetools:
total 176
-rw-r--r--  1 eloy  staff   392B Nov 23 17:48 araxis
-rw-r--r--  1 eloy  staff   401B Nov 23 17:48 bc3
-rw-r--r--  1 eloy  staff   387B Nov 23 17:48 codecompare
-rw-r--r--  1 eloy  staff   628B Nov 23 17:48 deltawalker
-rw-r--r--  1 eloy  staff   286B Nov 23 17:48 diffmerge
-rw-r--r--  1 eloy  staff   282B Nov 23 17:48 diffuse
-rw-r--r--  1 eloy  staff   340B Nov 23 17:48 ecmerge
-rw-r--r--  1 eloy  staff   415B Nov 23 17:48 emerge
-rw-r--r--  1 eloy  staff    29B Nov 23 17:48 gvimdiff
-rw-r--r--  1 eloy  staff    29B Nov 23 17:48 gvimdiff2
-rw-r--r--  1 eloy  staff    29B Nov 23 17:48 gvimdiff3
-rw-r--r--  1 eloy  staff   499B Nov 23 17:48 kdiff3
-rw-r--r--  1 eloy  staff    83B Nov 23 17:48 kompare
-rw-r--r--  1 eloy  staff   876B Nov 23 17:48 meld
-rw-r--r--  1 eloy  staff   301B Nov 23 17:48 opendiff
-rw-r--r--  1 eloy  staff   651B Nov 23 17:48 p4merge
-rw-r--r--  1 eloy  staff   224B Nov 23 17:48 tkdiff
-rw-r--r--  1 eloy  staff   638B Nov 23 17:48 tortoisemerge
-rw-r--r--  1 eloy  staff   878B Nov 23 17:48 vimdiff
-rw-r--r--  1 eloy  staff    29B Nov 23 17:48 vimdiff2
-rw-r--r--  1 eloy  staff    29B Nov 23 17:48 vimdiff3
-rw-r--r--  1 eloy  staff   618B Nov 23 17:48 xxdiff

rake bundle:build does not behave the same as running command individually

So I can't seem to get my build tools set up. If I run the command rake bundle:build I get an output like this:

CocoaPods-app   master ✘ ✹  rake bundle:build
cd workbench/pkg-config-0.28 && ./configure --enable-static --with-internal-glib --prefix '/Users/orta/spiel/mac/CocoaPods-app/destroot/dependencies'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-apple-darwin15.0.0
checking host system type... x86_64-apple-darwin15.0.0
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... /usr/bin/clang
checking whether the C compiler works... no
configure: error: in `/Users/orta/spiel/mac/CocoaPods-app/workbench/pkg-config-0.28':
configure: error: C compiler cannot create executables
See `config.log' for more details
rake aborted!
Command failed with status (77): [cd workbench/pkg-config-0.28 && ./configur...]
/Users/orta/spiel/mac/CocoaPods-app/Rakefile:128:in `block in <top (required)>'
/Users/orta/.rvm/gems/ruby-2.1.3/bin/ruby_executable_hooks:15:in `eval'
/Users/orta/.rvm/gems/ruby-2.1.3/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => bundle:build => bundle:build_tools => destroot/bundle/bin/ruby => workbench/ruby-2.2.2/libruby-static.a => destroot/dependencies/bin/pkg-config => workbench/pkg-config-0.28/pkg-config
(See full trace by running task with --trace)

but if I run the commands manually, I get:

 CocoaPods-app   master ✘ ✹  cd workbench/pkg-config
 pkg-config-0.28   master ✘ ✹  ./configure --enable-static --with-internal-glib --prefix '/Users/orta/spiel/mac/CocoaPods-app/destroot/dependencies'

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-apple-darwin15.0.0
checking host system type... x86_64-apple-darwin15.0.0
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
[...]
Eventually completes successfully.

It looks like the different lays in that when running through Rake it uses clang but in my shell it's using gcc. Any thoughts?

Integrate Sparkle framework for updating.

  • Integrate Sparkle framework.
  • Create rake task that updates the versions feed when the release task is used.
  • Create feed containing the versions in this repo’s GitHub Pages.

Warning text is too yellow

screen shot 2015-04-05 at 7 54 19 pm

[!] Unable to load a specification for the plugin /Users/orta/Downloads/CocoaPods.app/Contents/Resources/bundle/lib/ruby/gems/2.2.0/gems/cocoapods-plugins-install-0.0.1

Post-Install Hook Problems

While working on #52, I discovered that CocoaPods won’t pod install successfully. Here’s the output. Looking through the sources (I’m using CocoaPods 0.38.2), I find no Pod::Installer#libraries method. It seems that this API was removed. Unfortunately, I find that there is no immediately visible replacement. @orta Any ideas?

Improve UX of binstub installation.

  • Add a menu item to install the binstub, for if the user chose to not do so before.
  • Update the copy of the installation alert to indicate why one would install the binstub (i.e. if you wish to use CocoaPods from the Terminal). Making it clear to users that will not need it that it’s not a requirement for using the UI part of the app.
  • Update the copy of the installation alert to inform the user that they can always install the binstub at a later time using the menu item.
  • Add a “Select destination…” button to the installation alert, allowing the user to select a different path than /usr/bin.
  • Do not ask the user to install again on the next launch of the app, if they chose to not do so before.

rake bundle:build dies at `sh 'pod repo update master'`

...
RubyGems installed the following executables:
    /Users/orta/dev/mac/apps/CocoaPods-app/destroot/bundle/bin/gem

chmod +x destroot/bundle/bin/gem
pod repo update master
rake aborted!
Command failed with status (127): [pod repo update master...]
/Users/orta/dev/mac/apps/CocoaPods-app/Rakefile:57:in `install_cocoapods_version'
/Users/orta/dev/mac/apps/CocoaPods-app/Rakefile:392:in `block in <top (required)>'
Tasks: TOP => bundle:build => bundle:build_tools => destroot/bundle/bin/pod
(See full trace by running task with --trace)

Running it on it's own after works fine though, but then it might not be using the right pod command.

~/d/m/a/CocoaPods-app (master) ⏛  pod repo update master
Updating spec repo `master`
Updating 918637d..7c31019
Fast-forward
 .../1.0/ABFRealmGridController.podspec.json        |   31 +
[...]
 create mode 100644 Specs/xamoom-ios-sdk/1.3.2/xamoom-ios-sdk.podspec.json
From https://github.com/CocoaPods/Specs
   918637d..7c31019  master     -> origin/master

CocoaPods 0.39.0.beta.4 is available.
To update use: `sudo gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

This has happened on two separate computers from a new clone.

The road beyond the first simple UI release.

  • Create XPC tool that uses library-static.a to interface with the bundled CP.
  • Expose Objective-C API that uses XPC service to retrieve information from CP and/or perform actions.
  • Allow external consumers to use the XPC service (e.g. Xcode plugins).

Subversion Not Building

I was running rake bundle:build on my local copy of the repo, and the build failed while trying to configure Subversion. The exact error is concerning APR_INT64_T_FMT not being properly defined, but the real error is that the SVN configure script is apparently ignoring the --without-swig parameter passed to it. Looking through the expanded tarball, I find this file contains the code that searches for Swig. The SVN_CHECK_SWIG macro should handle --with-swig=no or --without-swig (these are synonymous when using Autoconf), but I tried both and neither one has any effect. Swig is still searched for, which should not be the case here.

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.