From 57b7cba59c83f00036ea315d2052bdef26ffc89c Mon Sep 17 00:00:00 2001 From: Arnaud Becheler <8360330+Becheler@users.noreply.github.com> Date: Wed, 13 May 2026 15:33:55 +0200 Subject: [PATCH] adding and editing github plumbing files --- .github/CODEOWNERS | 19 +++ .github/ISSUE_TEMPLATE/bug_report.md | 83 ++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 9 ++ .github/ISSUE_TEMPLATE/documentation.md | 58 ++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 71 ++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 50 +++++++ CODE_OF_CONDUCT.md | 84 ++++++++++++ CONTRIBUTING.md | 106 +++++++++++++++ README.md | 157 ++++++++++++++-------- SECURITY.md | 14 ++ meta/libraries.json | 3 +- 11 files changed, 599 insertions(+), 55 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/documentation.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 SECURITY.md diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..2d22729b8 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,19 @@ +# Code owners for Boost.Graph +# +# When a PR is opened, GitHub automatically requests review from the matching +# owners listed below. The order of rules matters: later, more specific rules +# override earlier, more general ones. +# +# Authoritative maintainer list: meta/libraries.json +# Contact details: CONTRIBUTING.md#maintainers + +# Default reviewers for everything +* @jeremy-murphy @becheler + +# Documentation, contributor-facing files, and CI configuration +/doc/ @becheler +/README.md @becheler +/CONTRIBUTING.md @becheler +/SECURITY.md @becheler +/CODE_OF_CONDUCT.md @becheler +/.github/ @becheler diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..782644bff --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,83 @@ +--- +name: Bug report +about: Report a defect or unexpected behavior in Boost.Graph +title: '' +labels: bug +assignees: '' +--- + + + +### Before filing + +- [ ] I searched the [existing issues](https://github.com/boostorg/graph/issues?q=is%3Aissue) and did not find a duplicate. +- [ ] I have reproduced the bug against the `develop` branch or the latest Boost release. +- [ ] I have a minimal reproducer (or I will paste my full failing code below). + +### Boost version + + + +### Compiler family + +- [ ] GCC / g++ +- [ ] Clang / clang++ +- [ ] MSVC (Visual Studio) +- [ ] Intel / oneAPI +- [ ] Other (specify below) + +Exact compiler version: + +### Standard library + +- [ ] libstdc++ +- [ ] libc++ +- [ ] MSVC STL +- [ ] Other (specify below) + +### Operating system + +- [ ] Linux +- [ ] macOS +- [ ] Windows +- [ ] Other (specify below) + +### Kind of component affected + +- [ ] Graph data structure (e.g. `adjacency_list`, `adjacency_matrix`) +- [ ] Algorithm (e.g. `dijkstra_shortest_paths`, `breadth_first_search`) +- [ ] Property map +- [ ] I/O or file-format reader (e.g. `read_graphml`, `read_graphviz`) +- [ ] Visitor / event hooks +- [ ] Other (specify below) + +Exact name of the affected component: + +### Steps to reproduce + + + +### Expected behavior + +### Actual behavior + + + +### Are you willing to help? + +- [ ] I'd like to submit a fix as a pull request. +- [ ] I can help diagnose or test a candidate fix. +- [ ] I'm only reporting the issue. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..3f66bf9fb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,9 @@ +blank_issues_enabled: false +contact_links: + - name: Design discussion or open-ended question + url: https://github.com/boostorg/graph/discussions + about: | + For "should we...?" questions, design exploration, or anything not + yet a concrete proposal, please start a GitHub Discussion. Issues + are reserved for bugs, feature requests with a concrete proposal, + and documentation problems. diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md new file mode 100644 index 000000000..4efffb075 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.md @@ -0,0 +1,58 @@ +--- +name: Documentation issue +about: Report missing, incorrect, or unclear documentation +title: '' +labels: docs +assignees: '' +--- + + + +### Before filing + +- [ ] I searched the [existing issues](https://github.com/boostorg/graph/issues?q=is%3Aissue+label%3Adocs) and did not find a duplicate. +- [ ] I checked the latest version of the documentation on `develop`. + +### Kind of problem + +- [ ] Documentation is missing entirely +- [ ] Documentation is incorrect or out of date +- [ ] Explanation is unclear or confusing +- [ ] Example does not compile +- [ ] Example compiles but does not produce the documented result +- [ ] Dead link or broken cross-reference +- [ ] Other (specify below) + +### Where is the issue? + + + +### What is wrong, missing, or unclear? + + + +### What did you expect to find? + + + +### Suggested wording (optional) + + + +### Are you willing to help? + +- [ ] I'd like to submit a docs pull request. +- [ ] I can review a candidate fix. +- [ ] I'm only reporting the issue. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..56f5d7c82 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,71 @@ +--- +name: Feature request +about: Suggest a new algorithm, API addition, or enhancement +title: '' +labels: enhancement +assignees: '' +--- + + + +### Before filing + +- [ ] I searched the [existing issues](https://github.com/boostorg/graph/issues?q=is%3Aissue) and did not find a duplicate. +- [ ] This is a concrete proposal, not an open-ended design question. + +### Kind of addition + +- [ ] New algorithm +- [ ] New data structure +- [ ] New property map or utility +- [ ] New I/O format reader or writer +- [ ] Extension to an existing component +- [ ] Performance improvement +- [ ] Other (specify below) + +### Motivation + + + +### Proposed addition + + + +### Relation to existing Boost.Graph components + + + +### Prior art + +- [ ] Reference paper or textbook (cite below) +- [ ] Implementation in another library (link below) +- [ ] None / original idea + +References: + +### Are you willing to contribute? + +- [ ] I'd like to submit the implementation as a pull request. +- [ ] I can help with review or testing, but not the implementation. +- [ ] I'm only proposing the idea. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..e6effba33 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,50 @@ + + +### Before submitting + +- [ ] This PR targets the `develop` branch. +- [ ] I searched for an existing PR or issue covering the same change. +- [ ] My contribution is licensed under the Boost Software License 1.0. + +### Type of change + +- [ ] Bug fix +- [ ] New feature or API addition +- [ ] Refactor (no behavior change) +- [ ] Documentation +- [ ] Build, CI, or tooling +- [ ] Other (specify below) + +### Does this PR introduce a breaking change? + +- [ ] Yes (describe migration impact below) +- [ ] No + +### What this PR does + + + +### Motivation + + + +### Testing + + + +### Checklist + +- [ ] Existing tests pass (`b2` in the `test/` directory). +- [ ] New behavior is covered by a test, or this is a docs / build / refactor change. +- [ ] Documentation was updated if user-facing behavior changed. +- [ ] No new compiler warnings on the platforms I built against. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..6773faea6 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,84 @@ + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at `arnaud.becheler -at- gmail.com`. All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of actions. + +**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..58ebd6e55 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,106 @@ +# Contributing to Boost.Graph + +## We are welcoming contributions + +- Bug fixes and test cases for them +- New algorithms (with tests, documentation, complexity notes, and a reference) +- Documentation, examples, performance work +- Concept refinements (handle with care as these are API-visible) + +## Maintainers + +| Maintainer | Role | Focus | Availability | Contact | +|---|---|---|---|---| +| **Jeremy W. Murphy** | Principal maintainer. Holds merge authority and final say on design decisions. | Algorithms, technical review, library architecture. 10+ years on BGL. | Part-time, best-effort. | `jeremy.william.murphy -at- gmail.com` | +| **Arnaud Becheler** | Assistant maintainer. Triage, review, and contributor support; defers to Jeremy on merge decisions. | Documentation, modernization, contributor onboarding. | Full-time, funded by the [C++ Alliance](https://cppalliance.org) to assist Jeremy. | `arnaud.becheler -at- gmail.com` | + +The authoritative maintainer list lives in [meta/libraries.json](meta/libraries.json); keep this section in sync with it. Maintainers aim to provide first-pass review on new PRs within two weeks. + +## Getting set up + +Clone the [Boost superproject](https://github.com/boostorg/boost): + +```bash +git clone --depth 1 https://github.com/boostorg/boost +cd boost +git submodule update --init --depth 1 +./bootstrap.sh +./b2 headers +``` + +Then replace `libs/graph/` with your fork: + +```bash +rm -rf libs/graph +git clone https://github.com//graph libs/graph +cd libs/graph +git remote add upstream https://github.com/boostorg/graph +``` + +## Building and testing + +- Headers only: `./b2 headers` from boost root +- Compiled components: `./b2` from `libs/graph` +- All tests: `./b2` from `libs/graph/test` (takes ~10 min) +- Single test: `./b2 cycle_canceling_test` from `libs/graph/test` +- Different C++ standard: `./b2 cxxstd=20` +- Different compiler: `./b2 toolset=clang` + +### Naming conventions + +BGL follows the standard Boost / STL conventions: + +| Kind | Style | Example | +|---|---|---| +| Functions, types, variables, files | `snake_case` | `dijkstra_visitor`, `add_edge`, `adjacency_list.hpp` | +| Concept names | `PascalCase` | `IncidenceGraph`, `VertexListGraph` | +| Template parameters | `PascalCase` | `template ` | +| Tag-dispatch types | `snake_case` + `S` suffix | `vecS`, `directedS` | +| Macros | `BOOST_GRAPH_` prefix, `SCREAMING_SNAKE_CASE` | `BOOST_GRAPH_DECLARE_EDGE_PROPERTY` | + +## Using other Boost libraries + +When writing new code: + +- **Prefer `std::`** when the supported C++ standard has an equivalent. Use `std::function`, `std::shared_ptr`, `std::tuple` over their Boost counterparts. +- **Avoid pulling in new heavy dependencies** (Spirit, property_tree, xpressive, etc.) without justification: BGL is gradually migrating away from heavy Boost dependencies. Open a discussion before adding one. +- **Concept checks** (`boost::concept`) are encouraged for any new public template. New public APIs should respect the existing concept hierarchy. +- Track BGL's position in the Boost dependency DAG via [boostdep](https://github.com/boostorg/boostdep)'s hosted reports. The long-term goal is to reduce BGL's level over time: + - **[Module levels](https://pdimov.github.io/boostdep-report/master/module-levels.html#graph)** shows BGL's depth in the global DAG. A rising level means new transitive Boost dependencies have been pulled in. + - **[Per-library page](https://pdimov.github.io/boostdep-report/develop/graph.html)** shows BGL's direct deps and per-dep `#include` counts. + +## Pull request process + +- Fork, branch from `develop`, PR back to `develop` +- One logical change per PR; rebase before requesting review +- Tests required for new features and bug fixes +- **Open (non-draft) PRs are assumed ready for review.** Use GitHub's Draft state while iterating, then mark the PR as *Ready for review* when you want maintainers to look at it. +- A maintainer will review within ~2 weeks (see Maintainers below) +- Squash on merge by default + +## Merge criteria + +Before a PR is merged, all of the following must hold: + +1. CI is green on the full matrix (gcc-14 + clang-19, C++14/17/20/23). +2. New behavior has tests. +3. Bug fixes have a regression test. +4. Documentation under [doc/](doc/) is updated if the public API changed. +5. No new compiler warnings on the supported toolchains. +6. The PR is rebased on current `develop` with a clean commit history. +7. The principal maintainer has approved. + +## Reporting bugs + +1. Search [existing issues](https://github.com/boostorg/graph/issues) first +2. Note compiler, version, OS, Boost version +3. Minimal reproducer on [Compiler Explorer](https://godbolt.org/z/37dPWd5bs) +4. Expected Output versus Actual Output is explained. + +## Security + +See [SECURITY.md](SECURITY.md). + +## License + +By contributing, you agree your contribution is licensed under the [Boost Software License 1.0](https://www.boost.org/LICENSE_1_0.txt). diff --git a/README.md b/README.md index 1114cbd4e..80859a5c3 100644 --- a/README.md +++ b/README.md @@ -1,57 +1,106 @@ # Boost Graph Library -=================== +[![Docs](https://img.shields.io/badge/docs-boost.org-blue.svg)](https://www.boost.org/doc/libs/release/libs/graph/doc/index.html) +[![C++14](https://img.shields.io/badge/C%2B%2B-14-blue.svg)](https://en.cppreference.com/w/cpp/14) +[![CI](https://github.com/boostorg/graph/actions/workflows/ci.yml/badge.svg)](https://github.com/boostorg/graph/actions/workflows/ci.yml) +[![License: BSL-1.0](https://img.shields.io/badge/License-BSL_1.0-blue.svg)](https://www.boost.org/LICENSE_1_0.txt) +[![Boost release](https://img.shields.io/github/v/release/boostorg/boost?label=Boost&color=orange)](https://github.com/boostorg/boost/releases) + +The Boost Graph Library (BGL) is a generic library that allows users to: + +1. Represent graph data using different structures (adjacency matrix, adjacency list, compressed sparse row, vectors of vectors, user-defined data structures). +2. Attach user-defined data to vertices, edges, or the graph itself. +3. Run a large number of algorithms on the graph. +4. Inject user logic into algorithms using visitor hooks. + +## Example + +[Try it on Compiler Explorer](https://godbolt.org/z/9Esszr9Ga) + +```cpp +#include +#include +#include +#include +#include +#include + +struct City {}; +struct Road { int cost; }; + +using namespace boost; +using Graph = adjacency_list; +using Vertex = graph_traits::vertex_descriptor; + +int main() { + Graph g(4); + add_edge(0, 1, Road{1}, g); + add_edge(1, 2, Road{2}, g); + add_edge(0, 2, Road{10}, g); + add_edge(2, 3, Road{1}, g); + + // Storage: you control allocation, lifetime, and container type + std::vector storage_pred(num_vertices(g)); + std::vector storage_dist(num_vertices(g)); + + // Property maps: lightweight views into the storage + auto index_map = get(vertex_index, g); + auto costs_map = get(&Road::cost, g); + auto predecessor_map = make_iterator_property_map(storage_pred.begin(), index_map); + auto distance_map = make_iterator_property_map(storage_dist.begin(), index_map); + + dijkstra_shortest_paths(g, vertex(0, g), + predecessor_map, distance_map, + costs_map, index_map, + std::less(), std::plus(), + std::numeric_limits::max(), 0, + dijkstra_visitor()); + + for (auto v : make_iterator_range(vertices(g))) + std::cout << "distance to " << v << " = " << storage_dist[v] << "\n"; +} +``` +``` +distance to 0 = 0 +distance to 1 = 1 +distance to 2 = 3 +distance to 3 = 4 +``` + +## Algorithms + +BGL ships dozens of graph algorithms: shortest paths (Dijkstra, Bellman-Ford, A*, Floyd-Warshall, Johnson), spanning trees (Kruskal, Prim), maximum flow (Edmonds-Karp, push-relabel, Boykov-Kolmogorov), traversal (BFS, DFS, topological sort), planarity testing, isomorphism, component decomposition, and more. + +See the [full algorithm reference](https://becheler.github.io/graph/graph/algorithms/overview.html) for the complete catalogue. + +## Help and feedback + +* **[GitHub Issues](https://github.com/boostorg/graph/issues)** for bug reports. Search before opening a new one. +* **[GitHub Discussions](https://github.com/boostorg/graph/discussions)** for questions, design ideas, and general conversation about the library. +* **[Boost mailing list](http://lists.boost.org/mailman/listinfo.cgi/boost-users)** for general Boost development. Use the `[graph]` tag in the subject line. +* **CppLang Slack** for real-time chat. [Request an invite](https://cppalliance.org/slack/), then join the `#boost` channel. +* **Direct contact with maintainers**: see [CONTRIBUTING.md#maintainers](CONTRIBUTING.md#maintainers). + +## Using BGL + +Install Boost via your package manager: + +| Manager | Command | +|---|---| +| [vcpkg](https://vcpkg.io) | `vcpkg install boost-graph` | +| [Conan](https://conan.io) | `conan install --requires=boost/[*]` | +| apt (Debian/Ubuntu) | `sudo apt install libboost-graph-dev` | +| Homebrew (macOS) | `brew install boost` | + +Then wire it into CMake: + +```cmake +find_package(Boost REQUIRED COMPONENTS graph) +target_link_libraries(my_app PRIVATE Boost::graph) +``` + +Most of BGL is header-only. Linking `Boost::graph` is only required for the GraphViz and GraphML parsers. + +## Building from source -A generic interface for traversing graphs, using C++ templates. - -The full documentation is available on [boost.org](http://www.boost.org/doc/libs/release/libs/graph/doc/index.html). - -## Support, bugs and feature requests - -Bugs and feature requests can be reported through the [Github issue page](https://github.com/boostorg/graph/issues). - -See also: - -* [Current open issues](https://github.com/boostorg/graph/issues) -* [Closed issues](https://github.com/boostorg/graph/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aclosed) -* Old issues still open on [Trac](https://svn.boost.org/trac/boost/query?status=!closed&component=graph&desc=1&order=id) -* Closed issues on [Trac](https://svn.boost.org/trac/boost/query?status=closed&component=graph&col=id&col=summary&col=status&col=owner&col=type&col=milestone&col=version&desc=1&order=id) - -You can submit your changes through a [pull request](https://github.com/boostorg/graph/pulls). One of the maintainers will take a look (remember that it can take some time). - -There is no mailing-list specific to Boost Graph, although you can use the general-purpose Boost [mailing-list](http://lists.boost.org/mailman/listinfo.cgi/boost-users) using the tag [graph]. - - -### Build Status - -| | Master | Develop | -|------------------|----------|-------------| -| Github Actions | [![Build Status](https://github.com/boostorg/graph/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/boostorg/graph/actions) | [![Build Status](https://github.com/boostorg/graph/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/boostorg/graph/actions) | -|Drone | [![Build Status](https://drone.cpp.al/api/badges/boostorg/graph/status.svg?ref=refs/heads/master)](https://drone.cpp.al/boostorg/graph) | [![Build Status](https://drone.cpp.al/api/badges/boostorg/graph/status.svg)](https:/drone.cpp.al/boostorg/graph) | - -## Development - -Clone the whole boost project, which includes the individual Boost projects as submodules ([see boost+git doc](https://github.com/boostorg/boost/wiki/Getting-Started)): - - git clone https://github.com/boostorg/boost - cd boost - git submodule update --init - -The Boost Graph Library is located in `libs/graph/`. - -Boost Graph Library is mostly made of headers but also contains some compiled components. Here are the build commands: - - ./bootstrap.sh <- compile b2 - ./b2 headers <- just installs headers - ./b2 <- build compiled components - -**Note:** The Boost Graph Library cannot currently be built outside of Boost itself. - -### Running tests -First, make sure you are in `libs/graph/test`. -You can either run all the 300+ tests listed in `Jamfile.v2` or run a single test: - - ../../../b2 <- run all tests - ../../../b2 cycle_canceling_test <- single test - -You can also check the [regression tests reports](http://beta.boost.org/development/tests/develop/developer/graph.html). +For working on BGL itself (building Boost from source, running the test suite), see [CONTRIBUTING.md](CONTRIBUTING.md). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..6f8234d33 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,14 @@ +# Security Policy + +Boost.Graph is a header-only C++ template library. Most issues that look +like security problems are caused by misuse of the API, undefined behavior +in caller code, or violating a documented precondition. Those should be +filed as regular GitHub issues. + +If you believe you have found a genuine vulnerability in the library +itself, please report it privately through GitHub's +[private vulnerability reporting](https://github.com/boostorg/graph/security/advisories/new) +rather than opening a public issue. + +Fixes land on the `develop` branch and ship with the next Boost release. +No back-porting to older releases is guaranteed. diff --git a/meta/libraries.json b/meta/libraries.json index f11073c33..494dbd712 100644 --- a/meta/libraries.json +++ b/meta/libraries.json @@ -11,7 +11,8 @@ "Iterators" ], "maintainers": [ - "Jeremy W. Murphy " + "Jeremy W. Murphy ", + "Arnaud Becheler " ], "cxxstd": "14" }