osl-incubator / makim

Make Improved
https://osl-incubator.github.io/makim/
BSD 3-Clause "New" or "Revised" License
8 stars 10 forks source link

OSL Internship 2024-01 Ideas #74

Closed xmnlab closed 7 months ago

xmnlab commented 8 months ago

Project Idea 1: Adding Windows Support for Makim

Abstract

Makim is a powerful and versatile automation tool used widely in software development for task orchestration and workflow management. However, one significant limitation has been its lack of native support for Windows, a platform frequently used by developers. This project proposal aims to bridge this gap by enhancing Makim's compatibility with Windows environments.

Currently, Makim relies on the sh library, which is not fully compatible with Windows. The proposed project seeks to abstract the usage of sh within Makim and introduce an alternative approach that seamlessly integrates with Windows systems. Two promising alternatives, subprocess and plumbum, will be explored for this purpose.

The primary objectives of this project are as follows:

  1. Windows Compatibility: Implement a platform detection mechanism within Makim to identify when it's running on Windows. When running on Windows, the tool should automatically switch to using the Windows-compatible alternative (e.g., subprocess or plumbum) for executing commands.

  2. Testing and Evaluation: Thoroughly test the compatibility and performance of the chosen alternative(s) on both Windows and Unix-like systems. Benchmarking will be conducted to determine if the alternative(s) offer advantages over the current sh implementation.

  3. Documentation: Update Makim's documentation to reflect the new Windows compatibility features and provide clear guidelines for users on how to utilize the tool effectively on Windows platforms.

  4. Community Engagement: Encourage community involvement by seeking feedback and contributions from users and developers, especially those working in Windows-centric environments. Create blog posts.

This project presents an exciting opportunity to make Makim more accessible to a broader audience of developers, including those working in Windows-based environments. By addressing this limitation, we aim to enhance the usability and adoption of Makim, further solidifying its position as a valuable automation tool in the software development ecosystem.

License

BSD 3 Clause: https://github.com/osl-incubator/makim/blob/main/LICENSE

Code of Conduct

https://github.com/osl-incubator/makim/blob/main/CODE_OF_CONDUCT.md

Current State

Current, Makim doesn't support windows, because it relays on the library sh that doesn't work on windows.

Tasks

Expected Outcomes

Details

References

xmnlab commented 8 months ago

Project Idea 2: Adding Pipeline Support to Makim and Change from dependencies to hooks

Abstract

Makim is a versatile and extensible automation tool designed to simplify complex workflows and tasks in software development. While it excels at managing individual targets, it currently lacks native support for defining and executing pipelines, a critical feature for orchestrating sequences of tasks efficiently. This proposal aims to extend Makim's capabilities by introducing support for defining, running, and visualizing pipelines within Makim configuration files.

The core objectives of this project are as follows:

  1. Change from dependencies to hooks: Instead of dependencies that just define pre-run targets, hooks would allow pre-run (setup) and post-run (teardown).

  2. Pipeline Definition: Extend Makim configuration file (YAML format) to include a dedicated section for defining pipelines. Pipelines will consist of a sequence of steps, where each step can be associated with any existing Makim target.

  3. Pipeline Execution: Implement a pipeline execution mechanism within Makim, allowing users to run defined pipelines using a simple command-line interface. Pipelines should support both linear and branching flows, enabling complex task orchestration.

  4. Pipeline Visualization: Integrate a graph visualization tool, such as asciinet, to allow users to view the structure and dependencies of defined pipelines. This feature will enhance transparency and aid in debugging complex workflows.

  5. Documentation: Update Makim's documentation to include comprehensive guidance on defining and executing pipelines. Provide examples and best practices for creating efficient and maintainable pipeline configurations.

License

BSD 3 Clause: https://github.com/osl-incubator/makim/blob/main/LICENSE

Code of Conduct

https://github.com/osl-incubator/makim/blob/main/CODE_OF_CONDUCT.md

Current State

Makim is very well structured in order to allow the inclusion of the pipelines support.

Tasks

Expected Outcomes

Details

References

Tyagiquamar commented 8 months ago

@xmnlab Dear Sir, I am writing to express my keen interest in the Documentation and Coding project for OSL, as advertised on OSL internship 2024. With my solid foundation in Python, and frontend, and a willingness to delve into other necessary, I am confident that I can make significant contributions to expanding the available documentation and enhancing user experience. As a passionate software developer with a demonstrated track record in designing, developing, and implementing technical solutions, I am adept at grasping new technologies and applying them effectively. I am pursuing a Bachelor of Technology in Computer Science and Engineering, which has equipped me with a comprehensive understanding of programming principles and best practices. My recent open source internship (LFX Mentorship) at Cloudforet, LFX, has been instrumental in honing my skills in coding, integration, troubleshooting, and deployment. I actively contributed to various open-source repositories, showcasing my ability to collaborate effectively in a team environment. Additionally, my experience at DesinQna involved designing responsive web pages, implementing robust user authentication, and integrating security measures—highlighting my versatility in web development. I am particularly intrigued by this project's potential to make Makim's resources more accessible to a wider audience. I am eager to learn the intricacies of Yaml and Makim and engage in the conversion process, ensuring the quality and accuracy of the documentation. My experience with Python, scripting, and frontend will facilitate my understanding of conversion scripts and enable me to contribute meaningfully to their development. I am confident in my ability to meet the project's expectations and deliver the following:

  1. Rapidly acquire proficiency in Makim development.
  2. Effectively utilize existing Python scripts for documentation conversion
  3. Create Makim files for newer versions and additional languages/systems
  4. Meticulously upload new documentation files to Makim and OSL. I am highly motivated to contribute to this project and am eager to start work whenever you get a chance. I am available for an interview at your earliest convenience and look forward to discussing my qualifications in greater depth. I am looking for your guidance and open to contribute to this project and complete official screening task if required. Thank you for considering my application. Sincerely, Mohd Quamar Tyagi [mohdquamartyagi@gmail.com] [https://www.linkedin.com/in/mohd-quamar-tyagi-5456b1225