Coder Social home page Coder Social logo

bnprks / polyglot-packaging-test Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 4.22 MB

Test for making R and Python packages in a single repo, depending on a shared C++ codebase

Home Page: https://bnprks.github.io/polyglot-packaging-test/

License: MIT License

C++ 4.24% Python 5.97% R 1.11% JavaScript 19.99% CSS 64.03% HTML 2.61% CMake 0.71% Shell 1.33%

polyglot-packaging-test's Introduction

Polyglot packaging test

This is a demo repository showcasing how to make a small C++ package with bindings in both R and Python. The key feature is that the code can be directly installed from the github source in both R and Python.

Python installation

pip install "git+https://github.com/bnprks/polyglot-packaging-test#subdirectory=python"

R installation

remotes::install_github("bnprks/polyglot-packaging-test/r")

Development guide

Helper scripts included for building docs and running tests. Within r, python, or cpp run bash scripts/run_tests.sh or bash scripts/build_docs.sh. Run from the root directory to run tests/docs for all languages in one command.

R

Dev requirements: install.packages(c("pkgdown", "devtools", "testthat"))

  • Documentation uses pkgdown
  • Tests use testthat

Python

Dev requirements: tox

  • Documentation uses Sphinx with PyData theme
  • Tests use pytest
  • Includes a helper file with the overal project home page, linking to C++, R, and Python docs.
  • tox handles virtualenv setup for tests + documentation

C++

Dev requirements: cmake, doxygen

VS Code editing extensions

  • Python: autoDocstring
  • C++: Doxygen Documentation Generator

polyglot-packaging-test's People

Contributors

bnprks avatar

Watchers

 avatar

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.