stan-dev / stan-dev/cmdstan

improve CmdStan installation process: instructions, scripts, package installers

Open
#973 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature release/packaging user experience windows
Dominant language
C++
Stars
238
Forks
106
Avg merge
2h 29m
Merged PRs (30d)
6

Description

Summary:

This issue is a place to discuss pain points and solutions for the problem of installing a CmdStan release tar.gz file.

This solution doesn't include installing CmdStan from GitHub; although documentation for that process should be reviewed and corrected/updated/expanded as needed.

Description:

Pain points:

  • users don't have system install permissions
  • users don't have requisite toolchain installed on their system.
  • OS updates cause problems for existing installation by changing the toolchain
  • CmdStan library and binaries take non-trivial time to compile - installation on a wimpy machine is slow.
  • In order to speed up Stan model compile time, libraries, headers, and command.o are precompiled by the Makefile build task; but the latter two need to be recompiled if threading or processing lib changes.

Components of a solution:

  1. Provide developer toolchain: c++ compiler + GNU-make + unix utilities used by Makefile
    • MacOSX: run xcode-select vs. install xcode command line tools in Stan-specific place
    • Linux: do all versions of Linux have GNU-make? if so, clang binaries as above
    • Windows - fork RTools and build Stan-specific version
  2. Provide pre-compiled binaries for CmdStan release, assuming vanilla threading and processor
  3. Provide user with install options:
    • instructions
    • script
    • pkg installer utility

Platforms we need to support:

  • MacOS - how far back?
  • Linux: redhat (RHEL, Fedora, CentOS - rpm package manager), debian (Ubuntu - dpkg manager)
  • Windows 7, 10

Stan Makefile calls to shell and os utilities: echo,uname,expr,where,find,curl, also need Python to run tests

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the CmdStan Makefile, its build task, and the listed shell utilities and Python test requirements. Review the release tar.gz installation process and the platform-specific toolchain options; this issue does not define a single finished change, so completion would require an agreed installation approach and supported-platform scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python, shell
Domain
build-system, cli, developer-experience
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.