Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
e965302
Initial plan
Copilot Feb 28, 2026
08c9ca4
Fix documentation: replace manynet/migraph references with netrics, c…
Copilot Feb 28, 2026
174f258
Update README.md to match README.Rmd fixes (replace manynet/migraph r…
Copilot Feb 28, 2026
0badd41
Fix roxygen examples: remove manynet:: prefix from ison_brandes to ma…
Copilot Feb 28, 2026
9d7494e
Clarify package architecture: marks in netrics, is_*() in manynet, au…
Copilot Mar 2, 2026
ae17369
Reorganize README: separate Measures (_by_) from Motifs (_x_), fix na…
Copilot Mar 2, 2026
766da81
Fix trailing whitespace in README.Rmd
Copilot Mar 2, 2026
5afdf7d
Set up data_objs of different types
jhollway Mar 3, 2026
11b6a5a
Added node_marks tests
jhollway Mar 3, 2026
d2a1502
Added tie_marks tests
jhollway Mar 3, 2026
ec5ec33
Using node_by_ and tie_by_ in examples
jhollway Mar 3, 2026
5ffd21f
Fixed tie_is_random to return tie marks
jhollway Mar 3, 2026
1941263
Added .github files
jhollway Mar 4, 2026
0cffc7b
Moved node_mark tests back to mark_nodes test to assist with parallel…
jhollway Mar 4, 2026
252ba8e
mark_ties tests back alone to assist with parallelisation too
jhollway Mar 4, 2026
c9b3e74
Dropped model_play tests
jhollway Mar 4, 2026
438718b
Fixed package description
jhollway Mar 4, 2026
126d29e
Moved funs_objs to helper
jhollway Mar 4, 2026
1bdd22a
Fixed documentation errors in .github
jhollway Mar 4, 2026
e64f006
Set seed for generate_random data_objs
jhollway Mar 4, 2026
6708453
#minor bump
jhollway Mar 4, 2026
46b719b
Updated ignores
jhollway Mar 4, 2026
6e19693
Fixed random tidygraph dep
jhollway Mar 4, 2026
5a171bd
Added node_motifs tests
jhollway Mar 4, 2026
f9cf27c
Dropped node_by_equivalency measure from examples
jhollway Mar 4, 2026
2576976
Fixed features tests and examples
jhollway Mar 4, 2026
88b5fd4
Using fict_marvel correctly
jhollway Mar 4, 2026
a50e8f5
Improved net_by_mixed() to use mixed information
jhollway Mar 4, 2026
c247901
Moved pkgdown yaml to own folder
jhollway Mar 4, 2026
c9cb886
Split motif testing into nodes and net
jhollway Mar 4, 2026
f1cab46
Added rotation tests for node_membs
jhollway Mar 4, 2026
d6bf7a0
Fixed net_x_hierarchy() as it produces a motif
jhollway Mar 4, 2026
9657e8b
Added net_measure tests
jhollway Mar 4, 2026
58c2945
Made sure net_by_reach() and net_by_harmonic() include call
jhollway Mar 4, 2026
74c6afd
Fixed namespace
jhollway Mar 4, 2026
0f4ede2
Added tie measure tests
jhollway Mar 4, 2026
0cd87ee
Using snet_progress_seq() instead of snet_progress_along(seq_nodes())…
jhollway Mar 4, 2026
aefd520
Fixed node_by_randomwalk() to work with two-mode networks
jhollway Mar 4, 2026
25c5f75
Fixed node_by_pagerank() to use igraph vector output
jhollway Mar 4, 2026
7f33c6a
Added node_measure tests
jhollway Mar 4, 2026
41e88e2
Removing some unnecessary tests
jhollway Mar 5, 2026
c1a27b2
Fixed website pages
jhollway Mar 5, 2026
e5e4d29
Split triangular properties off
jhollway Mar 5, 2026
3b2c0bb
Added favicons
jhollway Mar 5, 2026
cb4c784
Fixed node_is_isolate() and node_is_pendant() to work with signed net…
jhollway Mar 5, 2026
ae6d072
Moved degree-related marks to new section
jhollway Mar 5, 2026
8aa9a1a
Separated out brokerage functions by measure, motif, member
jhollway Mar 5, 2026
c6a92bc
Further documentation links
jhollway Mar 5, 2026
23a8d28
Added diffusion data_obj for testing diffusion functions
jhollway Mar 6, 2026
e335431
Fixed node_by_power() to revert to lower the exponent (bringing it cl…
jhollway Mar 6, 2026
667f138
Split heterogeneity functions into diversity and assortativity
jhollway Mar 6, 2026
a2bfdb7
Split hierarchy into measures and motif
jhollway Mar 6, 2026
2d40678
Added cosine cluster testing
jhollway Mar 6, 2026
435a845
Fixed motif testing to use new names
jhollway Mar 6, 2026
e151633
Improved documentation titles
jhollway Mar 6, 2026
efe1682
Drop tie_is_forbidden for now
jhollway Mar 6, 2026
c84aafa
Testing diversity and assortativity network measures
jhollway Mar 6, 2026
91348d3
Testing diversity and assortativity node measures
jhollway Mar 6, 2026
fe4a3d0
Don't bother with community printing testing after 9am
jhollway Mar 6, 2026
1702059
Fixed equivalence k-assignment in the case that every node is in the …
jhollway Mar 6, 2026
cafb0d7
Specifying which network types node_membs should operate on
jhollway Mar 6, 2026
b586010
Fixed early resolution of attribute into vector in node_by_homophily()
jhollway Mar 6, 2026
f9777b7
Fixed net_by_richclub() to return 0 in the case of all equivalent deg…
jhollway Mar 7, 2026
6b92823
Corrected by_ names in documentation
jhollway Mar 7, 2026
99c6cda
Fixed net_by_degree() testing
jhollway Mar 7, 2026
dddf66a
Testing node_by_vitality()
jhollway Mar 8, 2026
f934cce
Fixed node_by_authority() and node_by_hub() to use updated igraph fun…
jhollway Mar 8, 2026
a908f6f
Testing distance and equivalency
jhollway Mar 9, 2026
5e1f108
Testing reach
jhollway Mar 9, 2026
f52aa39
Fixed dyad census to work with two-mode networks
jhollway Mar 10, 2026
0240481
Added details about the dyad and triad motifs
jhollway Mar 10, 2026
50acf9a
Testing roulette and neighbor
jhollway Mar 13, 2026
e78ef20
Fixed net_by_waves() to return 1 for cross-sectional networks and ret…
jhollway Mar 13, 2026
c2b8677
Reduce number of different types of network data objects tested
jhollway Mar 13, 2026
ea6379b
Testing balance and waves
jhollway Mar 13, 2026
1dd54eb
Testing net_by_correlation, _change, and _stability()
jhollway Mar 13, 2026
d250aca
Testing tie measures and fixed tie_by_cohesion() to return tie_measur…
jhollway Mar 13, 2026
437e601
Testing net_by_strength and _toughness only once because slow
jhollway Mar 13, 2026
8e7973c
Fixed how node_by_bokering_activity() and node_by_brokering_exclusivi…
jhollway Mar 13, 2026
008a709
Minor documentation issues
jhollway Mar 13, 2026
9f4a5d9
Testing all node_members
jhollway Mar 13, 2026
fa63673
Testing all node marks
jhollway Mar 13, 2026
cf2cce8
Testing ties
jhollway Mar 13, 2026
18a0542
Testing more measures
jhollway Mar 13, 2026
efd08f7
Testing brokerage net motifs
jhollway Mar 13, 2026
15cbad3
Testing net_by diffusion functions
jhollway Mar 13, 2026
6e41f24
Testing brokerage and exposure node motifs
jhollway Mar 13, 2026
67eff63
Skip if tie_by_degree() not available in correct form
jhollway Mar 13, 2026
3dabf11
Changed older tests to point to netrics analytic functions instead of…
jhollway Mar 14, 2026
86a7a82
net_by_smallworld() now uses netrics functions
jhollway Mar 14, 2026
36b2a53
node_by_bridges() now uses netrics functions
jhollway Mar 14, 2026
fd74c3b
node_in_community() now uses netrics functions
jhollway Mar 14, 2026
40c30f8
Fixed documentation issues
jhollway Mar 14, 2026
3d46c4f
Added some thematic structure in analysis section in README
jhollway Mar 15, 2026
c7a6777
Initial plan
Copilot Mar 15, 2026
90e00b6
Add NEWS.md for v0.1.0 release
Copilot Mar 15, 2026
4e6cbea
Merge remote-tracking branch 'origin/copilot/sub-pr-3' into develop
jhollway Mar 15, 2026
526429c
Updated date
jhollway Mar 15, 2026
38226b8
Simplified description
jhollway Mar 15, 2026
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
18 changes: 18 additions & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,20 @@
^CODE_OF_CONDUCT\.md$
^LICENSE\.md$
^.*\.Rproj$
^\.Rproj\.user$
^working$
^\.github$
^data-raw$
data.csv
vignettes/*\.Rmd\.orig
vignettes/precompile\.R
^docs$
^cache$
^pkgdown$
^cran-comments\.md$
^CRAN-RELEASE$
^doc$
^Meta$
^CRAN-SUBMISSION$
^README\.Rmd$
^.mailmap$
1 change: 1 addition & 0 deletions .github/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.html
25 changes: 25 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Contributor Code of Conduct

As contributors and maintainers of this project, we pledge to respect all people who
contribute through reporting issues, posting feature requests, updating documentation,
submitting pull requests or patches, and other activities.

We are committed to making participation in this project a harassment-free experience for
everyone, regardless of level of experience, gender, gender identity and expression,
sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.

Examples of unacceptable behavior by participants include the use of sexual language or
imagery, derogatory comments or personal attacks, trolling, public or private harassment,
insults, or other unprofessional conduct.

Project maintainers 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. Project maintainers who do not follow the Code of Conduct may be removed
from the project team.

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by
opening an issue or contacting one or more of the project maintainers.

This Code of Conduct is adapted from the Contributor Covenant
(http://contributor-covenant.org), version 1.0.0, available at
http://contributor-covenant.org/version/1/0/0/
123 changes: 123 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# Contributing

Contributions to `netrics`,
whether in the form of issue identification, bug fixes, new code or documentation
are encouraged and welcome.

## Aims

Here is some things that Guy Kawasaki, Silicon Valley venture capitalist,
learned from Steve Jobs:

- "Experts" are clueless. Especially self-declared ones.
- Customers cannot tell you what they need. They can help with evolution, but not revolution.
- Biggest challenges beget the best work.
- Design counts. Users will see the skin/UI of your product, not the great algorithms.
- Big graphics, big fonts.
- Jump curves---do things 10 times better, not 10 percent.
- All that truly matters is whether something works or doesn't work. Open or close, iPhone or Android, car or train, doesn't matter---make
it work.
- "Value" is different from "price". There is a class of people who do care about value. Ease of use -> less support costs. You have to create a unique and valuable product as an engineer.
- Real CEOs can demo. If you can't demo your own product, then quit.
- Real entrepreneurs ship, not slip.
- Some things need to be believed to be seen.

## Git

`stocnet` projects are maintained using the git version control system.
A plain-English introduction to git can be found [here](https://blog.red-badger.com/2016/11/29/gitgithub-in-plain-english).
I recommend you read this before continuing.
A more recent motivation can be found [here](https://www.r-bloggers.com/2024/04/git-gud-version-control-best-practices/).
It will explain the basics of git version control, committing and repos, pulling and pushing,
branching and merging.

Using git from the command line on your lap- or desktop can be intimidating,
but I recommend [Fork](https://git-fork.com) software for Mac and Windows.
This allows mostly visual management of commits, diffs, branches, etc.
There are various other git software packages available, but this one is fairly fully featured.

The GitHub page allows to access the issues assigned to you and check the commits.
You can also access the documents in the repository,
although this won't be necessary after you have cloned it on your computer via Fork.

## Style

In terms of style, we are aiming for pleasant predictability in terms of user experience.
To that end, we have a regular syntax that users can rely on producing expected effects.

## Fork

### Cloning
Once you have downloaded Fork, the first thing you have to do is to
clone the remote repository on your computer.
Before cloning, you will be able to choose on which `branch` you want to work:
develop or main.

### Pull
This command allows you to `pull` changes from the remote repository to your local repository on Sourcetree.
Make sure you do that before starting working on your files so you have the newest versions.
When pulling, make sure you choose master or develop,
depending on the branch you decided to work with.
Once you pulled, you have now all the new commits and files and
you can start working on your assigned tasks.
Note that you can access and open the files either from the Finder or from Fork.
Some documents might be stored using Large File Storage (LFS) to save space on the repository.

### Commit and Push

Once you have made modifications on a file and saved them, it will appear in your `commit` window.
Here you can control one last time your file, write the commit message with the
issue reference (see below) and commit.
Once your commit is ready, you can `push` them to the origin/main repository.
Note that you can click the "push immediately" box in the commit window
if you don't want to do it in two steps.
If you are working on a separate branch,
it is important to select this branch when pushing to origin/main.

## Issues and tests

Please use the issues tracker on GitHub to identify any function-related issues.
You can use these issues to track progress on the issue and
to comment or continue a conversation on that issue.
Currently issue tracking is only open to those involved in the project.

The most useful issues are ones that precisely identify an error,
or propose a test that should pass but instead fails.
This package uses the `testthat` package for testing functions.
Please see the [testthat website](https://testthat.r-lib.org) for more details.

## Bug fixing or adding new code

Independent or assigned code contributions are most welcome.
When writing new code, please follow
[standard R guidelines](https://www.r-bloggers.com/🖊-r-coding-style-guide/).
It can help to use packages such as `lintr`, `goodpractice` and `formatR`
to ensure these are followed.

Currently, commits can only be pushed to GitHub where they reference an existing issue.
If no issue exists for the code you have developed, please add an issue first before pushing.
Once the issue exists, you will need to mention the issue number (preceded by a hash symbol: #)
in the commit description:

` Resolved #31 by adding a new function that does things, also updated documentation `

Where the issue hash (i.e. #31) is preceded by
`resolve`, `resolves`, `resolved`, `close`, `closes`, `closed`, `fix`, `fixes`, or `fixed`
(capitalised or not),
Github will automatically updated the status of the issue(s) mentioned.

Our current syntactical standard is to mention the issue first and then
provide a short description of what the committed changes do
in relation to that issue.
Any ancillary changes can be mentioned after a comma.

## Documentation

A final way of contributing to the package is in developing the
vignettes/articles that illustrate the value added in the package.
Please contact me with any proposals here.

Please note that the `netrics` project is released with a
[Contributor Code of Conduct](CODE_OF_CONDUCT.md).
By contributing to this project, you agree to abide by its terms.

31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**Provide system information**
- OS: [e.g. MacOS Mojave 10.14.6]
- R version: [e.g. 3.5.3]
- netrics version: [e.g. 1.4.0]

**To Reproduce**
Please consider providing a [reprex](https://reprex.tidyverse.org) (a reproducible example),
or outline the steps taken to reproduce the behaviour, e.g.:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
If applicable, add screenshots to help explain your problem.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Additional context**
Add any other context about the problem here.
12 changes: 12 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
name: Documentation request
about: Create a report to help us improve
title: ''
labels: documentation
assignees: ''

---

**Name the function or functions that require further documentation here and in the title**

Please describe what is not clear in the current documentation that can be expanded upon.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: feature_request
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/test_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name: Test request
about: Create a report to help us improve
title: ''
labels: tests
assignees: ''

---

**Name the function or functions that require the tests here and in the title**
13 changes: 13 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Description

# Checklist:

- Documentation
- [ ] DESCRIPTION file version is bumped by the appropriate increment (major, minor, patch)
- [ ] Date in DESCRIPTION is correct
- [ ] Longer functions are commented inline or broken down into helper functions to help debugging
- PR form
- [ ] Title indicates expected version number
- [ ] PR description above and the NEWS.md file are aligned
- [ ] Description above itemizes changes under subsection titles, e.g. "## Data"
- [ ] Closed, fixed, or related issues are referenced and explained in the description above, e.g. "Fixed #0 by adding A"
74 changes: 74 additions & 0 deletions .github/workflows/prchecks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
on:
pull_request:
branches:
- main

name: Binary checks

jobs:

build:
name: Build for ${{ matrix.config.os }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- {os: macOS-latest, r: 'release', artifact_name: '*.tar.gz', asset_name: macOS}
- {os: windows-latest, r: 'release', artifact_name: '*.zip', asset_name: winOS}
- {os: ubuntu-latest, r: 'release', artifact_name: '*.tar.gz', asset_name: linuxOS}

env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
RSPM: ${{ matrix.config.rspm }}
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

steps:
- uses: actions/checkout@v2

- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}

- uses: r-lib/actions/setup-pandoc@v2

- uses: r-lib/actions/setup-r-dependencies@v2
with:
cache-version: 2
needs: check, build
extra-packages: |
any::rcmdcheck

- uses: r-lib/actions/check-r-package@v2
env:
_R_CHECK_FORCE_SUGGESTS_: false
with:
upload-snapshots: true

- name: Binary
run: |
pkgbuild::clean_dll()
binary <- pkgbuild::build(binary = TRUE, needs_compilation = TRUE, compile_attributes = TRUE)
dir.create("build")
file.copy(binary, "build")
shell: Rscript {0}

- name: Save binary artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.config.asset_name }}
path: build/

- name: Calculate code coverage
if: runner.os == 'macOS'
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: Rscript -e 'covr::codecov(token = Sys.getenv("CODECOV_TOKEN"))'

- name: Lint
run: lintr::lint_package()
shell: Rscript {0}

- name: Spell check
run: spelling::spell_check_package()
shell: Rscript {0}
Loading
Loading