SMTK issueshttps://gitlab.kitware.com/cmb/smtk/-/issues2022-03-24T18:15:45-04:00https://gitlab.kitware.com/cmb/smtk/-/issues/469SMTK build error: VTK::ViewsInfovis dependency is missing for vtkSMTKSourceExt2022-03-24T18:15:45-04:00Nate deVelderSMTK build error: VTK::ViewsInfovis dependency is missing for vtkSMTKSourceExt
Hi! This might be an easy fix, but I'm trying to do a spack build of CMB, and running into a VTK error when building the latest master of SMTK. I've built paraview 5.10.0 for this, but maybe something changed in the vtk modules that ...
Hi! This might be an easy fix, but I'm trying to do a spack build of CMB, and running into a VTK error when building the latest master of SMTK. I've built paraview 5.10.0 for this, but maybe something changed in the vtk modules that SMTK doesn't like? i.e. "The VTK::ViewsInfovis dependency is missing for vtkSMTKSourceExt."
Does anyone have any tips/thoughts on getting past this? Should I not be using the latest versions of both paraview and smtk? Did I do something else wrong? Thanks for your help!
45 -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
46 -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
47 -- Performing Test COMPILER_HAS_DEPRECATED_ATTR
48 -- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
49 -- Looking for C++ include functional
50 -- Looking for C++ include functional - found
>> 51 CMake Error at /projects/wind/cmb/spack-manager/spack/opt/spack/linux-rhel7-cascadelake/gcc-9.3.1/paraview-5.10.0-4bfjidivjeerq6ayuv276qkgv4nsiqs6/lib64/cmake/paraview-5.10/vtk/vtkModule.cmake:2512 (
message):
52 The VTK::ViewsInfovis dependency is missing for vtkSMTKSourceExt.
53 Call Stack (most recent call first):
54 smtk/extension/vtk/CMakeLists.txt:14 (vtk_module_build)
55
56
57 -- Configuring incomplete, errors occurred!https://gitlab.kitware.com/cmb/smtk/-/issues/468Change to display volume surfaces broke AEVA widgets2022-03-24T13:47:22-04:00Aron HelserChange to display volume surfaces broke AEVA widgetsAeva is no longer able to show data for its image 3D widgets, after https://gitlab.kitware.com/cmb/smtk/-/merge_requests/2682 was added to SMTK.
Load either dataset in "aeva-session/data/itk/" and select the "scalars" volume, click the ...Aeva is no longer able to show data for its image 3D widgets, after https://gitlab.kitware.com/cmb/smtk/-/merge_requests/2682 was added to SMTK.
Load either dataset in "aeva-session/data/itk/" and select the "scalars" volume, click the 3-slice toolbar button. Nothing is shown. Expect a 3-slice widget to show with draggable slice planes.https://gitlab.kitware.com/cmb/smtk/-/issues/467Crash on exit in Qt label update2022-03-15T15:36:05-04:00Aron HelserCrash on exit in Qt label updateI'm occasionally seeing a crash on exit in aevaCMB, but the call stack is pointing to smtk. It appears to be trying to update a label after the Qt object has been deleted or made invalid.
I think the crash happens when the operation too...I'm occasionally seeing a crash on exit in aevaCMB, but the call stack is pointing to smtk. It appears to be trying to update a label after the Qt object has been deleted or made invalid.
I think the crash happens when the operation tool parameters panel has focus when I exit.
```
smtk/extension/qt/qtReferenceItem.cxx:49
49 lbl->setText(txt);
```
Full trace:
```
45 0x55555556739a /mnt/projects/cmb/sb/build/install/bin/aevaCMB(+0x1339a) [0x55555556739a]
44 0x7fffe618ec8e __libc_start_main + 238
43 0x7fffe61b012a /lib/x86_64-linux-gnu/libc.so.6(+0x4312a) [0x7fffe61b012a]
42 0x7fffe61b0031 /lib/x86_64-linux-gnu/libc.so.6(+0x43031) [0x7fffe61b0031]
41 0x7fffb2925c5c smtkPQComponentsPluginPlugin::~smtkPQComponentsPluginPlugin() + 194
40 0x7ffff3bc00fe QObject::~QObject() + 958
39 0x7ffff3bb574b QObjectPrivate::deleteChildren() + 203
38 0x7fffb29bdb4e pqSMTKAppComponentsAutoStartImplementation::~pqSMTKAppComponentsAutoStartImplementation() + 24
37 0x7fffb29bdb02 pqSMTKAppComponentsAutoStartImplementation::~pqSMTKAppComponentsAutoStartImplementation() + 96
36 0x7fffb293254a pqSMTKAppComponentsAutoStart::~pqSMTKAppComponentsAutoStart() + 24
35 0x7fffb293252a pqSMTKAppComponentsAutoStart::~pqSMTKAppComponentsAutoStart() + 72
34 0x7ffff3bc00fe QObject::~QObject() + 958
33 0x7ffff3bb574b QObjectPrivate::deleteChildren() + 203
32 0x7ffff78b41b0 pqSMTKBehavior::~pqSMTKBehavior() + 24
31 0x7ffff78b4151 pqSMTKBehavior::~pqSMTKBehavior() + 167
30 0x7ffff78b4aa3 pqSMTKBehavior::removeManagerFromServer(pqServer*) + 275
29 0x7fffed6d9975 smtk::resource::Manager::clear() + 227
28 0x7fffed6dde64 /mnt/projects/cmb/sb/build/install/bin/../lib/libsmtkCore.so(+0xa5ce64) [0x7fffed6dde64]
27 0x7ffff57a3f50 std::function<void (smtk::resource::Resource const&, smtk::resource::EventType)>::operator()(smtk::resource::Resource const&, smtk::resource::EventType) const + 96
26 0x7fffb293ac07 /mnt/projects/cmb/sb/build/install/bin/../lib/smtk-22.02.100/smtkPQComponentsPlugin/smtkPQComponentsPlugin.so(+0x1b5c07) [0x7fffb293ac07]
25 0x7fffb29397c7 /mnt/projects/cmb/sb/build/install/bin/../lib/smtk-22.02.100/smtkPQComponentsPlugin/smtkPQComponentsPlugin.so(+0x1b47c7) [0x7fffb29397c7]
24 0x7fffb2921bbc pqSMTKCallObserversOnMainThreadBehavior::resourceEvent(QString, int, pqSMTKCallObserversOnMainThreadBehavior::QPrivateSignal) + 142
23 0x7ffff3bc24f7 /mnt/projects/cmb/sb/build/install/bin/../lib/libQt5Core.so.5(+0x2ea4f7) [0x7ffff3bc24f7]
22 0x7fffb293b339 /mnt/projects/cmb/sb/build/install/bin/../lib/smtk-22.02.100/smtkPQComponentsPlugin/smtkPQComponentsPlugin.so(+0x1b6339) [0x7fffb293b339]
21 0x7fffb293b6a9 /mnt/projects/cmb/sb/build/install/bin/../lib/smtk-22.02.100/smtkPQComponentsPlugin/smtkPQComponentsPlugin.so(+0x1b66a9) [0x7fffb293b6a9]
20 0x7fffb293b7e0 /mnt/projects/cmb/sb/build/install/bin/../lib/smtk-22.02.100/smtkPQComponentsPlugin/smtkPQComponentsPlugin.so(+0x1b67e0) [0x7fffb293b7e0]
19 0x7fffb2939962 /mnt/projects/cmb/sb/build/install/bin/../lib/smtk-22.02.100/smtkPQComponentsPlugin/smtkPQComponentsPlugin.so(+0x1b4962) [0x7fffb2939962]
18 0x7fffb293d0a2 std::enable_if<!std::is_integral<decltype (((declval<std::function<void (smtk::resource::Resource const&, smtk::resource::EventType)> >)())({parm#1}...))>::value, decltype (((declval<std::function<void (smtk::resource::Resource const&, smtk::resource::EventType)> >)())({parm#1}...))>::type smtk::common::Observers<std::function<void (smtk::resource::Resource const&, smtk::resource::EventType)>, false>::callObserversDirectly<smtk::resource::Resource&, smtk::resource::EventType>(smtk::resource::Resource&, smtk::resource::EventType&&) + 270
17 0x7ffff57a3f50 std::function<void (smtk::resource::Resource const&, smtk::resource::EventType)>::operator()(smtk::resource::Resource const&, smtk::resource::EventType) const + 96
16 0x7fffedc1c7b4 /mnt/projects/cmb/sb/build/install/bin/../lib/libsmtkCore.so(+0xf9b7b4) [0x7fffedc1c7b4]
15 0x7fffedc15f7f /mnt/projects/cmb/sb/build/install/bin/../lib/libsmtkCore.so(+0xf94f7f) [0x7fffedc15f7f]
14 0x7fffedbf680f smtk::view::ComponentPhraseModel::handleResourceEvent(smtk::resource::Resource const&, smtk::resource::EventType) + 99
13 0x7fffedbf7743 smtk::view::ComponentPhraseModel::processResource(std::shared_ptr<smtk::resource::Resource> const&, bool) + 703
12 0x7fffedc19a87 smtk::view::PhraseModel::updateChildren(std::shared_ptr<smtk::view::DescriptivePhrase>, std::vector<std::shared_ptr<smtk::view::DescriptivePhrase>, std::allocator<std::shared_ptr<smtk::view::DescriptivePhrase> > >&, std::vector<int> const&) + 2067
11 0x7fffedc1bd85 smtk::view::PhraseModel::trigger(std::shared_ptr<smtk::view::DescriptivePhrase>, smtk::view::PhraseModelEvent, std::vector<int> const&, std::vector<int> const&, std::vector<int> const&) + 391
10 0x7fffedc2096c /mnt/projects/cmb/sb/build/install/bin/../lib/libsmtkCore.so(+0xf9f96c) [0x7fffedc2096c]
9 0x7fffedc23347 /mnt/projects/cmb/sb/build/install/bin/../lib/libsmtkCore.so(+0xfa2347) [0x7fffedc23347]
8 0x7fffedc1e341 /mnt/projects/cmb/sb/build/install/bin/../lib/libsmtkCore.so(+0xf9d341) [0x7fffedc1e341]
7 0x7ffff575ee04 /mnt/projects/cmb/sb/build/install/bin/../lib/libsmtkQtExt.so(+0x33de04) [0x7ffff575ee04]
6 0x7ffff575af2b /mnt/projects/cmb/sb/build/install/bin/../lib/libsmtkQtExt.so(+0x339f2b) [0x7ffff575af2b]
5 0x7ffff575e5f4 smtk::extension::qtReferenceItem::checkRemovedComponents(std::shared_ptr<smtk::view::DescriptivePhrase>, smtk::view::PhraseModelEvent, std::vector<int> const&, std::vector<int> const&, std::vector<int> const&) + 1394
4 0x7ffff575daf2 smtk::extension::qtReferenceItem::updateSynopsisLabels() const + 280
3 0x7ffff5758d89 /mnt/projects/cmb/sb/build/install/bin/../lib/libsmtkQtExt.so(+0x337d89) [0x7ffff5758d89]
2 0x7ffff4beaa65 QLabel::setText(QString const&) + 53
1 0x7ffff3a15f0a operator==(QString const&, QString const&) + 10
0 0x7fffe70b4980 /lib/x86_64-linux-gnu/libpthread.so.0(+0x12980) [0x7fffe70b4980]
(8359.096s) [paraview ] :0 FATL| Signal: SIGSEGV
```https://gitlab.kitware.com/cmb/smtk/-/issues/228pybind type_casters might be able to be simplified + genericized?2022-03-15T08:16:34-04:00Eric Cousineaupybind type_casters might be able to be simplified + genericized?A colleague (Duy Nguyen) and myself were interested in looking at VTK + pybind11 interop.
Someone else ended up posting a StackOverflow within 24 hours of our interest, and that user pointed to this code base as a starting point, but ra...A colleague (Duy Nguyen) and myself were interested in looking at VTK + pybind11 interop.
Someone else ended up posting a StackOverflow within 24 hours of our interest, and that user pointed to this code base as a starting point, but ran into a snag when trying to use it:
https://stackoverflow.com/questions/54871216/pybind11-return-c-class-with-an-existing-python-binding-to-python
I posted this solution: https://stackoverflow.com/a/54905431/7829525
The takeaways:
* Using macros to instantiate the `type_caster` specializations can be replaced by generic templates + SFINAE. (Should be C++11-compatbile, but I, uh, didn't test it fully)
* VTK's Python utilities seems to (magically?) handle ownership sharing well, so adding `type_caster`s for `vtkSmartPointer` and `vtkNew` is relatively simple - would be nice to incorporate here or elsewhere as a Kitware recipe.
Perhaps some form of the code I rewrote could be incorporated here, so that future people looking into this code base have a simpler implementation to work off of?
I'll also see if I can link this Wiki article to the StackOverflow post and the SMTK code, as either of those seem better than what the article mentioned too?
https://vtk.org/Wiki/Example_from_and_to_python_convertershttps://gitlab.kitware.com/cmb/smtk/-/issues/455Fix C++11 build error related to VersionNumber.cxx2022-02-25T16:44:41-05:00Jean-Christophe Fillion-RobinFix C++11 build error related to VersionNumber.cxxThe following error is reported when building SMTK on system providing C++11 prior to the CWG 1270 revision:
```
/path/to/smtk/smtk/common/VersionNumber.cxx:22:34: error: array must be initialized with a brace-enclosed initializer
...The following error is reported when building SMTK on system providing C++11 prior to the CWG 1270 revision:
```
/path/to/smtk/smtk/common/VersionNumber.cxx:22:34: error: array must be initialized with a brace-enclosed initializer
: std::array<int, 3>{ -1, 0, 0 }
^
```
References:
* https://en.cppreference.com/w/cpp/container/array#Example
* smtk commit https://gitlab.kitware.com/cmb/smtk/-/commit/93bb47168eef7202bf1f2a9b512826a5c4981df9 introducing the "regression"https://gitlab.kitware.com/cmb/smtk/-/issues/460Add API to pqSMTKAttributePanel2022-01-28T00:05:03-05:00David ThompsonAdd API to pqSMTKAttributePanel... to display a given view configuration instead of the top-level view.... to display a given view configuration instead of the top-level view.Robert M. O'BaraRobert M. O'Barahttps://gitlab.kitware.com/cmb/smtk/-/issues/461Modelbuilder displays model differently when loaded directed vs in project2022-01-28T00:04:22-05:00John TourtellottModelbuilder displays model differently when loaded directed vs in projectWhen a project is loaded with a model resource, that resource is displayed at zoomed out range compared to when the same model resource file is loaded directly. I created a project containing one model resource (pillbox4.gen) to illustra...When a project is loaded with a model resource, that resource is displayed at zoomed out range compared to when the same model resource file is loaded directly. I created a project containing one model resource (pillbox4.gen) to illustrate.
When the project resource is loaded:
<img src="/uploads/eb9c834aee49d945d87cf60d5e76a490/load-project-resource.png" width="50%" height="50%" />
But when the model resource is loaded directly:
<img src="/uploads/30a61abfe7528b439184228f79f6641e/load-model-resource.png" width="50%" height="50%" />
To reproduce
1. Use this script to build a project resource containing a model: [make_project.py](/uploads/37e6bc2747c3f9e4752e6d12c570cbac/make_project.py). Specify a model file (that vtk session can import) and a project directory. I use the directory name "example"
2. In modelbuilder, use "File => Open" to open the smtk file in the project directory. In my case, the filename is 'example.project.smtk'.
3. Then use "File => Open" to open the model resource. That file is in the project directory, in a `resources` subdirectory with a name of the form model-<UUID>.smtk.https://gitlab.kitware.com/cmb/smtk/-/issues/346Refactor descriptive phrase badges2022-01-26T11:37:25-05:00David ThompsonRefactor descriptive phrase badgesWe currently have a fixed set of icons that _may_ appear. We want it to be programmable.
At least these classes need to change:
+ smtk/view/PhraseContent (and subclasses)
+ smtk/extension/qt/qtDescriptivePhraseModel (`data()` method)
+ ...We currently have a fixed set of icons that _may_ appear. We want it to be programmable.
At least these classes need to change:
+ smtk/view/PhraseContent (and subclasses)
+ smtk/extension/qt/qtDescriptivePhraseModel (`data()` method)
+ smtk/extension/qt/qtDescriptivePhraseDelegate (`paint()`, `determineAction()`, `editorEvent()`)
+ smtk/extension/paraview/appcomponents/pqSMTKResourceBrowser (`panelPhraseDecorator()`)
[Removing decorator pattern] If we keep the decorator pattern we use with PhraseContent, then VisibilityPhraseContent in particular will need to change; it currently overrides a fixed badge (the visibility icon). It will need to register a new badge. Since different phrases within the same view may have different numbers of badges, we do _not_ want badges to be registered with a fixed integer index. Instead, we would like badges to provide a role (string or hash of a string). Then, applications would configure the qtDescriptivePhraseDelegate with a comparator that would order the badges by sorting those roles.
[Single role that returns a list of badges]
Finally, we need to create an indexing scheme that `QAbstractItemModel::data(const QModelIndex& idx, int role)` would use for `role` to allow the qtDescriptivePhraseDelegate to ask for each badge's visual attributes. The current fixed list of roles would need to be replaced with a scheme like:
+ NumberOfBadges
+ TitleText
+ TitleTextEditable
+ SubtitleText
+ SubtitleTextEditable
+ BadgeName (text string for user presentation)
+ BadgeHash (integer for comparison/layout)
+ BadgeIconForLightBackground
+ BadgeIconForDarkBackground
+ BadgeBackgroundColor
+ BadgeAction (this could be a bool indicating the badge is clickable, or it could be a QAction to invoke when the icon is clicked)
+ RoleOffset
Then, if you wanted to print out badge names, you could:
```c++
QAbstractItemModelIndex idx;
int numberOfBadges = idx.data(NumberOfBadges).toInt();
for (int ii = 0; ii < numberOfBadges; ++ii)
{
std::cout << "Badge " << ii << " " << idx.data(BadgeName + ii * (RoleOffset - NumberOfBadges)).toStdString() << "\n";
}
```
We could have qtDescriptivePhraseDelegate (which inherits QStyledItemDelegate) accept an ordering as a vector of all possible `BadgeName` values across all phrases and their decorations:
```c++
auto badgeOrder{"visibility", "colorAndType", "resourceLocked", "resourceNeedsSaving", "missingBoundaryConditions"};
qtDescriptivePhraseDelegate* painter;
painter->setBadgeOrder(badgeOrder);
```
We might have the `smtk::view::Manager` track a list of registered badge names and desired orderings so that configuration could be handled automatically.Aron HelserAron Helserhttps://gitlab.kitware.com/cmb/smtk/-/issues/445Modelbuilder fails to close model resource2021-12-31T09:07:30-05:00John TourtellottModelbuilder fails to close model resourceTo reproduce with modelbuilder:
1. Load this model resource [test2d-model.smtk](/uploads/24a82a443e7db07a2ad776834cb63b3c/test2d-model.smtk)
2. Load this attribute resource [test2d-attributes.smtk](/uploads/1f92dbe251de836196a8d46c81021...To reproduce with modelbuilder:
1. Load this model resource [test2d-model.smtk](/uploads/24a82a443e7db07a2ad776834cb63b3c/test2d-model.smtk)
2. Load this attribute resource [test2d-attributes.smtk](/uploads/1f92dbe251de836196a8d46c81021205/test2d-attributes.smtk)
3. Select the model resource in the resource panel and then select the "File" => "Close Resource" menu item.
4. The model resource *should* be removed from modelbuilder, but is still there.
5. A new message shows up in the Output Messages panel that a `smtk::session::polygon::Read` operation succeeded. So basically the model resource was deleted then read back in.
Note that the attribute resource contains a couple attributes associated to entities in the model resource. The working theory is:
* When the model resource is deleted, an observer on the operation calls `qtAssociation2ColumnWidget::handleResourceEvent()`.
* That `handleResourceEvent()` method calls `ReferenceItem::removeInvalidValues()`.
* `ReferenceItem::removeInvalidValues()` calls a method on its attribute links `linkedObjectInformation()`.
* And `smtk::resource::Links::linkedObjectInformation()` invokes a fetch of the model resource.
This is NOT a new problem -- it can be reproduced with the 21.05 release modelbuilderhttps://gitlab.kitware.com/cmb/smtk/-/issues/457Error using smtk::project python api2021-12-31T09:05:08-05:00John TourtellottError using smtk::project python apiI added 2 project tests in a branch at https://gitlab.kitware.com/john.tourtellott/smtk/-/tree/python-project-test
* TestBasicProject =>pass
* testBasicProjectPy =>fail
Both tests create a basic project, add 1 attribute resource, and ...I added 2 project tests in a branch at https://gitlab.kitware.com/john.tourtellott/smtk/-/tree/python-project-test
* TestBasicProject =>pass
* testBasicProjectPy =>fail
Both tests create a basic project, add 1 attribute resource, and confirm that the project contains 1 resource. For the test using the python API, the project resource container is empty. I suspect I am missing something, but I can't figure it out.
To duplicate, you can pull the branch above or apply this patch to `smtk:master` [0001-Add-basic-project-tests-for-cxx-and-python.patch](/uploads/226098fe06ce1800eac36bf6408255a7/0001-Add-basic-project-tests-for-cxx-and-python.patch)https://gitlab.kitware.com/cmb/smtk/-/issues/450Release SMTK 21.112021-12-09T13:38:51-05:00Robert M. O'BaraRelease SMTK 21.11<!--
This template is for tracking a release of smtk. Please replace the
following strings with the associated values:
- `VERSION`: e.g. yy.mm.n
- `MAJOR`: e.g. yy is the year
- `MINOR`: e.g. mm is the month
- `PATCH`: e.g. the ...<!--
This template is for tracking a release of smtk. Please replace the
following strings with the associated values:
- `VERSION`: e.g. yy.mm.n
- `MAJOR`: e.g. yy is the year
- `MINOR`: e.g. mm is the month
- `PATCH`: e.g. the release sequence number (start at 0)
- `BRANCHPOINT`: The commit where the release should be started - it is a point on master where the release process branch is started from. The release process branch will have multiple commits including the assembling of release notes and changing of the version.
Please remove this comment.
-->
# Preparatory steps
- Make sure you have run the `utility/SetupForDevelopment.sh` script.
- Update smtk guides
# Update smtk
- Update the local copy of the base branch.
- If `PATCH` is 0, update `master`
- Otherwise, update `release`
- [x] `git fetch origin`
- [x] `git checkout $branch`
- [x] `git merge --ff-only origin/$branch`
- If this fails, there are local commits that need to be removed
- Ensure that changes intended for the release are in it.
- The [`backport-mrs.py`][backport-mrs] script can be used to find and
ensure that merge requests assigned to the associated milestone are
available on the `release` branch. See its documentation for usage.
- Integrate changes.
- Create branch for release commits
- [x] `git checkout -b update-to-v21.11.0 f4d3cbc75ab1e248c7d227b2a65ad0ab7e3f7b30`
- Make a commit for each of these `release`-only changes:
- [x] Assemble release notes into `doc/release/notes/smtk-21.11.rst`.
- [x] Update the ReadMe file to refer to the new release notes
- [ ] If `PATCH` is greater than 0, add items to the end of this file.
- [x] `git rm` all of the individual release note files *except* `00-example.rst`.
- [x] `git commit -m 'Compile release notes for 21.11.0' doc/release/notes/smtk-21.11.rst`
- [ ] Update `version.txt` and tag the commit (tag this commit below)
- [x] `echo 21.11.0 > version.txt`
- [x] Rebuild smtk to check for deprecation warnings
- [x] `git commit -m 'Update version number to 21.11.0' version.txt` (commit message must be verbatum)
- [ ] Update `.gitlab/ci/cdash-groups.json` to track the `release` CDash
groups.
- [x] Change "master" => "release" everywhere in `.gitlab/ci/cdash-groups.json`,
and change "latest-master" => "latest-release".
- [x] `git commit -m 'Update cdash-groups.json to track the release group .gitlab/ci/cdash-groups.json`
- Create a merge request targeting `release`
- [x] Obtain a GitLab API token for the `kwrobot.release.cmb` user (ask
@ben.boeckel if you do not have one)
- [x] Add the `kwrobot.release.cmb` user to your fork with at least
`Developer` privileges (so it can open MRs)
- [x] Use [the `release-mr`][release-mr] script to open the create the
Merge Request (see script for usage)
- Pull the script for each release; it may have been updated since it
was last used
- The script outputs the information it will be using to create the
merge request. Please verify that it is all correct before creating
the merge request. See usage at the top of the script to provide
information that is either missing or incorrect (e.g., if its data
extraction heuristics fail).
- [x] Get positive review
- [x] Get a repo maintainer (currently Ben) or owner (currently Bob) to`Do: merge`
- [ ] Get a repo maintainer or ownder to push the tag to the main repository
- [x] `git tag -a -m 'SMTK 21.11.0' v21.11.0 commit-that-updated-version.txt`
- [x] `git push origin v21.11.0`
- Software process updates (these can all be done independently)
- [ ] Update kwrobot with the new `release` branch rules (@ben.boeckel)
- [x] Run [this script][cdash-update-groups] to update the CDash groups
- This must be done after a nightly run to ensure all builds are in the
`release` group
- See the script itself for usage documentation
- [ ] Add (or update if `PATCH` is greater than 0) version selection entry
in cmb-superbuild
[backport-mrs]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/backport-mrs.py
[release-mr]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/release-mr.py
[cdash-update-groups]: https://gitlab.kitware.com/utils/cdash-utils/-/blob/master/cdash-update-groups.py
# Post-release
- [ ] Write and publish blog post with release notes.
- [x] Post an announcement in the Announcements category on
[discourse.smtk.org](https://discourse.kitware.com/c/smtk/).
- [x] Create a new commit on `master` that does the following:
- [x] Remove the deprecated methods on `master`. Note that it should be discussed before hand which deprecated methods should be removed in this release.
- [x] Set the version.txt on `master` to be 21.11.100
/cc @ben.boeckel
/cc @bob.obara
/cc @dcthompRobert M. O'BaraRobert M. O'Barahttps://gitlab.kitware.com/cmb/smtk/-/issues/446Release SMTK 21.092021-12-02T12:31:32-05:00John TourtellottRelease SMTK 21.09<!--
This template is for tracking a release of smtk. Please replace the
following strings with the associated values:
- `VERSION`: e.g. yy.mm.n
- `MAJOR`: e.g. yy is the year
- `MINOR`: e.g. mm is the month
- `PATCH`: e.g. the ...<!--
This template is for tracking a release of smtk. Please replace the
following strings with the associated values:
- `VERSION`: e.g. yy.mm.n
- `MAJOR`: e.g. yy is the year
- `MINOR`: e.g. mm is the month
- `PATCH`: e.g. the release sequence number (start at 0)
- `BRANCHPOINT`: The commit where the release should be started - it is a point on master where the release process branch is started from. The release process branch will have multiple commits including the assembling of release notes and changing of the version.
Please remove this comment.
-->
# Preparatory steps
- Update smtk guides
# Update smtk
- Update the local copy of the base branch.
- If `PATCH` is 0, update `master`
- Otherwise, update `release`
- [x] `git fetch origin`
- [x] `git checkout $branch`
- [x] `git merge --ff-only origin/$branch`
- If this fails, there are local commits that need to be removed
- Ensure that changes intended for the release are in it.
- The [`backport-mrs.py`][backport-mrs] script can be used to find and
ensure that merge requests assigned to the associated milestone are
available on the `release` branch. See its documentation for usage.
- Integrate changes.
- Make a commit for each of these `release`-only changes on a single topic
(suggested branch name: `update-to-vVERSION`):
- [x] Assemble release notes into `doc/release/notes/smtk-MAJOR.MINOR.rst`.
- [x] Update the ReadMe file to refer to the new release notes
- [x] If `PATCH` is greater than 0, add items to the end of this file.
- [x] Update `version.txt` and tag the commit (tag this commit below)
- [x] `git checkout -b update-to-vVERSION BRANCHPOINT`
- [x] `echo VERSION > version.txt`
- [x] `git commit -m 'Update version number to VERSION' version.txt`
- [x] Update `.gitlab/ci/cdash-groups.json` to track the `release` CDash
groups
- Create a merge request targeting `release`
- [x] Obtain a GitLab API token for the `kwrobot.release.cmb` user (ask
@ben.boeckel if you do not have one)
- [x] Add the `kwrobot.release.cmb` user to your fork with at least
`Developer` privileges (so it can open MRs)
- [x] Use [the `release-mr`][release-mr] script to open the create the
Merge Request (see script for usage)
- Pull the script for each release; it may have been updated since it
was last used
- The script outputs the information it will be using to create the
merge request. Please verify that it is all correct before creating
the merge request. See usage at the top of the script to provide
information that is either missing or incorrect (e.g., if its data
extraction heuristics fail).
- [x] Get positive review
- [x] `Do: merge`
- [x] Push the tag to the main repository
- [x] `git tag -a -m 'SMTK VERSION' vVERSION commit-that-updated-version.txt`
- [x] `git push origin vVERSION`
- Software process updates (these can all be done independently)
- [ ] Update kwrobot with the new `release` branch rules (@ben.boeckel)
- [x] Run [this script][cdash-update-groups] to update the CDash groups
- This must be done after a nightly run to ensure all builds are in the
`release` group
- See the script itself for usage documentation
- [x] Add (or update if `PATCH` is greater than 0) version selection entry
in cmb-superbuild
[backport-mrs]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/backport-mrs.py
[release-mr]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/release-mr.py
[cdash-update-groups]: https://gitlab.kitware.com/utils/cdash-utils/-/blob/master/cdash-update-groups.py
# Post-release
- [ ] Write and publish blog post with release notes.
- [ ] Post an announcement in the Announcements category on
[discourse.smtk.org](https://discourse.kitware.com/c/smtk/).
- [ ] Remove deprecated methods on `master`
/cc @ben.boeckel
/cc @bob.obara
/cc @dcthompJohn TourtellottJohn Tourtellotthttps://gitlab.kitware.com/cmb/smtk/-/issues/441Release SMTK 21.072021-11-23T11:37:02-05:00Robert M. O'BaraRelease SMTK 21.07<!--
This template is for tracking a release of smtk. Please replace the
following strings with the associated values:
- `VERSION`: e.g. yy.mm.n
- `MAJOR`: e.g. yy is the year
- `MINOR`: e.g. mm is the month
- `PATCH`: e.g. the ...<!--
This template is for tracking a release of smtk. Please replace the
following strings with the associated values:
- `VERSION`: e.g. yy.mm.n
- `MAJOR`: e.g. yy is the year
- `MINOR`: e.g. mm is the month
- `PATCH`: e.g. the release sequence number (start at 0)
- `BRANCHPOINT`: The commit where the release should be started
Please remove this comment.
-->
# Preparatory steps
- Update smtk guides
# Update smtk
- Update the local copy of the base branch.
- If `PATCH` is 0, update `master`
- Otherwise, update `release`
- [x] `git fetch origin`
- [x] `git checkout $branch`
- [x] `git merge --ff-only origin/$branch`
- If this fails, there are local commits that need to be removed
- Ensure that changes intended for the release are in it.
- The [`backport-mrs.py`][backport-mrs] script can be used to find and
ensure that merge requests assigned to the associated milestone are
available on the `release` branch. See its documentation for usage.
- Integrate changes.
- Make a commit for each of these `release`-only changes on a single topic
(suggested branch name: `update-to-v21.07.0`):
- Assemble release notes into `doc/release/notes/smtk-21.07.rst`.
- [x] If `PATCH` is greater than 0, add items to the end of this file.
- [x] Update `version.txt` and tag the commit (tag this commit below)
- [x] `git checkout -b update-to-v21.07.0 1e713de292a8eff49caa68ae5813d04dccd66a11
- [x] `echo 21.07.0 > version.txt`
- [x] `git commit -m 'Update version number to 21.07.0' version.txt`
- [x] Update `.gitlab/ci/cdash-groups.json` to track the `release` CDash
groups
- Create a merge request targeting `release`
- [x] Obtain a GitLab API token for the `kwrobot.release.cmb` user (ask
@ben.boeckel if you do not have one)
- [x] Add the `kwrobot.release.cmb` user to your fork with at least
`Developer` privileges (so it can open MRs)
- [x] Use [the `release-mr`][release-mr] script to open the create the
Merge Request (see script for usage)
- Pull the script for each release; it may have been updated since it
was last used
- The script outputs the information it will be using to create the
merge request. Please verify that it is all correct before creating
the merge request. See usage at the top of the script to provide
information that is either missing or incorrect (e.g., if its data
extraction heuristics fail).
- [x] Get positive review
- [x] `Do: merge`
- [x] Push the tag to the main repository
- [x] `git tag -a -m 'SMTK 21.07.0' v21.07.0 commit-that-updated-version.txt`
- [x] `git push origin v21.07.0`
- Software process updates (these can all be done independently)
- [x] Update kwrobot with the new `release` branch rules (@ben.boeckel)
- [x] Run [this script][cdash-update-groups] to update the CDash groups
- This must be done after a nightly run to ensure all builds are in the
`release` group
- See the script itself for usage documentation
- [x] Add (or update if `PATCH` is greater than 0) version selection entry
in cmb-superbuild (cmb-superbuild!781)
[backport-mrs]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/backport-mrs.py
[release-mr]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/release-mr.py
[cdash-update-groups]: https://gitlab.kitware.com/utils/cdash-utils/-/blob/master/cdash-update-groups.py
# Post-release
- [ ] Write and publish blog post with release notes.
- [ ] Post an announcement in the Announcements category on
[discourse.smtk.org](https://discourse.kitware.com/c/smtk/).
- [x] Remove deprecated methods on `master`
/cc @ben.boeckel
/cc @bob.obara
/cc @dcthompRobert M. O'BaraRobert M. O'Barahttps://gitlab.kitware.com/cmb/smtk/-/issues/448Release SMTK 21.102021-11-03T13:43:03-04:00Robert M. O'BaraRelease SMTK 21.10<!--
This template is for tracking a release of smtk. Please replace the
following strings with the associated values:
- `VERSION`: e.g. yy.mm.n
- `MAJOR`: e.g. yy is the year
- `MINOR`: e.g. mm is the month
- `PATCH`: e.g. the ...<!--
This template is for tracking a release of smtk. Please replace the
following strings with the associated values:
- `VERSION`: e.g. yy.mm.n
- `MAJOR`: e.g. yy is the year
- `MINOR`: e.g. mm is the month
- `PATCH`: e.g. the release sequence number (start at 0)
- `BRANCHPOINT`: The commit where the release should be started - it is a point on master where the release process branch is started from. The release process branch will have multiple commits including the assembling of release notes and changing of the version.
Please remove this comment.
-->
# Preparatory steps
- Make sure you have run the `utility/SetupForDevelopment.sh` script.
- Update smtk guides
# Update smtk
- Update the local copy of the base branch.
- If `PATCH` is 0, update `master`
- Otherwise, update `release`
- [x] `git fetch origin`
- [x] `git checkout $branch`
- [x] `git merge --ff-only origin/$branch`
- If this fails, there are local commits that need to be removed
- Ensure that changes intended for the release are in it.
- The [`backport-mrs.py`][backport-mrs] script can be used to find and
ensure that merge requests assigned to the associated milestone are
available on the `release` branch. See its documentation for usage.
- Integrate changes.
- Create branch for release commits
- [x] `git checkout -b update-to-v21.10.0 8cf76ed91f2fe6d037cf13e555856c31d915e328`
- Make a commit for each of these `release`-only changes:
- [x] Assemble release notes into `doc/release/notes/smtk-21.10.rst`.
- [x] Update the ReadMe file to refer to the new release notes
- [x] If `PATCH` is greater than 0, add items to the end of this file.
- [x] `git rm` all of the individual release note files *except* `00-example.rst`.
- [x] `git commit -m 'Compile release notes for 21.10.0' doc/release/notes/smtk-21.10.rst`
- [x] Update `version.txt` and tag the commit (tag this commit below)
- [x] `echo 21.10.0 > version.txt`
- [x] Rebuild smtk to check for deprecation warnings
- [x] `git commit -m 'Update version number to 21.10.0' version.txt` (commit message must be verbatum)
- [ ] Update `.gitlab/ci/cdash-groups.json` to track the `release` CDash
groups.
- [ ] Change "master" => "release" everywhere in `.gitlab/ci/cdash-groups.json`,
and change "latest-master" => "latest-release".
- [ ] `git commit -m 'Update cdash-groups.json to track the release group .gitlab/ci/cdash-groups.json`
- Create a merge request targeting `release`
- [x] Obtain a GitLab API token for the `kwrobot.release.cmb` user (ask
@ben.boeckel if you do not have one)
- [x] Add the `kwrobot.release.cmb` user to your fork with at least
`Developer` privileges (so it can open MRs)
- [x] Use [the `release-mr`][release-mr] script to open the create the
Merge Request (see script for usage)
- Pull the script for each release; it may have been updated since it
was last used
- The script outputs the information it will be using to create the
merge request. Please verify that it is all correct before creating
the merge request. See usage at the top of the script to provide
information that is either missing or incorrect (e.g., if its data
extraction heuristics fail).
- [x] Get positive review
- [x] Get a repo maintainer (currently Ben) or owner (currently Bob) to`Do: merge`
- [x] Get a repo maintainer or ownder to push the tag to the main repository
- [x] `git tag -a -m 'SMTK 21.10.0' v21.10.0 commit-that-updated-version.txt`
- [x] `git push origin v21.10.0`
- Software process updates (these can all be done independently)
- [ ] Update kwrobot with the new `release` branch rules (@ben.boeckel)
- [x] Run [this script][cdash-update-groups] to update the CDash groups
- This must be done after a nightly run to ensure all builds are in the
`release` group
- See the script itself for usage documentation
- [ ] Add (or update if `PATCH` is greater than 0) version selection entry
in cmb-superbuild
[backport-mrs]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/backport-mrs.py
[release-mr]: https://gitlab.kitware.com/utils/release-utils/-/blob/master/release-mr.py
[cdash-update-groups]: https://gitlab.kitware.com/utils/cdash-utils/-/blob/master/cdash-update-groups.py
# Post-release
- [x] Write and publish blog post with release notes.
- [x] Post an announcement in the Announcements category on
[discourse.smtk.org](https://discourse.kitware.com/c/smtk/).
- [x] Remove deprecated methods on `master`
/cc @ben.boeckel
/cc @bob.obara
/cc @dcthompRobert M. O'BaraRobert M. O'Barahttps://gitlab.kitware.com/cmb/smtk/-/issues/447Python smtk.plugin doesn't load operations2021-11-03T12:05:01-04:00John TourtellottPython smtk.plugin doesn't load operationsI tried using the discourse topic [Using the python interpreter included with CMB and aevaCMB](https://discourse.kitware.com/t/using-the-python-interpreter-included-with-cmb-and-aevacmb/620) to load the OpenCascade plugin but it dont wor...I tried using the discourse topic [Using the python interpreter included with CMB and aevaCMB](https://discourse.kitware.com/t/using-the-python-interpreter-included-with-cmb-and-aevacmb/620) to load the OpenCascade plugin but it dont work with the current smtk. After some experimentation, it appears that operations don't get loaded for *any* plugin.
To reproduce:
* Download a recent nightly modelbuilder package (I used 15-Oct-2021).
* Run `pvpython` with the attached script [test.py](/uploads/7162c42df1ffefa4458084e9b6d2e843/test.py) and pass in the path to the OpenCascade plugin (or any plugin library). On linux it's at `lib/smtk-21.09.0/smtkOpencascadeSessionPlugin/smtkOpencascadeSessionPlugin.so`
* The script prints out the available operations, which is an empty list.
For example on linux, from the install directory:
```
./bin/pvpython test.py lib/smtk-21.09.0/smtkOpencascadeSessionPlugin/smtkOpencascadeSessionPlugin.so
```
or for something more familiar:
```
./bin/pvpython test.py lib/smtk-21.09.0/smtkAttributePlugin/smtkAttributePlugin.so
```
In either case, the resulting set of available operations is the empty set:
```
Available Operations: set()
Available Operations: set()
finis
```
<details>
<summary>Click here to see the test.py script</summary>
```
import argparse
import paraview.simple
import smtk
import smtk.operation
import smtk.resource
import smtk.plugin
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('plugin_path', help='path to smtk plugin (.so on linux)')
args = parser.parse_args()
# Load the plugin
paraview.simple.LoadPlugin(args.plugin_path)
# Create an operation manager
op_manager = smtk.operation.Manager.create()
op_list1 = op_manager.availableOperations()
print('Available Operations:', op_list1)
# Populate the operation manager
smtk.plugin.registerPluginsTo(op_manager)
op_list2 = op_manager.availableOperations()
print('Available Operations:', op_list2)
print('finis')
```
</details>https://gitlab.kitware.com/cmb/smtk/-/issues/443Removing a resource in many phrase-views does not scale because of Visibility...2021-09-10T14:09:27-04:00David ThompsonRemoving a resource in many phrase-views does not scale because of VisibilityBadgeIn `smtk/extension/paraview/appcomponents/VisibilityBadge.cxx`, the
`VisibilityBadge::representationRemovedFromActiveView()` method calls `this->activeViewChanged()` which calls `VisibilityBadge::representationAddedToActiveView()` many ...In `smtk/extension/paraview/appcomponents/VisibilityBadge.cxx`, the
`VisibilityBadge::representationRemovedFromActiveView()` method calls `this->activeViewChanged()` which calls `VisibilityBadge::representationAddedToActiveView()` many times. Instead, we should just update `m_visibleThings` directly.
cc: @am300ed @chart3388David ThompsonDavid Thompsonhttps://gitlab.kitware.com/cmb/smtk/-/issues/442Unwanted horizontal scrolling in attribute editor (windows, linux)2021-08-05T20:13:04-04:00John TourtellottUnwanted horizontal scrolling in attribute editor (windows, linux)smtk exhibits a very unwanted behavior in the attribute editors. Redrawing after an analysis-view change is causing the view to scroll horizontally, presumably to better fit the contents. Attached video shows what happens when checking/u...smtk exhibits a very unwanted behavior in the attribute editors. Redrawing after an analysis-view change is causing the view to scroll horizontally, presumably to better fit the contents. Attached video shows what happens when checking/unchecking one of the analysis boxes ("Include Void Material").
![2021-07-26_09-41-30](/uploads/eb237cd27c50b7ea2594891fb7365450/2021-07-26_09-41-30.mp4)
## To reproduce (simplified 31-Jul-2021)
- Download the attached template file: [bug.sbt](/uploads/5b9516bf11c3408dbd4afe22b472a100/bug.sbt)
- Load that template into either modelbuilder or qtAttributePreview
- In the "Analysis" tab, click the "Fluid Flow" checkbox, which exposes some additional options.
- Resize the attribute editor horizontally so that part of the "body_force_density" field is hidden. (Note a horizontal scrollbar will appear at the bottom of the editor.)
- Click the "Include Void Material" checkbox. The view will scroll right to show more of the "body_force_density" item. This is the UNdesired behavior.
## KEY OBSERVATION
Note that clicking the "Heat Transfer" checkbox does NOT effect the unwanted horizontal scroll. Some additional testing can show that
* A checkbox that changes the (vertical) layout of the analysis view does NOT trigger the unwanted scroll.
* A checkbox that does NOT change the analysis view layout DOES trigger the unwanted scroll behavior.
## To reproduce the video (for reference only):
- Use a current build off smtk:master. I used the 2021-07-26 nightly at https://data.kitware.com/#collection/58fa68228d777f16d01e03e5/folder/60fe4e432fa25629b910e9f6
- You need the get the attribute template from the truchas-extensions repo https://gitlab.kitware.com/cmb/plugins/truchas-extensions .
- Start modelbuilder and open the template file at `truchas-extensions/simulation-workflows/Truchas.sbt`.
- In the "Analysis" tab set the "Analysis" to "Truchas"
- Find and click on the "Fluid Flow" checkbox. Note that this is important to triggering the failure mode because it causes the "Body Force Density" field to be displayed below.
- Then click on the "Include Void Material" checkbox. The UI scrolls to the right which is NOT GOOD.
- Scroll back to the left and uncheck the "Include Void Materials" checkbox and, again, the UI scrolls to the right, NOT GOOD again.
## Also note:
- I did NOT observe this problem with the macOS build (Qt 5.15.2)
- I DID observer this problem with the Windows (Qt 5.15.2) and Linux (Qt 5.12.9) buildshttps://gitlab.kitware.com/cmb/smtk/-/issues/439Add support for expression attribute resources2021-07-28T10:50:40-04:00Robert M. O'BaraAdd support for expression attribute resourcesNeed to be able to have expression attributes live in one attribute resource but be used in another. The core system supports this but the QT component assumes that the expression candidates come from the same resource as the ValueItem ...Need to be able to have expression attributes live in one attribute resource but be used in another. The core system supports this but the QT component assumes that the expression candidates come from the same resource as the ValueItem referring to it.Robert M. O'BaraRobert M. O'Barahttps://gitlab.kitware.com/cmb/smtk/-/issues/436Add the ability to ignore Items in an Attribute2021-07-23T18:55:36-04:00Robert M. O'BaraAdd the ability to ignore Items in an AttributeThere are times when a workflow will need to ignore items that have become irrelevant based on the choices a user has made.There are times when a workflow will need to ignore items that have become irrelevant based on the choices a user has made.Robert M. O'BaraRobert M. O'Barahttps://gitlab.kitware.com/cmb/smtk/-/issues/431Groupitem has empty frame2021-07-23T18:55:36-04:00chart3388Groupitem has empty frameEmpty box being drawn around groupItem. Reproduced with [GroupItemBug.sbt](/uploads/f1e94a36997aad396e37043557ccfdeb/GroupItemBug.sbt)
![image](/uploads/d29203c11054817fa0ad943882dd9da7/image.png)
![image](/uploads/69f599cbf16f32889618...Empty box being drawn around groupItem. Reproduced with [GroupItemBug.sbt](/uploads/f1e94a36997aad396e37043557ccfdeb/GroupItemBug.sbt)
![image](/uploads/d29203c11054817fa0ad943882dd9da7/image.png)
![image](/uploads/69f599cbf16f32889618bc80bc1276ed/image.png)