Repository: conda-forge/staged-recipes

Issue:
Add falcon



Discussion:
Hi! This is the friendly automated conda-forge-linting service.

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


Resolving patch:
diff --git a/.CI/create_feedstocks.py b/.CI/create_feedstocks.py
--- a/.CI/create_feedstocks.py
+++ b/.CI/create_feedstocks.py
@@ -32,8 +32,8 @@
                'exalted', 'standout', 'smashing']
 
 
+recipe_directory_name = 'recipes'
 def list_recipes():
-    recipe_directory_name = 'recipes'
     if os.path.isdir(recipe_directory_name):
         recipes = os.listdir(recipe_directory_name)
     else:
@@ -138,7 +138,6 @@ def write_token(name, token):
     owner_info = ['--organization', 'conda-forge']
 
     print('Calculating the recipes which need to be turned into feedstocks.')
-    removed_recipes = []
     with tmp_dir('__feedstocks') as feedstocks_dir:
         feedstock_dirs = []
         for recipe_dir, name in list_recipes():
@@ -180,7 +179,7 @@ def write_token(name, token):
                 teams = {team.name: team for team in conda_forge.get_teams()}
 
         # Break the previous loop to allow the TravisCI registering to take place only once per function call.
-        # Without this, intermittent failiures to synch the TravisCI repos ensue.
+        # Without this, intermittent failures to synch the TravisCI repos ensue.
         all_maintainers = set()
         for feedstock_dir, name, recipe_dir in feedstock_dirs:
             subprocess.check_call(['conda', 'smithy', 'register-ci', '--feedstock_directory', feedstock_dir] + owner_info)
@@ -225,7 +224,6 @@ def write_token(name, token):
                     print("AN OLD MEMBER ({}) NEEDS TO BE REMOVED FROM {}".format(old_maintainer, repo_name))
 
             # Remove this recipe from the repo.
-            removed_recipes.append(name)
             if is_merged_pr:
                 subprocess.check_call(['git', 'rm', '-r', recipe_dir])
 
@@ -254,10 +252,34 @@ def write_token(name, token):
                 team.url + "/memberships/" + new_member
             )
 
+    # Update status based on the remote.
+    subprocess.check_call(['git', 'stash', '--keep-index', '--include-untracked'])
+    subprocess.check_call(['git', 'fetch'])
+    subprocess.check_call(['git', 'rebase', '--autostash'])
+    subprocess.check_call(['git', 'add', '.'])
+    try:
+        subprocess.check_call(['git', 'stash', 'pop'])
+    except subprocess.CalledProcessError:
+        # In case there was nothing to stash.
+        # Finish quietly.
+        pass
+
+    # Generate a fresh listing of recipes removed.
+    # This gets pretty ugly as we parse `git status --porcelain`.
+    #
+    # * Each line we get back is a change to a file in the recipe directory.
+    # * We narrow the list down to recipes that are staged for deletion (ignores examples).
+    # * Then we clean up the list so that it only has the recipe names.
+    removed_recipes = subprocess.check_output(['git', 'status', '--porcelain', recipe_directory_name],
+                                              universal_newlines=True)
+    removed_recipes = removed_recipes.splitlines()
+    removed_recipes = filter(lambda _: _.startswith("D "), removed_recipes)
+    removed_recipes = list(map(lambda _ : _.replace("D", "", 1).lstrip(), removed_recipes))
+    removed_recipes = list(set(map(lambda _ : os.path.basename(os.path.dirname(_)), removed_recipes)))
+
     # Commit any removed packages.
     subprocess.check_call(['git', 'status'])
     if removed_recipes:
-        subprocess.check_call(['git', 'checkout', os.environ.get('TRAVIS_BRANCH')])
         msg = ('Removed recipe{s} ({}) after converting into feedstock{s}. '
                '[ci skip]'.format(', '.join(removed_recipes),
                          s=('s' if len(removed_recipes) > 1 else '')))


Test patch:
diff --git a/recipes/cyclus/run_test.sh b/recipes/cyclus/run_test.sh
deleted file mode 100644
--- a/recipes/cyclus/run_test.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/sh
-# setup env for tests
-cd "${SRC_DIR}/tests"
-export PATH="${PREFIX}/bin:${PATH}"
-export CYCLUS_PATH="${PREFIX}/lib/cyclus"
-if [ -z "$CYCLUS_NUC_DATA" ]; then
-  export CYCLUS_NUC_DATA="${PREFIX}/share/cyclus/cyclus_nuc_data.h5"
-fi
-
-UNAME="$(uname)"
-if [ "${UNAME}" == "Darwin" ]; then
-  export DYLD_FALLBACK_LIBRARY_PATH="${PREFIX}/lib/cyclus:${PREFIX}/lib:${DYLD_FALLBACK_LIBRARY_PATH}"
-else
-  export LD_LIBRARY_PATH="${PREFIX}/lib/cyclus:${PREFIX}/lib:${LD_LIBRARY_PATH}"
-fi
-
-# check that the files exist
-test -f ${PREFIX}/bin/cyclus
-test -f ${PREFIX}/bin/cycpp.py
-test -f ${PREFIX}/share/cyclus/cyclus_default_unit_test_driver.cc
-test -f ${PREFIX}/share/cyclus/cyclus-flat.rng.in
-test -f ${PREFIX}/share/cyclus/cyclus_nuc_data.h5
-test -f ${PREFIX}/share/cyclus/cyclus.rng.in
-test -f ${PREFIX}/share/cyclus/dbtypes.json
-
-# output cyclus info
-which cyclus
-if [ "${UNAME}" == "Darwin" ]; then
-  #otool -l $(which cyclus)
-  otool -L $(which cyclus)
-fi
-${PREFIX}/bin/cyclus --version
-${PREFIX}/bin/cyclus --path
-${PREFIX}/bin/cyclus --include
-${PREFIX}/bin/cyclus --install-path
-${PREFIX}/bin/cyclus --cmake-module-path
-${PREFIX}/bin/cyclus --build-path
-${PREFIX}/bin/cyclus --rng-schema
-${PREFIX}/bin/cyclus --nuc-data
-${PREFIX}/bin/cyclus -l :agents
-${PREFIX}/bin/cyclus -a
-
-# run unit tests
-${PREFIX}/bin/cyclus_unit_tests
-
-# run integration tests
-nosetests cycpp_tests.py
-nosetests test_include_recipe.py  test_lotka_volterra.py
-nosetests test_null_sink.py  test_source_to_sink.py
-nosetests test_trivial_cycle.py test_inventories.py
-nosetests test_minimal_cycle.py
diff --git a/recipes/qscintilla2/run_test.bat b/recipes/qscintilla2/run_test.bat
new file mode 100644
--- /dev/null
+++ b/recipes/qscintilla2/run_test.bat
@@ -0,0 +1,13 @@
+@echo off
+
+setlocal EnableDelayedExpansion
+
+:: Determine Qt Major verion (4 or 5)
+for /f "tokens=4" %%i in ('%LIBRARY_BIN%\qmake -v ^| find "Qt version"') do (
+	set QT_MAJOR_VER=%%i
+	set QT_MAJOR_VER=!QT_MAJOR_VER:~0,1!
+)
+if [!QT_MAJOR_VER!] == [] Exit /B 1
+
+:: %PYTHON% -c "import PyQt!QT_MAJOR_VER!.Qsci"
+python -c "import PyQt!QT_MAJOR_VER!.Qsci"
\ No newline at end of file
diff --git a/recipes/qscintilla2/run_test.sh b/recipes/qscintilla2/run_test.sh
new file mode 100644
--- /dev/null
+++ b/recipes/qscintilla2/run_test.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# Get QT version (4 or 5)
+BIN=$PREFIX/bin
+QT_MAJOR_VER=`${BIN}/qmake -v | sed -n 's/.*Qt version \([0-9])*\).*/\1/p'`
+if [ -z "$QT_MAJOR_VER" ]; then
+	echo "Could not determine Qt version of string provided by qmake:"
+	echo `${BIN}/qmake -v`
+	echo "Aborting..."
+	exit 1
+else
+	echo "Building Qscintilla for Qt${QT_MAJOR_VER}"
+fi
+
+# Try to import Qsci from the retrieved Qt version
+# ${PYTHON} -c "import PyQt${QT_MAJOR_VER}.Qsci"
+python -c "import PyQt${QT_MAJOR_VER}.Qsci"
\ No newline at end of file