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

Add command line option --bare to start GAP without even needed packages (developer tool) #2952

Merged
merged 1 commit into from
Aug 19, 2019

Conversation

markuspf
Copy link
Member

This requries (and includes) #2950.

@ChrisJefferson
Copy link
Contributor

While it's yet another .travis.yml line, do we want to test GAP works with --bare? (how well does it work? Does it pass testinstall for example?)

@markuspf markuspf added kind: new feature release notes: to be added PRs introducing changes that should be (but have not yet been) mentioned in the release notes labels Oct 30, 2018
@markuspf
Copy link
Member Author

Not all tests work (but a suprising number does!). I'll look at adding a "testbare" target.

@hulpke
Copy link
Contributor

hulpke commented Nov 5, 2018

What is the difference between --bare and -N (for noautoload)?

@markuspf
Copy link
Member Author

markuspf commented Nov 9, 2018

@hulpke -N disables hidden implications, I assume you mean -A (no autoloading of suggested packages? --bare does not load any packages, in particular it does not load GAPDoc which is currently the only NeededPackage.
Did -N use to do something different from what it does now?

@olexandr-konovalov
Copy link
Member

If you will look at "testbare" target, you may also start GAP there with -O to disable loading obsoletes. This will help to check they are not reappearing in the GAP library.

@codecov
Copy link

codecov bot commented Jan 22, 2019

Codecov Report

Merging #2952 into master will increase coverage by 0.21%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master    #2952      +/-   ##
==========================================
+ Coverage   84.55%   84.76%   +0.21%     
==========================================
  Files         698      687      -11     
  Lines      345303   335870    -9433     
==========================================
- Hits       291963   284700    -7263     
+ Misses      53340    51170    -2170
Impacted Files Coverage Δ
lib/system.g 78.44% <66.66%> (+1.56%) ⬆️
src/compiled.h 0% <0%> (-100%) ⬇️
lib/csetpc.gi 42.69% <0%> (-45.51%) ⬇️
src/libgap-api.c 20.16% <0%> (-45.48%) ⬇️
lib/gprdpc.gi 45.74% <0%> (-42.2%) ⬇️
lib/autsr.gi 35.35% <0%> (-20.02%) ⬇️
src/hpc/aobjects.h 41.66% <0%> (-18.34%) ⬇️
src/sctable.c 70.14% <0%> (-17.46%) ⬇️
src/gapstate.h 71.42% <0%> (-14.29%) ⬇️
lib/gpfpiso.gi 64.14% <0%> (-14.08%) ⬇️
... and 379 more

@coveralls
Copy link

coveralls commented Jan 22, 2019

Coverage Status

Coverage decreased (-0.0003%) to 84.299% when pulling 3720c08 on markuspf:start-gap-bare into 3667249 on gap-system:master.

Copy link
Member

@fingolfin fingolfin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seem fine to me (I also rebased this to see if it still builds fine, and that revealed that the first of it was already merged).

Copy link
Member

@olexandr-konovalov olexandr-konovalov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will be useful to use --bare in one of the tests or in a separate Travis test, to ensure that we exercise it and that GAP still starts with it. This will also allow to start GAP with -O to disable loading obsoletes to prevent them crawling into the GAP library again.

@stevelinton
Copy link
Contributor

What is the reasoning for this? If a package is "needed" GAP is allowed to fail arbitrarily badly without it, including not loading the library. If you need to start GAP without GAPDoc for some reason, then maybe GAPDoc is not needed, just recommended for interactive sessions or something?

Copy link
Member

@wilfwilson wilfwilson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this PR and think that it should be merged as-is.

I'll note that there are currently four needed packages: GAPDoc, as well as primgrp, smallgrp, and transgrp.

From my point of view, the purpose of --bare is to easily let one play around and see what happens without some or all of these packages loaded. That will help us (in time) work out the answer to @stevelinton's question of whether we actually need each of the required packages. It stops us having to hack around too much to explore these questions.

I don't think that we need a Travis test for the --bare option. It's not a user-facing feature, and as @stevelinton mentioned above, GAP is allowed to fail arbitrarily badly without its required packages. So I'm not sure what we'd be testing: if using --bare suddenly started to fail loading GAP properly, I don't think that's a reason for our Travis tests to fail. That would implicitly require any PR authors to take care that they don't break --bare, even though we shouldn't guarantee that --bare works. That doesn't seem fair.

In any case, @markuspf seems to be no longer getting involved in GAP development, so if people want to require changes to this then we'll have to do it ourselves. If that's not forthcoming, then we either have to merge as-is, or close.

(I just rebased this on today's master branch, and --bare loads GAP fine.)

@stevelinton
Copy link
Contributor

I'm fine with this, but as @wilfwilson says, it should not be user-facing, and for the same reason should not be part of the tests that get run automatically on Pull Requests unless we want to change the rules on what it means for a package to be needed. This is a specialist feature for debugging aspects of library and package loading.

@wilfwilson
Copy link
Member

@stevelinton would you feel if the text describing the --bare option (currently Start GAP without loading any packages) included some kind of disclaimer? For example:

Start GAP without loading any packages (experimental)

Or something of that kind?

@stevelinton
Copy link
Contributor

Something of the kind. experimental suggests that it might be something we plan to roll out though. How about

Attempt to start GAP without even needed packages (developer tool)

Allow starting GAP without any packages
@wilfwilson
Copy link
Member

wilfwilson commented Aug 19, 2019

I prefer that, I've made the change (and rebased).

@wilfwilson wilfwilson merged commit 112c307 into gap-system:master Aug 19, 2019
@wucas
Copy link
Contributor

wucas commented Aug 21, 2019

@wilfwilson If this is not user-facing are release notes still needed?

@wilfwilson wilfwilson changed the title Add command line option --bare to start GAP without any packages Add command line option --bare to start GAP without even needed packages (developer tool) Aug 21, 2019
@wilfwilson
Copy link
Member

@wucas I think so. I would recommend using the title of this PR (which I just updated) as the text for the release notes.

@wucas wucas added release notes: added PRs introducing changes that have since been mentioned in the release notes and removed release notes: to be added PRs introducing changes that should be (but have not yet been) mentioned in the release notes labels Aug 21, 2019
@olexandr-konovalov olexandr-konovalov added this to the GAP 4.11.0 milestone Feb 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: new feature release notes: added PRs introducing changes that have since been mentioned in the release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants