B.Tech, Computer Sc. And Engineering, NIT Durgapur
Image for post
Image for post

Recently, I was trying to play with LibcephFS and I wasn’t able to find a comprehensive tutorial to get me started experimenting with CephFS real quick. So, I had to learn the API the hard way by looking into different articles dealing with the FUSE-based client and the LibcephFS Python SDK’s source code. But, since that’s time-consuming, I will show you with an example application on how to get started with LibcephFS smoothly in almost no time.


Image for post
Image for post

TL;DR. In this article, I will be taking you through how you can quickly start experimenting with Ceph, from building and deploying Ceph to running experiments and benchmarks in a reproducible manner leveraging the Popper workflow execution engine. This project was done as a part of the IRIS-HEP fellowship for Summer 2020 in collaboration with CROSS, UCSC. The code for this project can be found here.

The Problem and Our Solution

If you are someone getting started in experimenting with Ceph, it can be a bit overwhelming for you as there are a lot of steps that you need to execute and get right before you can run actual experiments and get results. …


Image for post
Image for post
Photo by Kai Wenzel on Unsplash

Here I will give you a sneak peek into my entire GSoC experience from beginning to end and mention the key takeaways from that.


Image for post
Image for post

In this article, I will be talking about my contributions to the Popper 2.x project during the Google Summer Of Code 2019 program. Popper is an experimentation protocol for organizing an academic article’s artifacts following a DevOps approach. The Popper 1.x CLI tool was migrated to specify pipelines in the form of workflows and actions which marked the beginning of the Popper 2.0 project. My work included extending and adding various features to the Popper 2.x CLI tool. …


Image for post
Image for post

Codecov is a tool that is used to measure the test coverage of your codebase. It generally calculates the coverage ratio by examining which lines of code were executed while running the unit tests.

So, how to integrate it into a python project that would use Travis as its CI service? This is how I did it. I had a project structure something similar to what is shown below.

project_root_folder
|-------- module_folder
| |----- __init__.py
| |----- module.py
|-------- test
|----- __init__.py
|----- test_module.py

I was using the test discovery feature to run all the tests automatically at once. …


Image for post
Image for post

UPDATE: This blog post is outdated, support for Github Actions syntax in Popper has been deprecated. Popper now uses its own YAML syntax for specifying workflows. Read more in the official documentation.

With the release of Popper 2.3.0, we are happy to bring to you a searchable catalogue of prebuilt actions that keeps growing. Now you can easily search for different actions built by developers around the globe from within popper.

Note: This feature requires Popper 2.3.0+. If you are not familier with Popper, check out the getting started guide.

What am i talking about?

Let’s say you are building a Github Action workflow using Popper that uses ansible, so you might want to search actions based on ansible. Popper makes this easy for you with its search subcommand. …


Update: Support for Github Actions syntax in Popper has been deprecated. Popper now uses its own YAML syntax for specifying workflows. Read more in the official documentation.

Image for post
Image for post

With the release of version 2.1.0, we are glad to announce that Popper now fully supports Singularity Actions in its workflows besides Docker Actions. Popper automatically recognizes the type of actions defined in the workflow and executes them. Quite of a theory right? Come, let’s dive in.

Note: This feature requires Singularity 2.6+. Check out the installation instructions from here.

Getting Started

You can use Singularity Actions in Popper in the following ways :

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store