Skip to content

Commit 9650d3d

Browse files
gdalleetiennedeg
andauthored
Hierarchical documentation structure (#114)
* Restructure docs and split API reference * Deploy on gdalle for approval * Trigger CI * Correct typos and disable tests in CI * Add Experimental.Parallel * Restructure docs by theme * Ecosystem * Auto extract md titles & add recent ecosystem docstrings * Remove ecosystem docs * Update docs/src/core_functions/simplegraphs.md Co-authored-by: Etienne dg <[email protected]> * Updates following review + correct duplicate for edit distance (prefix free file names) * Update README.md Co-authored-by: Etienne dg <[email protected]> Co-authored-by: Etienne dg <[email protected]>
1 parent 3628517 commit 9650d3d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+1057
-933
lines changed

LICENSE.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# License information
2+
13
The Graphs.jl (formerly called LightGraphs.jl) package is licensed under the Simplified "2-clause" BSD
24
License:
35
> Copyright (c) 2015: Seth Bromberger and other contributors.

README.md

Lines changed: 70 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,86 @@
1-
# Graphs
2-
3-
[![Build Status](https://github.com/JuliaGraphs/Graphs.jl/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/JuliaGraphs/Graphs.jl/actions/workflows/ci.yml?query=branch%3Amaster)
4-
[![codecov.io](http://codecov.io/github/JuliaGraphs/Graphs.jl/coverage.svg?branch=master)](http://codecov.io/github/JuliaGraphs/Graphs.jl?branch=master)
5-
[![](https://img.shields.io/badge/docs-latest-blue.svg)](https://juliagraphs.org/Graphs.jl/dev/)
6-
7-
## Overview
8-
9-
Graphs offers both (a) a set of simple, concrete graph implementations -- `Graph`
10-
(for undirected graphs) and `DiGraph` (for directed graphs), and (b) an API for
11-
the development of more sophisticated graph implementations under the `AbstractGraph`
12-
type.
13-
14-
The project goal is to mirror the functionality of robust network and graph
15-
analysis libraries such as [NetworkX](http://networkx.github.io). It is an explicit design
16-
decision that any data not required for graph manipulation (attributes and
17-
other information, for example) is expected to be stored outside of the graph
18-
structure itself. Such data lends itself to storage in more traditional and
19-
better-optimized mechanisms.
20-
21-
Additional functionality may be found in a number of companion packages, including:
22-
* [LightGraphsExtras.jl](https://github.com/JuliaGraphs/LightGraphsExtras.jl):
23-
extra functions for graph analysis.
24-
* [MetaGraphs.jl](https://github.com/JuliaGraphs/MetaGraphs.jl): graphs with
25-
associated meta-data.
26-
* [SimpleWeightedGraphs.jl](https://github.com/JuliaGraphs/SimpleWeightedGraphs.jl):
27-
weighted graphs.
28-
* [GraphIO.jl](https://github.com/JuliaGraphs/GraphIO.jl): tools for importing
29-
and exporting graph objects using common file types like edgelists, GraphML,
30-
Pajek NET, and more.
1+
# Graphs.jl
312

32-
## Documentation
33-
Full documentation is available at [GitHub Pages](https://juliagraphs.org/Graphs.jl/dev/).
34-
Documentation for methods is also available via the Julia REPL help system.
35-
Additional tutorials can be found at [JuliaGraphsTutorials](https://github.com/JuliaGraphs/JuliaGraphsTutorials).
3+
[![Build Status](https://github.com/JuliaGraphs/Graphs.jl/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/JuliaGraphs/Graphs.jl/actions/workflows/ci.yml?query=branch%3Amaster) [![codecov.io](http://codecov.io/github/JuliaGraphs/Graphs.jl/coverage.svg?branch=master)](http://codecov.io/github/JuliaGraphs/Graphs.jl?branch=master) [![](https://img.shields.io/badge/docs-latest-blue.svg)](https://juliagraphs.org/Graphs.jl/dev/)
4+
5+
## Overview
6+
7+
The goal of _Graphs.jl_ is to offer a performant platform for network and graph analysis in Julia, following the example of libraries such as [NetworkX](http://networkx.github.io) in Python. To this end, _Graphs.jl_ offers:
8+
9+
- a set of simple, concrete graph implementations -- `SimpleGraph` (for undirected graphs) and `SimpleDiGraph` (for directed graphs)
10+
- an API for the development of more sophisticated graph implementations under the `AbstractGraph` type
11+
- a large collection of graph algorithms with the same requirements as this API.
3612

3713
## Installation
38-
Installation is straightforward: enter Pkg mode by hitting `]`, and then
14+
15+
Installation is straightforward. First, enter Pkg mode by hitting `]`, and then run the following command:
16+
3917
```julia-repl
40-
(v1.0) pkg> add Graphs
18+
pkg> add Graphs
4119
```
4220

43-
## Supported Versions
44-
* Graphs master is generally designed to work with the latest stable version of Julia (except during Julia version increments as we transition to the new version).
45-
* The project was previously developed under the name LightGraphs and older versions of LightGraphs (≤ v1.3.5) must still be used with that name.
46-
* There was also an older package also called Graphs (git tags `v0.2.5` through `v0.10.3`), but the current code base here is a fork of LightGraphs v1.3.5.
47-
* All older LightGraphs versions are tagged using the naming scheme `lg-vX.Y.Z` rather than plain `vX.Y.Z` which is used for old Graphs versions (≤ v0.10) and newer versions derived from LightGraphs but released with the Graphs name (≥ v1.4).
48-
* If you are using a version of Julia prior to 1.x, then you should use LightGraphs.jl at `lg-v.12.*` or Graphs.jl at `v0.10.3`
49-
* If you are using a version of Julia prior to 1.6, then you should use Graphs.jl at `v1.5.1`
50-
* Later versions: Some functionality might not work with prerelease / unstable / nightly versions of Julia. If you run into a problem, please file an issue.
21+
## Basic use
5122

52-
# Contributing and Reporting Bugs
53-
We welcome contributions and bug reports! Please see [CONTRIBUTING.md](https://github.com/JuliaGraphs/Graphs.jl/blob/master/CONTRIBUTING.md)
54-
for guidance on development and bug reporting.
23+
_Graphs.jl_ includes numerous convenience functions for generating functions, such as `path_graph`, which builds a simple undirected [path graph](https://en.wikipedia.org/wiki/Path_graph) of a given length. Once created, these graphs can be easily interrogated and modified.
24+
25+
```julia-repl
26+
julia> g = path_graph(6)
27+
{6, 5} undirected simple Int64 graph
28+
29+
# Number of vertices
30+
julia> nv(g)
31+
6
32+
33+
# Number of edges
34+
julia> ne(g)
35+
5
36+
37+
# Add an edge to make the path a loop
38+
julia> add_edge!(g, 1, 6);
39+
```
40+
41+
## Documentation
42+
43+
The full documentation is available at [GitHub Pages](https://juliagraphs.org/Graphs.jl/dev/). Documentation for methods is also available via the Julia REPL help system.
44+
Additional tutorials can be found at [JuliaGraphsTutorials](https://github.com/JuliaGraphs/JuliaGraphsTutorials).
45+
46+
## Citing
47+
48+
We encourage you to cite our work if you have used our libraries, tools or datasets. Starring the _Graphs.jl_ repository on GitHub is also appreciated.
49+
50+
The latest citation information may be found in the [CITATION.bib](https://raw.githubusercontent.com/JuliaGraphs/Graphs.jl/master/CITATION.bib) file within the repository.
51+
52+
## Contributing
53+
54+
We welcome contributions and bug reports!
55+
Please see [CONTRIBUTING.md](https://github.com/JuliaGraphs/Graphs.jl/blob/master/CONTRIBUTING.md) for guidance on development and bug reporting.
5556

5657
JuliaGraphs development subscribes to the [Julia Community Standards](https://julialang.org/community/standards/).
5758

58-
## Project Status
59+
## Related packages
60+
61+
It is an explicit design decision that any data not required for graph manipulation (attributes and other information, for example) is expected to be stored outside of the graph structure itself.
62+
63+
Additional functionality like advanced IO and file formats, weighted graphs, property graphs, and optimization-related functions can be found in the packages of the [JuliaGraphs organization](https://juliagraphs.org/).
64+
65+
## Project status
5966

60-
The Graphs project is a reboot of the LightGraphs
61-
package (archived in October 2021), which remains available on GitHub at
62-
[sbromberger/LightGraphs.jl](https://github.com/sbromberger/LightGraphs.jl). If
63-
you don't need any new features developed since the fork, you can continue to
64-
use older versions of LightGraphs indefinitely. New versions will be released
65-
here using the name Graphs instead of LightGraphs. There was an older package
66-
also called Graphs. The source history and versions are still available in
67-
this repository, but the current code base is unrelated to the old Graphs code
68-
and is derived purely from LightGraphs. To access the history of the old Graphs code,
69-
you can start from [commit 9a25019](https://github.com/JuliaGraphs/Graphs.jl/commit/9a2501948053f60c630caf9d4fb257e689629041).
67+
The _Graphs.jl_ project is a reboot of the _LightGraphs.jl_ package (archived in October 2021), which remains available on GitHub at [sbromberger/LightGraphs.jl](https://github.com/sbromberger/LightGraphs.jl). If you don't need any new features developed since the fork, you can continue to use older versions of _LightGraphs.jl_ indefinitely. New versions will be released here using the name _Graphs.jl_ instead of _LightGraphs.jl_. There was an older package also called _Graphs.jl_. The source history and versions are still available in this repository, but the current code base is unrelated to the old _Graphs.jl_ code and is derived purely from _LightGraphs.jl_. To access the history of the old _Graphs.jl_ code, you can start from [commit 9a25019](https://github.com/JuliaGraphs/Graphs.jl/commit/9a2501948053f60c630caf9d4fb257e689629041).
7068

71-
**Transition from LightGraphs to Graphs:**
69+
### Transition from LightGraphs to Graphs
7270

73-
LightGraphs and Graphs are functionally identical, still there are some steps involved making the change:
71+
_LightGraphs.jl_ and _Graphs.jl_ are functionally identical, still there are some steps involved making the change:
7472

75-
* Change `LightGraphs = "093fc24a-ae57-5d10-9952-331d41423f4d"` to `Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"` in your Project.toml.
76-
* Update your `using` and `import` statements.
77-
* Update your type constraints and other references to `LightGraphs` to `Graphs`.
78-
* Increment your version number. Following semantic versioning, we suggest a patch release when no graphs or other `Graphs.jl`-objects can be passed through the API of your package by those depending on it, otherwise consider it a breaking release. "Passed through" entails created outside and consumed inside your package and vice versa.
79-
* Tag a release.
73+
- Change `LightGraphs = "093fc24a-ae57-5d10-9952-331d41423f4d"` to `Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"` in your Project.toml.
74+
- Update your `using` and `import` statements.
75+
- Update your type constraints and other references to `LightGraphs` to `Graphs`.
76+
- Increment your version number. Following semantic versioning, we suggest a patch release when no graphs or other `Graphs.jl`-objects can be passed through the API of your package by those depending on it, otherwise consider it a breaking release. "Passed through" entails created outside and consumed inside your package and vice versa.
77+
- Tag a release.
8078

81-
# Citing
79+
### About versions
8280

83-
We encourage you to cite our work if you have used our libraries, tools or datasets, refer to `CITATION.bib`.
84-
Starring the repository on GitHub is also appreciated.
81+
- The master branch of _Graphs.jl_ is generally designed to work with versions of Julia starting from the [LTS release](https://julialang.org/downloads/#long_term_support_release) all the way to the [current stable release](https://julialang.org/downloads/#current_stable_release), except during Julia version increments as we transition to the new version.
82+
- Later versions: Some functionality might not work with prerelease / unstable / nightly versions of Julia. If you run into a problem, please file an issue.
83+
- The project was previously developed under the name _LightGraphs.jl_ and older versions of _LightGraphs.jl_ (≤ v1.3.5) must still be used with that name.
84+
- There was also an older package also called _Graphs.jl_ (git tags `v0.2.5` through `v0.10.3`), but the current code base here is a fork of _LightGraphs.jl_ v1.3.5.
85+
- All older _LightGraphs.jl_ versions are tagged using the naming scheme `lg-vX.Y.Z` rather than plain `vX.Y.Z`, which is used for old _Graphs.jl_ versions (≤ v0.10) and newer versions derived from _LightGraphs.jl_ but released with the _Graphs.jl_ name (≥ v1.4).
86+
- If you are using a version of Julia prior to 1.x, then you should use _LightGraphs.jl_ at `lg-v.12.*` or _Graphs.jl_ at `v0.10.3`

docs/a.png

Lines changed: 0 additions & 110 deletions
This file was deleted.

0 commit comments

Comments
 (0)