Kaynağa Gözat

Merge pull request #307 from vmarkovtsev/master

Docker + Action-friendly `-m all`
Vadim Markovtsev 5 yıl önce
ebeveyn
işleme
9353ecc3a4
4 değiştirilmiş dosya ile 29 ekleme ve 28 silme
  1. 1 0
      .gitignore
  2. 19 22
      Dockerfile
  3. 8 5
      python/labours/labours.py
  4. 1 1
      python/setup.py

+ 1 - 0
.gitignore

@@ -7,6 +7,7 @@ coverage.txt
 protoc-gen-gogo
 protoc-gen-gogo
 hercules
 hercules
 python/dist
 python/dist
+python/build
 
 
 **/*.egg-info
 **/*.egg-info
 **/__pycache__
 **/__pycache__

+ 19 - 22
Dockerfile

@@ -1,24 +1,23 @@
-FROM ubuntu:18.04
-
+FROM golang:1.13 AS builder
 ENV PROTOBUF_VERSION 3.5.1
 ENV PROTOBUF_VERSION 3.5.1
-ENV GO111MODULE on
-
 COPY . /root/src
 COPY . /root/src
 RUN apt-get update && \
 RUN apt-get update && \
-    apt-get install -y --no-install-suggests --no-install-recommends software-properties-common && \
-    add-apt-repository -y ppa:gophers/archive && \
-    apt-get update && \
-    apt-get upgrade -y && \
-    apt-get install -y --no-install-suggests --no-install-recommends locales golang-1.11-go python3 python3-dev python3-distutils libyaml-dev libyaml-0-2 libxml2-dev libxml2 curl git make unzip g++ && \
+    apt-get install -y unzip make && \
     curl -SLo protoc.zip https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-linux-x86_64.zip && \
     curl -SLo protoc.zip https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-linux-x86_64.zip && \
-    unzip -d /usr/local protoc.zip && rm protoc.zip && \
-    locale-gen en_US.UTF-8 && \
-    export PATH=/usr/lib/go-1.11/bin:/root/bin:$PATH && \
+    unzip -d /usr/local protoc.zip && \
+    rm protoc.zip && \
     cd /root/src && \
     cd /root/src && \
     curl -L "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-$(go env GOOS)-x86_64-1.7.0.tar.gz" | tar -C /usr/local -xz && \
     curl -L "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-$(go env GOOS)-x86_64-1.7.0.tar.gz" | tar -C /usr/local -xz && \
-    make && \
-    rm /usr/local/bin/protoc /usr/local/readme.txt && rm -rf /usr/local/include/google && \
-    mv hercules /usr/local/bin && \
+    make
+
+FROM ubuntu:18.04
+COPY --from=builder /root/src/hercules /usr/local/bin
+COPY python /root/src
+ENV LC_ALL en_US.UTF-8
+RUN apt-get update && \
+    apt-get upgrade -y  && \
+    apt-get install -y --no-install-suggests --no-install-recommends locales ca-certificates python3 python3-dev python3-distutils libyaml-dev libyaml-0-2 libxml2-dev libxml2 curl git g++ && \
+    locale-gen en_US.UTF-8 && \
     echo '#!/bin/bash\n\
     echo '#!/bin/bash\n\
 \n\
 \n\
 echo\n\
 echo\n\
@@ -27,18 +26,16 @@ echo\n\' > /browser && \
     chmod +x /browser && \
     chmod +x /browser && \
     curl https://bootstrap.pypa.io/get-pip.py | python3 - pip==18.1 && \
     curl https://bootstrap.pypa.io/get-pip.py | python3 - pip==18.1 && \
     pip3 install --no-cache-dir --no-build-isolation cython && \
     pip3 install --no-cache-dir --no-build-isolation cython && \
-    sed -i 's/parser.add_argument("--backend",/parser.add_argument("--backend", default="Agg",/' /root/src/python/labours/labours.py && \
-    pip3 install --no-cache-dir /root/src/python && \
+    sed -i 's/parser.add_argument("--backend",/parser.add_argument("--backend", default="Agg",/' /root/src/labours/labours.py && \
+    pip3 install --no-cache-dir /root/src && \
     pip3 install --no-cache-dir "tensorflow<2.0" && \
     pip3 install --no-cache-dir "tensorflow<2.0" && \
-    rm -rf /root/* && \
-    apt-get remove -y software-properties-common golang-1.11-go python3-dev libyaml-dev libxml2-dev curl git make unzip g++ && \
-    apt-get remove -qy *-doc *-man && \
-    rm -rf /usr/share/doc /usr/share/man && \
+    rm -rf /root/src && \
+    apt-get remove -y python3-dev libyaml-dev libxml2-dev curl git g++ && \
     apt-get autoremove -y && \
     apt-get autoremove -y && \
+    rm -rf /usr/share/doc /usr/share/man && \
     rm -rf /var/lib/apt/lists/* && \
     rm -rf /var/lib/apt/lists/* && \
     apt-get clean
     apt-get clean
 
 
 EXPOSE 8000
 EXPOSE 8000
 ENV BROWSER /browser
 ENV BROWSER /browser
-ENV LC_ALL en_US.UTF-8
 ENV COUPLES_SERVER_TIME 7200
 ENV COUPLES_SERVER_TIME 7200

+ 8 - 5
python/labours/labours.py

@@ -1812,8 +1812,11 @@ def main():
             matrix = numpy.triu(matrix) + numpy.tril(matrix).T
             matrix = numpy.triu(matrix) + numpy.tril(matrix).T
             matrix = matrix + matrix.T
             matrix = matrix + matrix.T
             matrix = csr_matrix(matrix)
             matrix = csr_matrix(matrix)
-            write_embeddings("overwrites", args.output, not args.disable_projector,
-                             *train_embeddings(people, matrix, tmpdir=args.tmpdir))
+            try:
+                write_embeddings("overwrites", args.output, not args.disable_projector,
+                                 *train_embeddings(people, matrix, tmpdir=args.tmpdir))
+            except AttributeError as e:
+                print("Training the embeddings is not possible: %s: %s", type(e).__name__, e)
         except KeyError:
         except KeyError:
             print("overwrites_matrix: " + burndown_people_warning)
             print("overwrites_matrix: " + burndown_people_warning)
 
 
@@ -1946,15 +1949,15 @@ def main():
     except KeyError:
     except KeyError:
         assert args.mode == "all"
         assert args.mode == "all"
         project_burndown()
         project_burndown()
-        files_burndown()
-        people_burndown()
+        # files_burndown()
+        # people_burndown()
         overwrites_matrix()
         overwrites_matrix()
         ownership_burndown()
         ownership_burndown()
         couples_files()
         couples_files()
         couples_people()
         couples_people()
         couples_shotness()
         couples_shotness()
         shotness()
         shotness()
-        sentiment()
+        # sentiment()
         devs()
         devs()
         devs_efforts()
         devs_efforts()
         # devs_parallel()
         # devs_parallel()

+ 1 - 1
python/setup.py

@@ -15,7 +15,7 @@ setup(
     description="Python companion for github.com/src-d/hercules to visualize the results.",
     description="Python companion for github.com/src-d/hercules to visualize the results.",
     long_description=long_description,
     long_description=long_description,
     long_description_content_type="text/markdown",
     long_description_content_type="text/markdown",
-    version="10.4.0",
+    version="10.4.1",
     license="Apache-2.0",
     license="Apache-2.0",
     author="source{d}",
     author="source{d}",
     author_email="machine-learning@sourced.tech",
     author_email="machine-learning@sourced.tech",