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

Migrate to Packajoozle? #64

Open
apjanke opened this issue Mar 22, 2019 · 6 comments
Open

Migrate to Packajoozle? #64

apjanke opened this issue Mar 22, 2019 · 6 comments
Labels
enhancement New feature or request

Comments

@apjanke
Copy link
Owner

apjanke commented Mar 22, 2019

Testify carries around its own hacked version of the pkg package installation code, so it can capture build logs. Maybe it should just migrate to using Packajoozle for this. That would be good testing exercise for Packajoozle, too.

@apjanke apjanke added the enhancement New feature or request label Mar 22, 2019
@apjanke
Copy link
Owner Author

apjanke commented Mar 24, 2019

Yes, this is a good idea. I just started work on it, and it's already helped me shake out a couple bugs in Packajoozle. And it removes a whole bunch of code copied from pkg into Testify.

@apjanke
Copy link
Owner Author

apjanke commented Mar 24, 2019

@apjanke
Copy link
Owner Author

apjanke commented Mar 24, 2019

Well, I've got all the objects migrated over, except now Octave goes all crazy and loses functions like dir, ls, and so on, and crashes.

pkj: installing: fpl 1.3.5
Installed fpl 1.3.5 from Octave Forge to user pkg dir
For information about changes from previous versions of the fpl package, run 'news fpl'.
testify.ForgePkgTester: No build logs for fpl
error: value on right hand side of assignment is undefined
error: called from
    find_file_droppings at line 271 column 9
    install_and_test_forge_pkg at line 305 column 24
    install_and_test_forge_pkgs at line 252 column 13
    install_and_test_forge_pkgs at line 48 column 3
stopped in /Users/janke/local/repos/octave-testify/inst/+testify/+internal/ForgePkgTester.m at line 271
271:       d = dir;
debug> diary off
debug> diary on
debug> which dir
debug> dir
debug> which lis
debug> which ls
debug> which ver
debug> ver
debug>

https://gist.github.com/apjanke/210e7efcd492badcfc4a7001499a648c

Happens under both Octave 4.4.1 and Octave 5.1.0.

@apjanke
Copy link
Owner Author

apjanke commented Mar 24, 2019

And it's worse under Octave default. It can't even find testify.internal.Util's static methods.

$ octave-default
GNU Octave, version 6.0.0
Copyright (C) 2019 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.

Octave was configured for "x86_64-apple-darwin18.2.0".

Additional information about Octave is available at https://www.octave.org.

Please contribute if you find this software useful.
For more information, visit https://www.octave.org/get-involved.html

Read https://www.octave.org/bugs.html to learn how to submit bug reports.
For information about changes from previous versions, type 'news'.

octave:1> addpath('~/local/repos/octave-testify/inst'); addpath('~/local/repos/octave-packajoozle/inst')
octave:2> dbstop if error
octave:3> testify.install_and_test_forge_pkgs
error: no such method or property `testify_data_dir'
error: called from
    install_and_test_forge_pkgs at line 43 column 13
stopped in /Users/janke/local/repos/octave-testify/inst/+testify/install_and_test_forge_pkgs.m at line 43
43:   pkgtester = testify.internal.ForgePkgTester;
debug> dbstack
stopped in:

  --> install_and_test_forge_pkgs at line 43 [/Users/janke/local/repos/octave-testify/inst/+testify/install_and_test_forge_pkgs.m]
debug> testif.internal.Util.testify_data_dir
error: 'testif' undefined near line 1 column 1
error: called from
    install_and_test_forge_pkgs at line 43 column 13
debug> testify.internal.Util.testify_data_dir
error: no such method or property `testify_data_dir'
error: called from
    install_and_test_forge_pkgs at line 43 column 13
debug> testify.internal.Util.safe_hostname
error: no such method or property `safe_hostname'
error: called from
    install_and_test_forge_pkgs at line 43 column 13
debug> path

Octave's search path contains the following directories:

.
/Users/janke/local/repos/octave-packajoozle/inst/shims/all
/Users/janke/local/repos/octave-packajoozle/inst
/Users/janke/local/repos/octave-testify/inst
/Users/janke/Dropbox/computer/data/Documents/octave
/usr/local/Cellar/octave-default/default/lib/octave/6.0.0/site/oct/x86_64-a

@apjanke
Copy link
Owner Author

apjanke commented Apr 19, 2019

Note: This will make integrating Testify into core Octave harder, because they're probably not going to pull in Packajoozle any time soon.

What should probably happen is that Testify should become a smaller core testing library thing, and the stuff that involves actually downloading and installing packages or other things that rely on Packajoozle should be broken out to a separate package that depends on both Packajoozle and Testify. "Testajoozle"?

@apjanke
Copy link
Owner Author

apjanke commented Dec 31, 2019

Or maybe Testify should optionally support, but not require, Packajoozle. And it should use pkg/pkj just for discovery of where the tested packages are located, but not do any package installation itself. Then, conversely, Packajoozle, which knows more about its "world" setup and the ability to do isolated package installations, could optionally support, but not require, Testify, and it could supply a function to download and install a certain set of packages, possibly into a clean "world" or "place", and run tests on them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant