Code Monkey home page Code Monkey logo

ecotasks's Introduction

Ecosystem Task List

An ongoing challenge in the D Programming Language ecosystem is finding the resources (human resources, money, time) to complete all of the tasks in need of completion. In the code D repositories and those of myriad third-party projects, there are issues large and small, complex and simple, waiting for the right person to come along with a pull request to close them. The large and complex issues often require a specific skill set and knowledge level in addition to a significant investment of time, but anyone can take care of the smaller and simpler ones. Unfortunately, many of those are not the sort of issues that motivate volunteers to take action.

Solving the big issues might be accomplished by raising money, but how can we direct human resources toward solving all the small issues that no one wants to work on?

Sharing Human Resources

In the first Quarterly D Language Foundation meeting in December, 2018, representatives from companies using D in production were asked to consider a new idea: would the companies be willing to periodically designate one employee to spend a day or two of company time working on D ecosystem issues that are not necessarily in the company's interests?

Companies using D commercially often contribute to the community in different ways. They have open sourced some of their projects, reported and fixed bugs, donated money, supported DConf, provided jobs, and so on. We all appreciate their efforts and D would not be where it is today without them. But just as volunteers tend to work on problems in which they are most interested in solving, commercial D shops tend to work on issues from which they derive some benefit. Motivating volunteers to work on issues in which they have no interest is a problem we have yet to solve, but the idea of companies donating human resources seemed like something within the realm of possibility.

Before the second Quarterly D Language Foundation meeting in March, 2019, a proposal was drafted presenting two options for approaching the initiative: a monthly rotation where a different company takes a turn each month, or a quarterly schedule where each company agrees to donate time each quarter at their leisure. The companies were asked to consider the proposal and provide a response at the March meeting.

In the end, the quarterly option was the agreed upon approach. Not all of the companies could commit to sparing any human resources initially. Some were just starting up and others were short on human resources already. However, all agreed to support the initiative in principle as circumstances allow. One company committed to starting the initiative immediately, and one did so conditionally. Those who could not provide human resources at the moment offered to provide funding instead (and that sparked a separate initiative).

The Task List

This repository houses the list from which companies currently sharing human resources will select tasks to complete. Anyone in the community is welcome to tasks to add to the list, but the following guidelines should be considered when doing so:

  • no task should be estimated to take longer than a single working day to complete; asking companies to maintain continuity between a single day each quarter and quite probably different developers is a bridge too far.
  • generic task groupings are preferable to specific tasks, e.g. "Close as many issues as possible on Project Foo".
  • any project in the D ecosystem is fair game

Pull requests are welcome for corrections in the list, but task suggestions should be reported as issues. The list will be roughly sorted according to what the D Language Foundation considers a priority, i.e. items higher on the list will be of higher priority than those lower on the list. Ultimately, it will be up to each worker a company makes available to decide which tasks to complete.

Volunteers

We don't want to put the burden of sharing human resources solely on the companies using D in production. Anyone interested in helping improve the D ecosystem is welcome to work on items from the task list. In fact, if you have a little time on your hands, closing even a trivial issue from this list will be a tremendous help. Even better, challenge yourself to close one issue a month from the list!

If you do decide to pitch in, please remember to submit an issue detailing which task(s) you are currently working on and close the issue at the end of your work session so that we can minimize the risk of duplicate work.

Avoiding Duplication

Given that we're asking the whole community to contribute, it's important that we have a mechanism to avoid duplication. As such, when anyone begins a session of human resource sharing, we ask that person to submit an issue indicating which task(s) he or she is currently working on and to close the issue at the end of the day.

For example, when starting a session, open an issue with a note like the following:

I'm working on the dub registry issues right now. Specifically, I plan to tackle issues #I, #J, and #K.

Update the issue as needed if more specific tasks are taken on. At the end of the session, the issue should be closed with a note indicating what was accomplished.

ecotasks's People

Contributors

andralex avatar mdparker avatar walterbright avatar wilzbach avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ecotasks's Issues

Funkwerk: dub for internal use

We're trying to transition from a homebrew build solution to dub for builds and dependency checking. As such, because we have a lot of internal repos who are heavily interdependent, the plan is to create a way to combine dub with git submodules.

Why submodules? Due to our use of microservices, often a change in one project is developed in tandem with a corresponding change in another. As such, we would like the ability to edit both repositories locally, simultaneously (ie. submodules), then commit the changes to two branches and run those on the build server, preferably without having to change the configuration and vitally without losing the ability to still specify and check versions, and use the repos in other submodules.

For comparison, a workflow using explicit branches would require a lot of "make change, git commit, git push, change folder, git pull, test change, go back", etc, which would be cumbersome. And dub local overrides would break on Jenkins.

More details for the approach I've developed are on the corresponding dub PR: dlang/dub#1780 . I think this workflow is important for internal project use with internal dependencies that simultaneously need lightweight modification and sophisticated version checking.

Unfortunately, the PR seems to be stalled...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.