Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add snappy #193

Closed
wants to merge 15 commits into from
Closed

Add snappy #193

wants to merge 15 commits into from

Conversation

groutr
Copy link
Contributor

@groutr groutr commented Mar 23, 2016

Add Google's snappy library
https://github.com/google/snappy

@jakirkham
Copy link
Member

🎉 Thanks @groutr. This is awesome. Will take a closer look when I'm at my computer.

home: https://github.com/google/snappy
license: Other
license_file: COPYING
license_family: Other
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs maintainer.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@groutr
Copy link
Contributor Author

groutr commented Mar 23, 2016

I have a pre-generated configure script. Do we want to include that in the recipe rather than rely on autogen.sh?

@jakirkham
Copy link
Member

Phew, that feels like a lot in that last commit!

What's wrong with autogen? We also have automake and autoreconf tools here that you can use for this.

@groutr
Copy link
Contributor Author

groutr commented Mar 26, 2016

There's nothing wrong with autogen. It just seemed that the circleci builds were failing because of it.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly conda-forge-admin automated user.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/snappy) and found some lint.

Here's what I've got...

For recipes/snappy:

  • The summary item is expected in the about section.
  • The recipe must have some tests.

@groutr
Copy link
Contributor Author

groutr commented Mar 30, 2016

Do all the CI machines have autotools? If so, I'll revert the commit of all the files that autotools generates.

@jakirkham
Copy link
Member

Do all the CI machines have autotools?

Meaning autoconf, automake, m4, etc.? For UNIX systems, yes, we have these. Not for Windows though (there may be exceptions).

This reverts commit 0a08730.
@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly conda-forge-admin automated user.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/snappy) and found some lint.

Here's what I've got...

For recipes/snappy:

  • The summary item is expected in the about section.
  • The recipe must have some tests.

@jakirkham
Copy link
Member

We also have cmake if that helps.

@groutr
Copy link
Contributor Author

groutr commented Mar 30, 2016

autogen.sh fails becase:

  • aclocal is missing on circleci
  • libtoolize is missing on travis

snappy doesn't use cmake.

@ocefpaf
Copy link
Member

ocefpaf commented Mar 30, 2016

autogen.sh fails becase:

  • aclocal is missing on circleci
  • libtoolize is missing on travis

We have libtool package for OS X and Linux. That should solved it, no?

@jakirkham
Copy link
Member

Also, aclocal is part of automake, which we have. Agreeing with @ocefpaf please make these build time dependencies on UNIX only.

@groutr
Copy link
Contributor Author

groutr commented Mar 30, 2016

Oh, I expected those the come with the CI, not be dependencies. I can change the recipes.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly conda-forge-admin automated user.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/snappy) and found some lint.

Here's what I've got...

For recipes/snappy:

  • The summary item is expected in the about section.
  • The recipe must have some tests.

@jakirkham
Copy link
Member

Yeah, we are getting pretty low level here. Linux is a bare docker container with a compiler and a few X11 dependencies so that Qt can survive. Mac has brew, but we are planning on removing just about everything from it.

REM Build step
devenv "%SLN_FILE%" /Build "%SLN_CFG%|%SLN_PLAT%"
if errorlevel 1 exit 1

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drop extra newline.

@jakirkham
Copy link
Member

Think you need pkg-config too. We also have this.

build:
- msinttypes # [win]
- libtool # [unix]
- automake # [unix]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add pkg-config for Unix.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, selectors.

  • 2 spaces after package name (minimum)
  • line up indentation of these selectors.

@jakirkham
Copy link
Member

Think we're close. Couple more things noted above.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly conda-forge-admin automated user.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/snappy) and found some lint.

Here's what I've got...

For recipes/snappy:

  • The recipe must have some tests.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly conda-forge-admin automated user.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/snappy) and found some lint.

Here's what I've got...

For recipes/snappy:

  • The recipe must have some tests.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly conda-forge-admin automated user.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/snappy) and found some lint.

Here's what I've got...

For recipes/snappy:

  • The recipe must have some tests.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly conda-forge-admin automated user.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/snappy) and found some lint.

Here's what I've got...

For recipes/snappy:

  • The recipe must have some tests.

@jakirkham
Copy link
Member

As for tests, could you please just verify the relevant libraries are installed? If there happen to be executables that ship with it, checking version or help should be sufficient. This will also make the linter happy.

version: {{ version }}

source:
git_url: https://github.com/google/snappy.git
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we just download the tarball instead? Should be faster and may avoid a few extra configuration steps.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are tarballs preferred over repositories?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO, yes, for many reasons:

  • download size is (probably) smaller
  • tarballs + sha/md5 is a stricter definition of version than a git tag (tags can change to other revisions)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, they may have run autoconf and other things so it is simpler to build. With many google libraries the standard has been downloading gtest and gmock, though they may have tarballs where this is already done.

@groutr
Copy link
Contributor Author

groutr commented Apr 1, 2016

@jakirkham I dug up some old PRs and saw how they do tests. I'll get that in the next couple of commits.
Currently, I'm trying to figure out why this recipe is failing for windows.

@jakirkham
Copy link
Member

Here's an ok example for Mac and Linux tests and one for Windows. This jinja logic is probably unnecessary if snappy only has a couple libraries.

about:
home: https://github.com/google/snappy
summary: A fast compressor/decompressor
license: Other
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like BSD 3-Clause. Could we put that here? I know the data is licensed differently, but don't think we want to distribute that anyways.

Note, some of the test data is licensed under different licenses, but since they are not in the resulting binary package, the license stays BSD.
@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly conda-forge-admin automated user.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/snappy) and found it was in an excellent condition.

- test -e $PREFIX/include/snappy-stubs-public.h # [unix]
- test -e $PREFIX/lib/libsnappy.dylib # [osx]
- test -e $PREFIX/lib/libsnappy.a # [unix]
- test -e $PREFIX/lib/libsnappy.so # [linux]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good. Could you please indent the selectors in the test section so they are lined up? Also, we may want to test dll and lib for Windows.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can skip the Windows tests for now, but the other minor comments here should be addressed.

@jakirkham
Copy link
Member

Thanks for adding tests.

Looks like the Windows builds don't like the version of the solution file in some cases.

The 64-bit Python 2.7 test failure is a bit strange. Not sure what is going on there.


extra:
recipe-maintainers:
- groutr
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add me too. 😄

@jakirkham
Copy link
Member

Yeah, the one Windows case covered by that solution is passing though. It just doesn't look like we can use it elsewhere.

Looks like they might add CMake support upstream. See this PR ( google/snappy#16 ).

Given that this is building everywhere else and Windows is such a hard target at present. Let's just skip Windows and handle the other quite minor comments here. Once that's done, I would like to get this merged. Sound good everyone?

@jakirkham jakirkham mentioned this pull request Apr 27, 2016
@jakirkham
Copy link
Member

Taking this over in this PR ( #459 ) so we can clear this one.

@ocefpaf ocefpaf closed this in #459 Apr 27, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

6 participants