Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
29a5180
add a draft governance document
ablaom May 12, 2024
2e51491
add Johann Brea to the Steering Committee
ablaom Oct 10, 2024
473fbfc
add Dilum to advisory committee
ablaom Oct 11, 2024
a3809e8
add Bogumil to Advisory Committee
ablaom Oct 14, 2024
fe66499
add Thibaut to advisory committee
ablaom Oct 21, 2024
7438745
add Dilum and Jeremie to the Advisory Committee
ablaom Nov 28, 2024
35ad241
Merge pull request #1116 from JuliaAI/governance
ablaom Dec 23, 2024
0585b14
remove "DRAFT" tag from GOVERNANCE.md document
ablaom Dec 23, 2024
1e77d98
Merge pull request #1149 from JuliaAI/gov
ablaom Dec 23, 2024
3ca5060
Merge branch 'dev' into governance
ablaom Dec 23, 2024
d7376b6
fix
ablaom Dec 23, 2024
50543e6
Merge pull request #1150 from JuliaAI/governance
ablaom Dec 23, 2024
794be24
update road map
ablaom Dec 23, 2024
92e6f17
add InSample to the manual
ablaom Dec 23, 2024
e388a1d
re-export CompactPerformanceEvaluation to close #1111
ablaom Dec 23, 2024
ae870f7
Merge pull request #1151 from JuliaAI/insample
ablaom Dec 25, 2024
a9f3ba7
tweak display of version number to resolve #1154
ablaom Feb 6, 2025
7b16653
Update mlj_cheatsheet.md
besp-kt Feb 26, 2025
c02d6c8
Merge pull request #1156 from besp-kt/patch-1
ablaom Feb 26, 2025
2f2b551
dump codecov from ci
ablaom Feb 26, 2025
1c0b99a
condense and update readme
Apr 7, 2025
373be55
integrate the new landing page juliaml.ai into documentation
Apr 7, 2025
ad7ded3
remove PartialLeastSquaresRegressor from the project
Apr 7, 2025
bc89e2d
remove PartialLeastSquaresRegression models from the docs to close #1157
Apr 7, 2025
b9c53f0
bump compat StatisticalMeasures="0.2"
Apr 8, 2025
b55a024
Merge pull request #1160 from JuliaAI/compat-bump-2025-04-08
ablaom Apr 8, 2025
213ca4a
Merge pull request #1159 from JuliaAI/integration-of-juliaml-dot-ai
ablaom Apr 8, 2025
f397a4e
add Maxnet to [extras]
Apr 8, 2025
194575b
spelling
Apr 8, 2025
bc27c45
suspend integration tests for Imbalance.jl
Apr 8, 2025
da510e3
fix syntax
Apr 8, 2025
cbac389
reinstate integration test for CDDetector from OutlierDetectionPython.jl
Apr 8, 2025
aadb333
reinstate integration test for CatBoostClassifier
Apr 8, 2025
d355e8a
re-instate test for Imbalance models
Apr 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,6 @@ jobs:
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v1
with:
file: lcov.info
integration:
# This job (the `integration` job) has a conditional (`if:`) with the following
# three conditions:
Expand Down Expand Up @@ -77,9 +74,6 @@ jobs:
# This environment variable enables the integration tests:
MLJ_TEST_INTEGRATION: '1'
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v1
with:
file: lcov.info
docs:
name: Documentation
runs-on: ubuntu-latest
Expand Down
174 changes: 174 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
# Governance in MLJ

The following contains the formal governance structure of the Machine Learning in Julia
project (MLJ). This project maintains and develops the open source software hosted by
the [JuliaAI](https://github.com/JuliaAI) GitHub organization. This document clarifies how
decisions are made with respect to community interactions, including the relationship
between open source development and work that may be funded by for-profit and non-profit
entities.

## Code of Conduct

The MLJ community values inclusivity and diversity. Everyone should treat others with
utmost respect. Everyone in the community must adhere to the [MLJ Code of
Conduct](https://github.com/JuliaAI/MLJ.jl/blob/dev/CODE_OF_CONDUCT.md) which reflects the
values of our community. Violations of the code should be reported to members of the
Steering Council, where the offenses will be handled on a case-by-case basis.

## Current Steering Council

- Dr. Anthony Blaom, University of Auckland (<[email protected]>)

- Professor Sebastian Vollmer, German Research Center for Artificial Intelligence (DFKI),
RPTU (<[email protected]>)

- Professor Mark Gahegan, University of Auckland (<[email protected]>)

## Advisory Committee

- [Jeremie
Desgagne-Bouchard](https://www.linkedin.com/in/jeremie-desgagne-bouchard-81a68b111/)
(or, at [GitHub](https://github.com/jeremiedb)), [Evovest](https://evovest.com), Montreal

- [Dilum Aluthge, PhD](https://aluthge.com), Brown University & Pumas-AI, Inc., USA

- [Johanni Brea, PhD](https://people.epfl.ch/johanni.brea), EPFL, Switzerland

- [Bogumił Kamiński, PhD](http://bogumilkaminski.pl/about/),
SGH Warsaw School of Economics and Toronto Metropolitan University

- [Thibaut Lienart, PhD](https://ravio.com/), Ravio


## Governing Rules and Duties

### Steering Council

The role of the Steering Council is to provide active leadership for the Project in making
everyday decisions on technical and administrative issues, through working with and taking
input from the Community.

During the everyday project activities, Council Members participate in all discussions,
code review and other project activities as peers with all other Contributors and the
Community. In these everyday activities, Council Members do not have any special power or
privilege through their membership on the Council. However, because of the quality and
quantity of their own contributions to the project and their expert knowledge of the
Project Software and Services, Council Members are expected to provide useful guidance,
both technical and in terms of project direction, to potentially less experienced
Contributors.

The Steering Council and its Members play a special role in certain situations. In
particular, the Council may make decisions regarding:

- The overall scope, vision and direction of the project.

- The strategic collaborations with other organizations or individuals.

- Specific technical issues, features, bugs and pull requests. They
are the primary mechanism of guiding the code review process and merging pull requests.

- Services that are run by the Project and manage those Services
for the benefit of the Project and Community.

- The appointment of new Members to the Steering Council and
Advisory Committee, subject to procedures outlined below.

- Community discussions on proposals where consensus has not been reached in a reasonable
time frame.

Steering Council decisions are taken by simple majority, with the exception of changes to
these Governance Documents, which follow the procedure in the section 'Changing the
Governance Documents'.

### Steering Council Membership

Potential Council Members are nominated by existing Council Members or by the Community
and voted upon by the existing Council after confirming the potential Member is willing to
serve in that capacity. The Ideal Candidate will: (i) have made contributions to the MLJ
project that are substantial in quality and quantity, and sustained over at least six
months; and (ii) have demonstrably broad familiarity with Machine Learning
practices. Candidates satisfying (ii) but not (i) may also be considered, but only if all
the following conditions are met:

- The need for a new Steering Council Member is acute.

- The Candidate under consideration has made comparable contributions to another open
source software project related to Machine Learning.

- All reasonable efforts to identify a willing Ideal Candidate have failed.

When considering potential Members, the Council will look at candidates with a
comprehensive view of their contributions. This will include but is not limited to code,
code review, infrastructure work, mailing list and chat participation, community
help/building, education and outreach, and design work.

A Council Member can only be removed in one of the following ways:

- The Member resigns.

- The Member has been inactive in the project for a period of one year and agrees to be
removed upon the request of another Member.

- The Member has been inactive in the project for a period of two years, and a majority of
the other Members agree to have the inactive member removed.

- The Member has, in the view of a majority of other Members, actively engaged in behavior
harmful to the Project's well-being, and attempts at communication and conflict
resolution have failed.

All former Council members can be considered for membership again at any time in the
future, like any other Project Contributor. Retired Council Members and their years of
service will be acknowledged on the project website.

### Fiscal Decisions

All fiscal decisions are made by the Steering Council to ensure any funds are spent in a
manner that furthers the mission of the Project. Fiscal decisions require majority
approval by acting Steering Council Members.

### Advisory Committee

The Project has an Advisory Committee that works to ensure the long-term well-being of the
Project. The Committee advises the Steering Council and may be called upon to break
deadlocks or serious disagreements in the Council. The Community can ask the Committee to
review actions taken by the Council, and the Committee will meet each year to review
Project activities. Committee decisions are taken by consensus. Members of the Advisory
Committee are appointed by the Steering Council. A Member of the Advisory Committee can
request to be removed from the Committee at any time.

### Conflict of Interest

It is expected that Steering Council and Advisory Committee Members will be employed at a
wide range of companies, universities and non-profit organizations. Because of this, it is
possible that Members will have conflicts of interest. Such conflicts of interest include,
but are not limited to:

Financial interests, such as investments, employment or contracting work, outside of the
Project that may influence their work on the Project.

Access to proprietary information of their employer that could potentially leak into their
work with the Project.

All members of the Council and Committee shall disclose any conflict of interest they may
have. Members with a conflict of interest in a particular issue may participate in Council
discussions on that issue, but must recuse themselves from voting on the issue.

### Changing the Governance Document

Changes to this governance document may be proposed by any member of the MLJ Community, by
opening a pull request (PR). The source of this document resides at
[github.com/JuliaA/MLJ/GOVERNANCE.md](https://github.com/JuliaA/GOVERNANCE.md). The
Steering Council may immediately merge requests that do not materially effect the rules of
governance. Such changes include correcting false information and updating the lists of
Council or Committee members. Proposals materially effecting the rules of governance must
explain the reasons for the change and include a statement inviting members of the
Community to provide their feedback on the proposal. Members of the Steering Council will
facilitate a discussion seeking consensus on whether to accept or reject the proposed
changes. After a reasonable period, not less than 28 days, the Steering Council will vote
either to merge or close the PR. If at least 2/3 of the Council vote to accept the
changes, the PR will be merged and otherwise it will be closed. While it is expected that
the Council Members make a good faith attempt to consider the majority view
articulated in the Community discussion, Members are not bound by those views.

If Council unanimously agrees that a proposal to change the Governance Document is frivolous,
it may reject it immediately without Community review.
77 changes: 38 additions & 39 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ ProgressMeter = "1.1"
Random = "<0.0.1, 1"
Reexport = "1.2"
ScientificTypes = "3"
StatisticalMeasures = "0.1"
StatisticalMeasures = "0.2"
Statistics = "<0.0.1, 1"
StatsBase = "0.32,0.33, 0.34"
Tables = "0.2,1.0"
Expand All @@ -62,6 +62,7 @@ Imbalance = "c709b415-507b-45b7-9a3d-1767c89fde68"
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
LaplaceRedux = "c52c1a26-f7c5-402b-80be-ba1e638ad478"
LightGBM = "7acf609c-83a4-11e9-1ffb-b912bcd3b04a"
Maxnet = "81f79f80-22f2-4e41-ab86-00c11cf0f26f"
MLJClusteringInterface = "d354fa79-ed1c-40d4-88ef-b8c7bd1568af"
MLJDecisionTreeInterface = "c6f25543-311c-4c74-83dc-3ea6d1015661"
MLJFlux = "094fc8d1-fd35-5302-93ea-dabda2abf845"
Expand All @@ -82,7 +83,6 @@ OneRule = "90484964-6d6a-4979-af09-8657dbed84ff"
OutlierDetectionNeighbors = "51249a0a-cb36-4849-8e04-30c7f8d311bb"
OutlierDetectionPython = "2449c660-d36c-460e-a68b-92ab3c865b3e"
ParallelKMeans = "42b8e9d4-006b-409a-8472-7f34b3fb58af"
PartialLeastSquaresRegressor = "f4b1acfe-f311-436c-bb79-8483f53c17d5"
PartitionedLS = "19f41c5e-8610-11e9-2f2a-0d67e7c5027f"
SIRUS = "cdeec39e-fb35-4959-aadb-a1dd5dede958"
SelfOrganizingMaps = "ba4b7379-301a-4be0-bee6-171e4e152787"
Expand All @@ -93,41 +93,40 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = [
"BetaML",
"CatBoost",
"EvoLinear",
"EvoTrees",
"Imbalance",
"InteractiveUtils",
"LightGBM",
"LaplaceRedux",
"MLJClusteringInterface",
"MLJDecisionTreeInterface",
"MLJFlux",
"MLJGLMInterface",
"MLJLIBSVMInterface",
"MLJLinearModels",
"MLJMultivariateStatsInterface",
"MLJNaiveBayesInterface",
"MLJScikitLearnInterface",
"MLJTSVDInterface",
"MLJTestInterface",
"MLJTestIntegration",
"MLJText",
"MLJXGBoostInterface",
"Markdown",
"NearestNeighborModels",
"OneRule",
"OutlierDetectionNeighbors",
"OutlierDetectionPython",
"ParallelKMeans",
"PartialLeastSquaresRegressor",
"PartitionedLS",
"SelfOrganizingMaps",
"SIRUS",
"SymbolicRegression",
"StableRNGs",
"Suppressor",
"Test",
"BetaML",
"CatBoost",
"EvoLinear",
"EvoTrees",
"Imbalance",
"InteractiveUtils",
"LightGBM",
"LaplaceRedux",
"Maxnet",
"MLJClusteringInterface",
"MLJDecisionTreeInterface",
"MLJFlux",
"MLJGLMInterface",
"MLJLIBSVMInterface",
"MLJLinearModels",
"MLJMultivariateStatsInterface",
"MLJNaiveBayesInterface",
"MLJScikitLearnInterface",
"MLJTSVDInterface",
"MLJTestInterface",
"MLJTestIntegration",
"MLJText",
"MLJXGBoostInterface",
"Markdown",
"NearestNeighborModels",
"OneRule",
"OutlierDetectionNeighbors",
"OutlierDetectionPython",
"ParallelKMeans",
"PartitionedLS",
"SelfOrganizingMaps",
"SIRUS",
"SymbolicRegression",
"StableRNGs",
"Suppressor",
"Test",
]

Loading
Loading