Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate and remove setup_cantera scripts #135

Closed
bryanwweber opened this issue Feb 7, 2022 · 5 comments · Fixed by Cantera/cantera#1295
Closed

Deprecate and remove setup_cantera scripts #135

bryanwweber opened this issue Feb 7, 2022 · 5 comments · Fixed by Cantera/cantera#1295
Labels
documentation Improvements or additions to documentation work-in-progress An enhancement that someone is currently working on

Comments

@bryanwweber
Copy link
Member

bryanwweber commented Feb 7, 2022

Abstract

Deprecate and remove the two setup_cantera and setup_cantera.csh scripts. Deprecation to occur in v2.6, removal thereafter.

Motivation

I don't think anyone uses these scripts. They pose a minor maintenance burden on SConstruct and they possibly encourage old-school practices such as exporting PYTHONPATH to the environment.

Possible Solutions

  1. Deprecate both scripts by printf statements
  2. Remove them after v2.6 is released

Reversion plan

This issue also exists to collect feedback from folks who are using those scripts. If you use the setup_cantera scripts, please leave a comment here indicating how you use the script! Thank you 😄


The complete setup_cantera script is copied below. The list here gives advice for each of the environment variables previously set in the script.

  • LD_LIBRARY_PATH: The default is for Cantera to install libraries into /usr/local/lib which is part of the default search path for the linker and you don't need to modify LD_LIBRARY_PATH. This environment variable controls where the linker finds libraries. It should be handled by the SConstruct/Makefile/CMAKE configuration for each of the examples, and you should copy one of those example files if you need this variable.
  • PKG_CONFIG_PATH: Same as LD_LIBRARY_PATH but applies to the pkgconfig program instead
  • PYTHON_CMD: This environment variable is used to look up which version of Python should be used to run ctml_writer to convert CTI to CTML input internally. With Cantera 2.6, these input types are deprecated and will be removed after Cantera 3.0. The replacement input file format, YAML, does not require a separate converter so doesn't need Python for this purpose.
  • PATH: Cantera no longer installs binaries as such. All the conversion scripts for input files are installed as part of the full or minimal Python interfaces and those installations are handled by pip after Add package workflow cantera#1158. pip should install things into a place that is on your PATH, or if not, it will warn you to add that location to your PATH.
  • MATLABPATH: We recommend that you configure your startup.m script to add the Cantera toolbox location.
  • PYTHONPATH: Adds a search location for Python packages. Highly recommended not to use in a case where you're installing the Python package; instead, let pip install to a location that is already on Python's default search path.

Hope that helps!

The full script
if [ -z $LD_LIBRARY_PATH ]; then
    LD_LIBRARY_PATH=@ct_libdir@
else
    LD_LIBRARY_PATH=@ct_libdir@:$LD_LIBRARY_PATH
fi
export LD_LIBRARY_PATH

if [ -z $PKG_CONFIG_PATH ]; then
    PKG_CONFIG_PATH=@ct_libdir@/pkgconfig
else
    PKG_CONFIG_PATH=@ct_libdir@/pkgconfig:$PKG_CONFIG_PATH
fi
export PKG_CONFIG_PATH

PYTHON_CMD=@python_cmd@
export PYTHON_CMD

PATH=@ct_bindir@:$PATH
export PATH

if [ "@python_cmd@" != "`which python`" ]; then
   alias ctpython=@python_cmd@
fi

if [ "@matlab_toolbox@" = "y" ]; then
    if [ -z $MATLABPATH ]; then
        MATLABPATH=@ct_matlab_dir@:@ct_matlab_dir@/1D
    else
        MATLABPATH=$MATLABPATH:@ct_matlab_dir@:@ct_matlab_dir@/1D
    fi
    export MATLABPATH
fi

if [ "@python_module_loc_sc@" != "" ]; then
    if [ -z $PYTHONPATH ]; then
        PYTHONPATH=@python_module_loc_sc@
    else
        PYTHONPATH=@python_module_loc_sc@:$PYTHONPATH
    fi
fi

export PYTHONPATH
@bryanwweber bryanwweber added the feature-request New feature request label Feb 7, 2022
bryanwweber added a commit to bryanwweber/cantera that referenced this issue Feb 7, 2022
bryanwweber added a commit to bryanwweber/cantera that referenced this issue Feb 7, 2022
bryanwweber added a commit to Cantera/cantera that referenced this issue Feb 8, 2022
* [Shell] Deprecate shell setup scripts

Related to Cantera/enhancements#135

* Update setup_cantera.csh.in

* Update setup_cantera.in
@bryanwweber bryanwweber added documentation Improvements or additions to documentation work-in-progress An enhancement that someone is currently working on and removed feature-request New feature request labels Feb 8, 2022
@shunn337
Copy link

I just installed 2.6.0b1 and saw this warning message. I've historically sourced cantera_setup from the shell profile as a convenient way to set env variables on systems where I build cantera from source. If the setup script is deprecated, it would still be helpful to summarize what env variables are relevant to include all the cantera modules and libraries. For example, you could print best practices for configuring the env as part of scons install. I install cantera so infrequently that I still find a reminder about this to be useful.

@bryanwweber
Copy link
Member Author

bryanwweber commented Mar 25, 2022

Thanks @shunn337! I edited the first post with some advice. The short answer is that you shouldn't have to do much environment configuration anymore, unless you're doing something custom/more complicated, in which case, it's more challenging to give useful advice.

@ischoegl
Copy link
Member

ischoegl commented Apr 4, 2022

This appears to be relevant to the tutorials on Compiling C++ Programs ... without having paths set, it becomes a little convoluted to have everything set up properly.

@speth
Copy link
Member

speth commented Apr 4, 2022

In what way? The only thing I see on that page that is potentially affected is the setting of PKG_CONFIG_PATH.

@ischoegl
Copy link
Member

ischoegl commented Apr 4, 2022

I'm actually not exactly sure what way. I usually let scons take care of things (i.e. for examples), but failed to set up a simple g++ example within my conda-based tool-chain. pkg-config certainly failed to find things. As I since have tried to set PKG_CONFIG_PATH manually and still failed, there may be other issues though ... an error about a missing cantera.pc is suspicious but would certainly not be fixed by having setup_config.

PS: I agree that cantera_setup should no longer be necessary; the main issue is imho Cantera/cantera-website#191

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation work-in-progress An enhancement that someone is currently working on
Projects
None yet
4 participants