Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/Homebrew/brew.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
  1. Oct 10, 2014
  2. Sep 25, 2014
    • Mike McQuaid's avatar
      Generate RDoc documentation. · 05739585
      Mike McQuaid authored
      This is currently still very messy and we probably want to work out the
      best way to declare what parts of our DSL/what files are "public".
      
      Still, even if this is a WIP I'd rather get something committed sooner
      rather than later and start iterating on this as a replacement for
      `example_formula.rb` and the formula cookbook.
      
      To test:
      ```bash
      cd $(brew --prefix)/Library/Homebrew && \
        rdoc formula.rb requirement.rb utils.rb &&\
        open doc/index.html
      ```
      
      Closes Homebrew/homebrew#32470.
      05739585
  3. Aug 15, 2014
  4. Jul 08, 2014
  5. Jul 04, 2014
  6. Jul 03, 2014
    • Jack Nagel's avatar
      Move require into method to avoid circular require · 2e44ffe8
      Jack Nagel authored
      There is a nasty circular dependency here:
      
      formula.rb
        requirement.rb
          extend/ENV.rb
            extend/ENV/shared.rb
              formula.rb
      
      Probably the information that the build environment needs from formula
      should be passed in at runtime, but that seems hard and I really just
      want to be able to run the tests with warnings turned on. :/
      2e44ffe8
  7. Jul 02, 2014
  8. Jun 13, 2014
  9. May 31, 2014
  10. Apr 04, 2014
  11. Mar 06, 2014
  12. Feb 28, 2014
  13. Dec 10, 2013
  14. Aug 20, 2013
  15. Jun 27, 2013
    • Jack Nagel's avatar
      Fix some #eql? correctness issues · 10949ad7
      Jack Nagel authored
      The implementation of #eql? and #hash should ensure that if a.eql?(b),
      then a.hash == b.hash, but #eql? itself should not *depend* on #hash.
      
      For example, given
      
        class Thingy
          def eql?
            instance_of?(other.class) && hash == other.hash
          end
      
          def hash
            [name, *tags].hash
          end
        end
      
      if #hash produces a collision for different values of [name, *tags], two
      Thingy objects will appear to be eql?, even though this is not the case.
      Instead, #eql? should depend on the equality of name and tags directly.
      10949ad7
  16. Jun 25, 2013
  17. Jun 24, 2013
    • Jack Nagel's avatar
      Requirement: callers are responsible for invoking #satisfied? · 553b1a0d
      Jack Nagel authored
      This hack was necessary since requirements were not checked again
      in the forked build process, but now they are, and calling it again
      after the build environment has been set up can produce incorrect
      results. In fact, if it happens to return false the second time,
      the env modification will be skipped altogether.
      553b1a0d
  18. Jun 08, 2013
  19. Jun 05, 2013
  20. Jun 04, 2013
  21. Jun 03, 2013
  22. May 10, 2013
  23. May 07, 2013
    • Jack Nagel's avatar
      Reduce allocations in dependency construction · b3220203
      Jack Nagel authored
      By always passing around a single, unnested array rather than splatting
      and then defensively flattening and compacting things, we can avoid
      allocating a bunch of unnecessary arrays. This gives a performance boost
      of roughly 4% when enumerating 2500 formulae, and has the side effect of
      cleaning up the dependency API.
      b3220203
  24. Apr 02, 2013
    • Jack Nagel's avatar
      Requirement: env DSL is evaluated in context of self, not ENV · 1b0f0824
      Jack Nagel authored
      This was meant to support:
      
        env do |req|
          append_path 'PATH', req.some_method
          ...
        end
      
      i.e., the block was evaluated in the context of ENV. But it turned out
      to be not so useful after all, so I'm ripping it out before something
      actually depends on it.
      1b0f0824
  25. Feb 13, 2013
    • Jack Nagel's avatar
      Simplify this regexp · 3d5bda3f
      Jack Nagel authored
      3d5bda3f
    • Jack Nagel's avatar
      Establish a convention for Requirement names · 71f85300
      Jack Nagel authored
      The name attribute of requirements is used when generating options for
      the :optional and :recommended dependency tags.
      
      Unless otherwise specified, the name attribute of a Requirement will be
      populated by stripping any module prefixes from the beginning and
      "Dependency" or "Requirement" from end of the class name and downcasing
      the result.
      
      Closes Homebrew/homebrew#17759.
      71f85300
  26. Feb 08, 2013
  27. Feb 01, 2013
    • Jack Nagel's avatar
      Proper recursive expansion of requirements with filtering · 1408610b
      Jack Nagel authored
      Expand requirements recursively while applying the same optional? and
      recommended? filters that dependencies are run through. Options
      generated by requirements are now checked against the correct list of
      requirements, eliminating the temporary "best guess" logic in the
      installer.
      1408610b
    • Jack Nagel's avatar
      Create proxy classes for "partial" X11 dependencies · f4b126cc
      Jack Nagel authored
      When a formula's dependency tree contains more than one X11 dependency,
      they are de-duplicated by comparing the min_version attribute. However,
      this can result in broken dependency trees if one of the X11Dependency
      objects was actually specified as e.g. `:libpng`.
      
      In practice, this only matters when one or more of the dependencies has
      additional metadata that makes it distinct from the rest, i.e. an
      :optional or :recommended tag.
      
      To combat this, make these special, "partial" X11 dependencies instances
      of different classes so that they are not de-duped.
      
      It will still be necessary, at the time when requirements are expanded
      by the installer, to de-duplicate any remaining X11 dependencies after
      applying the optional/recommended filters in order to avoid duplicated
      modifications to the environment (as ENV.x11 is not idempotent).
      
      c.f. Homebrew/homebrew#17369.
      f4b126cc
  28. Jan 29, 2013
  29. Jan 27, 2013
Loading