Skip to content
Permalink
Browse files

0.7.2 release prep (#820)

* Updating README and Changelog. Bumping version to 0.7.2-a0 for testing

* MessageType is imported in DFK even when monitoring is not used, breaks without sqlalchemy

* Updating wording for exception

* Moving imports to __init__ to better capture errors from missing packages

* Moving MessageType to separate file for import

* Cleaner imports with error handling for import fail

* Updating dflow to use new message_type package

* Bumping from alpha to serious. v0.7.2

* Flake8 fixes
  • Loading branch information...
yadudoc committed Mar 14, 2019
1 parent bc54c30 commit b90014322da1bcd9a281e3f797ce409e24e85705
@@ -3,7 +3,7 @@ Parsl - Parallel Scripting Library
|licence| |build-status| |docs|

Parsl is a parallel scripting library that enables easy parallelism and workflow design.
The latest version available on PyPi is v0.7.0.
The latest version available on PyPi is v0.7.2.

.. |licence| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
:target: https://github.com/Parsl/parsl/blob/master/LICENSE
@@ -1,6 +1,21 @@
Changelog
=========

Parsl 0.7.2
-----------

Released on Mar 14th, 2019

New Functionality
^^^^^^^^^^^^^^^^^

* `Monitoring`: Support for reporting monitoring data to a local sqlite database is now available.
* Parsl is switching to an opt-in model for anonymous usage tracking. Read more here: :ref:`label-usage-tracking`.
* `bash_app` now supports specification of write modes for `stdout` and `stderr`.
* Persistent volume support added to `Kubernetes` provider.
* Scaling recommendations from study on Bluewaters is now available in the userguide.


Parsl 0.7.1
-----------

@@ -30,8 +30,8 @@
from parsl.dataflow.states import States, FINAL_STATES, FINAL_FAILURE_STATES
from parsl.dataflow.usage_tracking.usage import UsageTracker
from parsl.utils import get_version
from parsl.monitoring.db_manager import MessageType

from parsl.monitoring.message_type import MessageType

logger = logging.getLogger(__name__)

@@ -3,7 +3,6 @@
import queue
import os
import time
from enum import Enum

from parsl.dataflow.states import States
from parsl.providers.error import OptionalModuleMissing
@@ -30,26 +29,20 @@
STATUS = 'status' # Status table includes task status
RESOURCE = 'resource' # Resource table includes task resource utilization


class MessageType(Enum):

# Reports any task related info such as launch, completion etc.
TASK_INFO = 0

# Reports of resource utilization on a per-task basis
RESOURCE_INFO = 1

# Top level workflow information
WORKFLOW_INFO = 2
from parsl.monitoring.message_type import MessageType


class Database(object):

if not _sqlalchemy_enabled:
raise OptionalModuleMissing(['sqlalchemy'],
"Default database logging requires the sqlalchemy library.")
("Default database logging requires the sqlalchemy library."
" Enable monitoring support with: pip install parsl[monitoring]"))
if not _sqlalchemy_utils_enabled:
raise OptionalModuleMissing(['sqlalchemy_utils'],
"Default database logging requires the sqlalchemy_utils library.")
("Default database logging requires the sqlalchemy_utils library."
" Enable monitoring support with: pip install parsl[monitoring]"))

Base = declarative_base()

def __init__(self,
@@ -0,0 +1,13 @@
from enum import Enum


class MessageType(Enum):

# Reports any task related info such as launch, completion etc.
TASK_INFO = 0

# Reports of resource utilization on a per-task basis
RESOURCE_INFO = 1

# Top level workflow information
WORKFLOW_INFO = 2
@@ -8,10 +8,16 @@

import queue
from multiprocessing import Process, Queue

from parsl.utils import RepresentationMixin
from parsl.monitoring.db_manager import dbm_starter
from parsl.monitoring.db_manager import MessageType

from parsl.monitoring.message_type import MessageType

try:
from parsl.monitoring.db_manager import dbm_starter
except Exception as e:
_db_manager_excepts = e
else:
_db_manager_excepts = None


def start_file_logger(filename, name='monitoring', level=logging.DEBUG, format_string=None):
@@ -134,6 +140,12 @@ def __init__(self,
"""
Update docs here.
"""
self.logger = None
self._dfk_channel = None

if _db_manager_excepts:
raise(_db_manager_excepts)

self.client_address = client_address
self.client_port_range = client_port_range

@@ -151,9 +163,6 @@ def __init__(self,
self.resource_monitoring_enabled = resource_monitoring_enabled
self.resource_monitoring_interval = resource_monitoring_interval

self._dfk_channel = None
self.logger = None

def start(self):

if self.logdir is None:
@@ -3,4 +3,4 @@
<Major>.<Minor>.<maintenance>[alpha/beta/..]
Alphas will be numbered like this -> 0.4.0a0
"""
VERSION = '0.7.1'
VERSION = '0.7.2'

0 comments on commit b900143

Please sign in to comment.
You can’t perform that action at this time.