# bug(1854406): Addressing installation problems affecting consumers of this repo. (#277)

* updated setup.py and explitly specifying dependencies versions + removed user_scm_version flag

* Tweaked CI configuration to comment out any potential publishing steps

* trying to fix CI build

* fixing linting error

* Tweaked CI configuration to comment out any potential publishing steps
This commit is contained in:
kik-kik 2023-11-09 11:04:15 +01:00 коммит произвёл GitHub
Родитель 4ebd638bea
Коммит f579e95fd9
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 133 добавлений и 100 удалений

Просмотреть файл

@ -1,3 +1,10 @@
#######
## 2023-11-07 update @kik:
## Changes to the repo were needed to address bug[1854406]
# However, we do not want to publish any artifacts anywhere
# to avoid this CI steps with potential to publish artifacts were commented out.
###
####################
# CircleCI configuration reference:
# https://circleci.com/docs/2.0/configuration-reference
@ -25,26 +32,27 @@ test_settings: &test_settings
command: |
# python-snappy compression relies on C bindings to libsnappy-dev.
# pyspark needs to run Java, so we install openjdk.
echo "deb [check-valid-until=no] http://cdn-fastly.deb.debian.org/debian jessie main" > /etc/apt/sources.list.d/jessie.list
echo "deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
sed -i 's/^/#/' /etc/apt/sources.list
echo "deb [check-valid-until=no] http://archive.debian.org/debian-archive/debian jessie main" >> /etc/apt/sources.list.d/jessie.list
echo "deb [check-valid-until=no] http://archive.debian.org/debian-archive/debian jessie-backports main" >> /etc/apt/sources.list.d/jessie-backports.list
# sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
apt-get -o Acquire::Check-Valid-Until=false update
apt-get install -t jessie-backports -y libsnappy-dev openjdk-8-jre-headless
apt-get install --force-yes -t jessie-backports -y libsnappy-dev openjdk-8-jre-headless
/usr/sbin/update-java-alternatives -s java-1.8.0-openjdk-amd64
- run: &run_tox_environment_matching_circleci_job_name
name: Run tox job
command: |
pip install tox
pip install tox==3.24.5
tox -e $CIRCLE_JOB
- run:
name: Submit code coverage data
command: |
# Skip this step if running via the CircleCI local CLI.
[ -z "$CIRCLE_BUILD_NUM" ] && exit 0
# Activate the virtualenv so that codecov can find the 'coverage' executable.
source .tox/$CIRCLE_JOB/bin/activate
# Upload to codecov and flag (-F) with the name of the job.
bash <(curl -s https://codecov.io/bash) -F $CIRCLE_JOB
# - run:
# name: Submit code coverage data
# command: |
# # Skip this step if running via the CircleCI local CLI.
# [ -z "$CIRCLE_BUILD_NUM" ] && exit 0
# # Activate the virtualenv so that codecov can find the 'coverage' executable.
# source .tox/$CIRCLE_JOB/bin/activate
# # Upload to codecov and flag (-F) with the name of the job.
# bash <(curl -s https://codecov.io/bash) -F $CIRCLE_JOB
@ -73,44 +81,44 @@ jobs:
docker:
- image: python:3.7-jessie
docs: &docs_settings
docker:
- image: python:3.6-jessie
steps:
- checkout
- run:
<<: *install_packages
- run:
<<: *run_tox_environment_matching_circleci_job_name
- persist_to_workspace:
root: docs/_build
paths: html
# docs: &docs_settings
# docker:
# - image: python:3.6-jessie
# steps:
# - checkout
# - run:
# <<: *install_packages
# - run:
# <<: *run_tox_environment_matching_circleci_job_name
# - persist_to_workspace:
# root: docs/_build
# paths: html
docs-deploy:
docker:
- image: node:8.10.0
steps:
- checkout
- attach_workspace:
at: docs/_build
- run:
name: Disable jekyll builds
command: touch docs/_build/html/.nojekyll
# Needed for write access to the GitHub repository;
# see https://circleci.com/docs/2.0/gh-bb-integration/#deployment-keys-and-user-keys
- add_ssh_keys:
fingerprints:
- "bb:e1:fa:08:e2:ff:a4:ed:f9:b0:64:c0:e6:07:0d:08"
# The gh-pages npm package looks to be the most widely used utility for
# pushing a directory to a git branch;
# see https://www.npmjs.com/package/gh-pages
- run:
name: Deploy docs to gh-pages branch
command: |
git config user.email "fx-data-platform@mozilla.com"
git config user.name "CircleCI docs-deploy job"
npm install -g --silent gh-pages@2.0.1
gh-pages --dotfiles --message "[skip ci] Updates" --dist docs/_build/html
# docs-deploy:
# docker:
# - image: node:8.10.0
# steps:
# - checkout
# - attach_workspace:
# at: docs/_build
# - run:
# name: Disable jekyll builds
# command: touch docs/_build/html/.nojekyll
# # Needed for write access to the GitHub repository;
# # see https://circleci.com/docs/2.0/gh-bb-integration/#deployment-keys-and-user-keys
# - add_ssh_keys:
# fingerprints:
# - "bb:e1:fa:08:e2:ff:a4:ed:f9:b0:64:c0:e6:07:0d:08"
# # The gh-pages npm package looks to be the most widely used utility for
# # pushing a directory to a git branch;
# # see https://www.npmjs.com/package/gh-pages
# - run:
# name: Deploy docs to gh-pages branch
# command: |
# git config user.email "fx-data-platform@mozilla.com"
# git config user.name "CircleCI docs-deploy job"
# npm install -g --silent gh-pages@2.0.1
# gh-pages --dotfiles --message "[skip ci] Updates" --dist docs/_build/html
lint:
docker:
@ -120,32 +128,32 @@ jobs:
- run:
name: Run tests
command: |
pip install flake8
pip install flake8==3.9.1
flake8 moztelemetry/ tests/
# Only runs when a tag starting with 'v' is place on the repository;
# see the workflows section below for trigger logic.
deploy:
docker:
- image: python:3.6
steps:
- checkout
- run:
name: Install deployment tools
command: |
pip install --upgrade setuptools wheel twine
- run:
name: Create the distribution files
command: |
python setup.py sdist bdist_wheel
- run:
name: Upload to PyPI
command: |
# Relies on the TWINE_USERNAME and TWINE_PASSWORD environment variables configured at:
# https://circleci.com/gh/mozilla/python_moztelemetry/edit#env-vars
# For more on twine, see:
# https://twine.readthedocs.io/en/latest/
twine upload dist/*
# deploy:
# docker:
# - image: python:3.6
# steps:
# - checkout
# - run:
# name: Install deployment tools
# command: |
# pip install --upgrade setuptools wheel twine
# - run:
# name: Create the distribution files
# command: |
# python setup.py sdist bdist_wheel
# - run:
# name: Upload to PyPI
# command: |
# # Relies on the TWINE_USERNAME and TWINE_PASSWORD environment variables configured at:
# # https://circleci.com/gh/mozilla/python_moztelemetry/edit#env-vars
# # For more on twine, see:
# # https://twine.readthedocs.io/en/latest/
# twine upload dist/*
@ -159,21 +167,21 @@ workflows:
jobs:
- py35
- py36
- docs
# - docs
- lint
- docs-deploy:
requires:
- docs
filters:
branches:
only: master
# - docs-deploy:
# requires:
# - docs
# filters:
# branches:
# only: master
tagged-deploy:
jobs:
- deploy:
filters:
branches:
# Ignore all branches; this workflow should only run for tags.
ignore: /.*/
tags:
only: /^v.*/
# tagged-deploy:
# jobs:
# - deploy:
# filters:
# branches:
# # Ignore all branches; this workflow should only run for tags.
# ignore: /.*/
# tags:
# only: /^v.*/

Просмотреть файл

@ -319,8 +319,9 @@ def load_scalars(filename, strict_type_checks=True):
# Make sure that the category has at least one probe in it.
if not category or len(category) == 0:
raise ParserError('Category "{}" must have at least one probe in it' +
'.\nSee: {}'.format(category_name, BASE_DOC_URL))
raise ParserError(
'''Category "{}" must have at least one probe in it.' \
See: {}'''.format(category_name, BASE_DOC_URL))
for probe_name in category:
# We found a scalar type. Go ahead and parse it.

Просмотреть файл

@ -6,24 +6,48 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from setuptools import setup, find_packages
tests_require = ['mock', 'pytest-timeout', 'moto', 'responses',
'scipy', 'pyspark', 'pytest', 'pytest-cov']
tests_require = [
'mock>=3.0.4,<=5.0.0',
'pytest-timeout>=1.3.4,<=2.0.2',
'moto>=2.2.15,<=2.2.20',
'responses>=0.16.0,<=0.18.0',
'scipy>=1.3.3,<=1.9.2',
'pyspark>=2.2.3,<=3.2.4',
'pytest>=5.3.1,<=6.2.4',
'pytest-cov>2.6.0,<=2.8.0',
'flake8>3.8.3,<=3.9.1',
]
setup(
name='python_moztelemetry',
use_scm_version=True,
# use_scm_version=True,
author='Roberto Agostino Vitillo',
author_email='rvitillo@mozilla.com',
description='Spark bindings for Mozilla Telemetry',
url='https://github.com/mozilla/python_moztelemetry',
packages=find_packages(),
package_dir={'moztelemetry': 'moztelemetry'},
install_requires=['boto', 'boto3', 'ujson', 'requests',
'protobuf>=3.6.0', 'six',
'expiringdict', "functools32;python_version<'3'", 'py4j',
'pandas>=0.19.2', 'numpy>=1.8.2',
'PyYAML', 'python-snappy'],
setup_requires=['pytest-runner', 'setuptools_scm'],
install_requires=[
'boto<=2.49.0',
'boto3<=1.28.57',
'ujson>=3.2.0,<=5.5.0',
'requests>2.24.0,<=2.31.0',
'protobuf>=3.17.3,<=3.19.6',
'six==1.12',
'expiringdict==1.2.2',
"functools32;python_version<'3'",
'py4j>=0.10.9.4,<=0.10.9.7',
'pandas>=0.19.2',
'numpy>=1.18.5,<=1.21.6',
'PyYAML==5.1.2',
'python-snappy>=0.5.4,<=0.6.0',
'urllib3<1.27,>=1.25.4',
'typed-ast<1.5,>=1.4.0'
],
setup_requires=[
'pytest-runner>=5.2,<=5.3.2',
'setuptools_scm>=4.1.2,<=7.0.5'
],
extras_require={
'testing': tests_require,
},