Releases: mihaiconstantin/parabar
Releases · mihaiconstantin/parabar
parabar v1.2.1
What's Changed
- Release
1.2.1
by @mihaiconstantin in #58
Fixed
- Update URL with status 301 in
README.md
perCRAN
checks.
Full Changelog: v1.2.0...v1.2.1
parabar v1.2.0
What's Changed
- Miscellaneous documentation fixes by @mihaiconstantin in #54
- Miscellaneous code changes by @mihaiconstantin in #55
- Update
GitHub
workflows by @mihaiconstantin in #56 - Release
1.2.0
by @mihaiconstantin in #57
Changed
- Enable
roxygen
checks forR6
documentation inDESCRIPTION
. - Update
Context
to implement theService
interface. - Update GitHub workflows.
- Fix typos and other errors in code documentation.
Full Changelog: v1.1.1...v1.2.0
parabar v1.1.1
What's Changed
- Add missing
apply
operation toREADME
by @mihaiconstantin in #40 - Fix white space indentation in
UML
diagram by @mihaiconstantin in #46 - Remove duplicated code in
UserApiConsumer
class by @mihaiconstantin in #47 - Update actions in GitHub workflows by @mihaiconstantin in #48
- Fix hanging progress bar on task errors in
ProgressTrackingContext
by @mihaiconstantin in #49 - Miscellaneous style changes by @mihaiconstantin in #50
- Remove
UML
relationships legend from design diagram by @mihaiconstantin in #51 - Release
v1.1.1
by @mihaiconstantin in #52
Added
- Add tests for progress tracking context when executed tasks throw an error. In relation to #44.
Changed
- Update action versions in GitHub workflows.
Fixed
- Fix hanging progress bar on errors in the
ProgressTrackingContext.R
class. Closes #44. - Remove duplicated lines in
UserApiConsumer
class. Closes #41. - Fix indentation in
UML
design diagram. Closes #45. - Add missing
apply
operation toREADME
documentation.
Full Changelog: v1.1.0...v1.1.1
parabar v1.1.0
What's Changed
- Add support for the
lapply
backend operation by @mihaiconstantin in #31 - Fix task decoration in
ProgressTrackingContext
by @mihaiconstantin in #33 - Miscellaneous refactoring by @mihaiconstantin in #34
- Add support for the
apply
backend operation by @mihaiconstantin in #36 - Miscellaneous style and documentation changes by @mihaiconstantin in #37
- Fix silent errors during task execution in
AsyncBackend
by @mihaiconstantin in #38 - Build: bump version to
1.1.0
by @mihaiconstantin in #39
Added
- Update implementations of
Service$apply
operation forBackend
classes to validate the providedmargin
argument before running the parallel operation. - Add helper
Helper$check_array_margins
to validate the margins provided to theService$apply
operation. - Add exception
Exception$array_margins_not_compatible
for using improper margins in theService$apply
operation. - Add exception
Exception$primitive_as_task_not_allowed
for trying to decorate primitive functions with progress tracking in theProgressTrackingContext
class. - Add helper
Helper$is_of_class
to check if an object is of a given class. - Add optional arguments to the
get_output
operation ofSyncBackend
for consistency. - Add more tests to improve coverage.
- Add implementation for
Service$lapply
andService$apply
operations for all classes that implement theService
interface. - Add
par_lapply
andpar_apply
functions to the userAPI
. These functions can be used to run tasks in parallel akin toparallel::parLapply
andparallel::parApply
, respectively. Closes #30. - Add
UserApiConsumer
R6
class that provides an opinionated wrapper around the developerAPI
of theparabar
package. All parallel operations (e.g.,par_sapply
andpar_lapply
) follow more or less the same pattern. TheUserApiConsumer
encapsulates this pattern and makes it easier to extendparabar
with new parallel functions (e.g.,par_apply
) while avoiding code duplication. TheUserApiConsumer
class can also be used as a standalone class for parallel operations, however, its primary purpose is to be used by the parallel task execution functions in the userAPI
.
Changed
- Force early evaluation for the
x
argument of task execution functions inProgressTrackingContext
class. - Update the log file for progress tracking to include
parabar
in the file name. - Disable warnings for
file.create
inProgressTrackingContext
class. This warning is superfluous since the code handles creation failures. - Refactor test helpers to avoid code duplication.
- Update
par_sapply
to use theUserApiConsumer
class. - Update the developer
API
R6
classes to implement thelapply
parallel operation.
Fixed
- Ensure task execution errors are propagated to the main session in
AsyncBackend
. Closes #35. - Fixed the rendering of
CC BY 4.0
license icons inREADME.md
for the package website. - Update
.decorate
method ofProgressTrackingContext
to be more flexible. More specifically, the method will now throw when primitive functions are provided for decoration. The method can now handle both inline functions (i.e.,function(x) x
) and functions that have a body defined in terms of compound expressions (i.e.,function(x) { x }
). Closes #32. - Fix the
export
operation in theSyncBackend
andContext
classes to fall back to the parent environment if the argumentenvironment
is not provided.
Full Changelog: v1.0.3...v1.1.0
parabar v1.0.3
parabar v1.0.2
parabar v1.0.1
parabar v1.0.0
What's Changed
- Update
UML
diagram by @mihaiconstantin in #18 - Add
progress_log_path
option by @mihaiconstantin in #20 - Refactoring and minor fixes by @mihaiconstantin in #21
- Add comparison vignette for
parabar
andpbapply
by @mihaiconstantin in #23 - Improve content for comparison vignette by @mihaiconstantin in #24
- Add tests for main classes by @mihaiconstantin in #25
- Add
CI
workflow for code coverage viacodecov
by @mihaiconstantin in #26 - Add
CC BY 4.0
license to documentation content by @mihaiconstantin in #27
Added
- Add
CC BY 4.0
license for package documentation, vignettes, and website content. - Add code coverage
GitHub
workflow viacodecov
and badge inREADME
. - Add tests for end-user API and developer API.
- Add vignette
comparison.Rmd
to compareparabar
to thepbapply
package, and provide rough benchmarks. Thecomparison.Rmd
vignette is locally build from thecomparison.Rmd.orig
file (i.e., see this resource for more information). - Add active biding
Options$progress_log_path
to handle generation of temporary files for tracking the execution progress of tasks ran in parallel. Using a custom path (e.g., for debugging) is also possible by setting this active binding to a desired path.
Changed
- Refactor
Specification
for testing purposes. - Replace
\dontrun{}
statements in examples withtry()
calls. - Update example for
Options
class to feature theprogress_log_path
active binding. - Update progress logging injection approach in
.decorate
method ofProgressTrackingContext
to usebquote
instead ofsubstitute
. - Breaking. Rename class
ProgressDecorator
toProgressTrackingContext
to be more consistent with the idea of backends that run in contexts. - Add
...
optional arguments to signature ofget_output
method inService
interface. - Update private method
.make_log
ofProgressDecorator
to use theprogress_log_path
option. - Update
UML
diagram to include missing classes and changed methods. Also updated the corresponding diagram figure in the package documentation.
Fixed
- Update
Specification
to prevent incompatible cluster types (e.g.,FORK
) onWindows
platforms. For such cases, a warning is issues and the cluster type defaults toPSOCK
. - Ensure
make_logo
can be ran on all platforms.
Full Changelog: v0.10.2...v1.0.0
parabar v0.10.2
What's Changed
- Update
README
withCRAN
installation instructions by @mihaiconstantin in #16 - Update
.Rbuildignore
expressions by @mihaiconstantin in #17
Changed
- Update
README
to addCRAN
installation instructions and new badges.
Fixed
- Corrected expression for all files and folders in `.Rbuildignore.
Full Changelog: v0.10.1...v0.10.2
parabar v0.10.1
What's Changed
- Changes to satisfy
CRAN
requests by @mihaiconstantin in #15
Changed
- Initially removed
\dontrun{}
frommake_logo
function examples as perCRAN
request in commit87678fe
. However, this results in the examples failing theR-CMD-check
workflow. Reverted the change in commita9d11ac
. - Update version for constant
LOGO
fromv1.x.x
tov0.x.x
.
Fixed
- Add missing environment in examples for
SyncBackend
class.
Full Changelog: v0.10.0...v0.10.1