TEP-0090: Split up ResolvePipelineRunTask

Changes

Prior to this commit, the logic for resolving TaskRun, Run, and Resources needed for a given PipelineTask was included within the ResolvePipelineRunTask function.
In this change, we split the logic into their own functions for reuse and readability. We also fix the names of PipelineTask
variables to distinguish them from Tasks.
No functional changes made in this commit.
/kind feature
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[n/a] Docs included if any changes are user facing
[x] Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including functionality, content, code)
[x] Release notes block below has been filled in (if there are no user facing changes, use release note "NONE")

Release Notes

NONE

/test pull-tekton-pipeline-integration-tests

/test pull-tekton-pipeline-alpha-integration-tests
/test pull-tekton-pipeline-integration-tests

/retest

/lgtm

/retest

/retest

/lgtm

/retest

/lgtm
thank you @jerop 🎉
/test pull-tekton-pipeline-go-coverage
I am sorry to bring this up again but please add unit tests while introducing any new function 🙏

I am sorry to bring this up again but please add unit tests while introducing any new function 🙏

@pritidesai we have guidelines - https://github.com/tektoncd/community/blob/main/standards.md#tests - to write tests for exported functions only...there was no exported function added, all new functions are unexported functions that are used in the tested exported function (plus there is no functionality change)...or do we need to update that guideline?

https://github.com/tektoncd/community/blob/main/standards.md#tests

I think we should, what do you think?
We (not intended to point on anyone) are adding a bunch of unexported functions which is great but its becoming very hard to read and understand the need of so many unexported functions. How are we sure that any changes we introduce are not breaking any functionality. This can only be made sure if we have 100% code coverage which is highly unlikely to maintain in any project.
Also, our standards today says the code coverage must remain same (at least). But thats not something enforced by our CI. One such example - https://github.com/tektoncd/pipeline/pull/4927#issuecomment-1148190842 - Impacting code coverage by 5% while refactoring will burn us down in the future.

https://github.com/tektoncd/community/blob/main/standards.md#tests

I think we should, what do you think?
We (not intended to point on anyone) are adding a bunch of unexported functions which is great but its becoming very hard to read and understand the need of so many unexported functions. How are we sure that any changes we introduce are not breaking any functionality. This can only be made sure if we have 100% code coverage which is highly unlikely to maintain in any project.

that's one option, we could also try out the suggestion in the guidelines to move those functions into packages: "If you find yourself wanting to test an unexported function, consider whether it would make sense to move the test into another package and export it"
added this topic to the agenda for the next Pipelines working group meeting on 06/14 (notes) so we can discuss with other maintainers

Also, our standards today says the code coverage must remain same (at least). But thats not something enforced by our CI. One such example - #4927 (comment) - Impacting code coverage by 5% while refactoring will burn us down in the future.

it'd be great if the CI enforced the code coverage standard, maybe for now we can add it to the submitter checklist to make it more explicit? we can bring it up in the working group meeting

@abayer @pritidesai - rebased the PR to fix merge conflicts after https://github.com/tektoncd/pipeline/pull/4942 got merged - please take a look

/lgtm

that's one option, we could also try out the suggestion in the guidelines to move those functions into packages: "If you find yourself wanting to test an unexported function, consider whether it would make sense to move the test into another package and export it"

This suggestion can not be generalized, specially for the many complex packages we have in Pipelines. Unfortunately, it just resulting in a smelly code.
runNextSchedulableTask, processRunTimeouts, updateTaskRunsStatusDirectly, etc were all  introduced on a similar basis and have grown complex over time without any unit testing. But they do follow the best practices - no unit test for unexported functions.
https://github.com/tektoncd/pipeline/blob/566e2e3e20c0c6348e86c248310fcc9dbfe85166/pkg/reconciler/pipelinerun/pipelinerun.go#L644
https://github.com/tektoncd/pipeline/blob/566e2e3e20c0c6348e86c248310fcc9dbfe85166/pkg/reconciler/pipelinerun/pipelinerun.go#L616
https://github.com/tektoncd/pipeline/blob/566e2e3e20c0c6348e86c248310fcc9dbfe85166/pkg/reconciler/pipelinerun/pipelinerun.go#L718
I am not pointing at you @jerop, thanks for your understanding ❤ Also, thank you for adding it to the WG for further discussion.
Didn't expect this to be merged as is, we have many functions with similar (complex) signatures now. At the same time, excited to see this result in much more meaningful and reusable code with matrix 🎉
https://github.com/tektoncd/pipeline/blob/566e2e3e20c0c6348e86c248310fcc9dbfe85166/pkg/reconciler/pipelinerun/resources/pipelinerunresolution.go#L448-L564


build: refactor build strategy

W.I.P but should fix #256

move everything I can to pyproject.toml as it has won the configuration war
remove warning, raise etc... from setup..py as they are ignored since setuptools 50
use an python package for NPM binding removing many extra line from the setup.py page

I clearley identify the from generate_source import generate as the culprit but I don't yet manage to find a way to load it BEFORE the end of the installation process. It seems to be unavailable in the isolated environment even if it's part of the egg_info folder.
TODO

[x] solve the installation issue
[x] check that all data files are still there

not ideal, i've always though a pip install  should work. Why doesn't the isolated build pick up the generate source code, especially since it is in the manifest file, it should be available (maybe in a different directory.. ?)

I don't remember rebasing but it's already in. I'm discovering the deps of setuptools with pyca developers, the pip install now works but the python -m build doesn't.

@maartenbreddels, I'm moving forward with the installation process. Still few things to optimize but at least it works (pip install, pip install -e and python build).
Things are still buggy in the tests though. I have several questions:

why is there a build job ? the produced artifacts are reused in all the others but they exactly correspond to the one produced by a python build, that could be relaunched (not that long) for every job and thus make them in parralel.
why not installing the lib the same way people are doing it with pip install .. refering to the build action artifact is the main reason last version was released with a non complete wheel. I think we should only rely on pip install for tests.
why not integrating the solara based test in a pytest suit ? so that it can be launched by developer before pushing ? I think it can be managed after #240

If you agree with my comments I'll move forward with my PR and revamp the test actions, the release one will deserve a dedicated PR.

I'm moving forward with the installation process. Still few things to optimize but at least it works (pip install, pip install -e and python build).

Great news!

why is there a build job ?

I want the build step to be isolated, as to mimic as much as possible a release->user install process. We don't want that because of some artifact during build process, our tests succeed, but when installing the produced wheel it will not (this in fact caused a faulty release).

the produced artifacts are reused in all the others but they exactly correspond to the one produced by a python build

Yes, that's exactly what we want to test: Do the tests pass when the wheel that we build is released as it is. We don't "care" about the tests passing because we somehow managed to get it working.

why not installing the lib the same way people are doing it with pip install .

No user installs it this way right? It's all comping from pypi, which means people install the wheel.

why not integrating the solara based test in a pytest suit

Not sure what you mean by this? It's in the test directory right, if you run py.test tests it will run every test locally. The reason we split it, is because the UI tests are pretty expensive (long to run), and we don't need to test it for every Python version. Does that make sense?

PS: I'd rather have you rebase on master, then merge master back in, this is often confusing (at least for me) and leads to weird incomprehensible conflicts (again, at least for me:P)

No user installs it this way right? It's all comping from pypi, which means people install the wheel.

if you run pip install . on a project that build a universal wheel with a pyproject.toml then the wheel is produced (at list its content in sdist) and used for the installation so that actually mimick more the installation from pypi than the current one. On the plus side you check if you included all the necessary requirements.

PS: I'd rather have you rebase on master, then merge master back in, this is often confusing (at least for me) and leads to weird incomprehensible conflicts (again, at least for me:P)

I know I'll try to make the test pass first and then rebase (which will be a pain for sure)

I will believe that pip install . should behave the same, but I think having a different build and test environment makes sure that you reproduce exactly how users run it.
Ideally, we also check the pip install . and pip install -e . path. But I think that will not affect end-users, so it's less important. Most important I think is to never break a user-install.

I'm not 100% sure we need to check ui aspect of any widget as it will be displayed in the documentation anyway

This makes sure we can never have a broken release. If the UI tests pass, we know it's working on classic notebook, lab, voila and solara.
Why did you drop 3.6? We still need to support it. Are we using a non-supported feature in this PR?

LEt e advocated on some of your suggestions:

why don't I want to rely on the build wheel ?

Because it's strictly equivalent to running pip install . when using setuptools (confirmed in the thread where I talk with them) so building the wheel manually to save it and share it on each runner is making the actions more complex -> more dificult to maintain. The current matrix is only running on ubuntu but we could extend it to OSX and windows, it's much more dificult to share files between platform which would force to special case for windows. Finally for the tests, it's super easy to add the test requirements in extras (which is the case in this PR) which is not possible using the wheel. this what is done on all the repositories I'm working on and many of them include nodeJS deps, we never encountered any issue (https://github.com/pydata/pydata-sphinx-theme). I had the feeling that the number of concurrent jobs is fix so if they run all at once I'm still a bit faster.

Why do I think the solara test is overdoing it ?

I would like to use mystnb in the documentation which will build ALL the widgets. using pytest-regression, it will be super easy to check the produced html widgets. It will be equivalent to the test performed on solara without using playwrite which can be tricky (we are using it in pydata-sphinx-theme for a11y and that's is bugging on runners 1 time out of 2) and ensurin the test of all of them.

why do I want to drop 3.6 ?

According to python documentation, 3.6 have reached end-of-life for a long time now and has been dropped by multiple other libs.
https://devguide.python.org/versions/

So, lets take a step back, what do we want? We want to automate releasing and validation that the package we will distribute does what we want. Releasing involves making a wheel and uploading that. Before we upload it, we want to check that the wheel is valid. Whatever promises are made by pip we don't want to rely on, we want to test that specific wheel, just before we push it to pypi. I want to test it on Notebook, Lab, Voila and solara. I don't see any other watertight way of guaranteeing that? Can we agree on that?

it's much more dificult to share files between platform which would force to special case for windows

why is that?

Finally for the tests, it's super easy to add the test requirements in extras (which is the case in this PR) which is not possible using the wheel

Why do you think that, if you look at the diff, you see we add [test] to the wheel.

I had the feeling that the number of concurrent jobs is fix so if they run all at once I'm still a bit faster.

But they all need to run the same code (making the js bundle), so even if they do it parallel, they first need to build the js. If we extend the matrix on the 3 OS'es, we'll build 6*3=18 js bundles, and possibly 1 of those js bundles will match the one we will release.

I would like to use mystnb in the documentation which will build ALL the widgets

But that doesn't guarantee it visualizes correctly on notebook, lab, voila and solara right?
For instance, Mario found out manually that https://github.com/widgetti/ipyvuetify/pull/246 breaks on Jupyter Lab only. I don't want to have a CI pipeline that can release a broken ipyvuetify anymore.

I'm convinced by your arguments. I propose to limit the scope of this PR and move some other stuff for follow-up PR:

[x] build ipyvuetify with a modern implementation (pyproject.toml etc...)
[x] make sure the 3 installations types are working (editable, normal wheell, local pip)
[ ] make sure the npm build is done only once (I think it's currrently run 3 times)
[x] test the wheel in the CD/CI
[ ] use this wheel in every subsequent CD/CI test

Work for a ui-test follow-up PR:

run some UI test in as many sytem we can think about (solara, voila, jupyter notebook/lab... )

Work for the documentation PR:

minimal example for each widget in the API references
check the html produced by this examples as regression tests

Following this plan, I will just update the actions and check npm runs. if you can solve the solara error, the better, if not we can deal with it in the ui-test follow-up PR. and of course I should rebase on master (😢)
What do you think ?

run some UI test in as many sytem we can think about (solara, voila, jupyter notebook/lab... )

this is already happening with the solara-pytest plugin.

if you can solve the solara error

this is our smoke test! :) There is something going wrong with packaging. This is exactly why I wanted to have this test.
And now we can go to https://github.com/widgetti/ipyvuetify/actions/runs/4810207165 and download the wheel, install it locally, inspect and see what went wrong.

build ipyvuetify with a modern implementation (pyproject.toml etc...)

Really happy you are doing this!

ok I'm building all the matrix tests with the build job wheel. I would need your support for:

the solara error. If it's related to a file being missing let me know I'll continue working on it
if your fluent with rebasing (I'm not not) I could use a hand. If not I'll do whatever I find on SO.

I suggest downloading the wheel, inspecting or installing it locally and check if it works with any Jupyter platform.

Managed to inspect it in my phone, I see all the js is missing from the wheel which should be in the share directory. That’s why the ui test fails, it’s not a functional wheel.

My computer running on nodeJs 12.x is working just fine. Github actions on the other hand are running on nodeJS 16 and I'm reluctant to enforce node version in the actions. So I'll start wrestling with the deps, which me luck

@maartenbreddels did you had the time to have a look at the latest iteration ?

I've taken a quick look, it looks nice!
So cmdclass={"egg_info": js_prerelease(egg_info)} is the magic trick?

it seems it covers all cases as any build type requires to create a egg_info folder first.

As you see fit, I personnaly don't mind. It will ease readability in main though


Model runs fixes

Table sorting on numeric columns
Chart tooltip value
Chart trend line calculation

Closing as this bundle was already merged to master.


Support multiple synth IO tiles at the same vpr coordinate

For custom harnesses and partition regions, there should be the ability to place multiple synth IO tiles at the same VPR coordinate, connecting to different wires at the border of the ROI.
I think this can be implemented relatively easily using by increasing the tile capacity, but I am unsure how to handle an INPAD and and OUTPAD at the same vpr coordinate.  My initial thought is to merge these together into an SYN-IOPAD and maybe have the INPAD and OUTPAD as equivalent sites.

@litghost Can you let me know your thoughts?

So @acomodi add the feature to support this, which is heterogeneous tiles.  There are documentation and examples upstream.  I'll find a link.

Link to doc: https://docs.verilogtorouting.org/en/latest/tutorials/arch/heterogeneous_tiles/#heterogeneous-tiles-tutorial


Method DisableLifetimeValidation does not exist

Exception messages says If you want to disable this error then use the following container configuration: 'new StashboxContainer(c => c.DisableLifetimeValidation())'. but method name is WithoutLifetimeValidation()

Hey, thanks for reporting, I fixed that!


Version 2.2.13 of asciidoctor-diagram triggers an errors for wavedrom diagrams when generating PDFs

With the release of version 2.2.13 of asciidoctor-diagram the following error is occurring for wavedrom diagrams when generating PDFs on Linux:
asciidoctor-pdf -r asciidoctor-diagram ./sample.adoc
asciidoctor: ERROR: sample.adoc: line 10: Failed to generate image: wavedrom-cli failed: internal/fs/utils.js:581
throw new ERR_INVALID_ARG_TYPE(propName, ['string', 'Buffer', 'URL'], path);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string or an instance of Buffer or URL. Received type boolean (true)
at readFile (fs.js:317:10)
at go$readFile (/usr/local/lib/node_modules/wavedrom-cli/node_modules/graceful-fs/graceful-fs.js:118:14)
at Object.readFile (/usr/local/lib/node_modules/wavedrom-cli/node_modules/graceful-fs/graceful-fs.js:115:12)
at Object.readFile (/usr/local/lib/node_modules/wavedrom-cli/node_modules/universalify/index.js:5:57)
at Object. (/usr/local/lib/node_modules/wavedrom-cli/wavedrom-cli.js:36:4)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) {
code: 'ERR_INVALID_ARG_TYPE'
}
Ref AsciiDoctor-Diagram Issue 441.

This appears to be an issue in Asciidoctor Diagram. Asciidoctor PDF doesn't manage the generation of images in any way. It just reads the files that have already been generated.


Creating a Greeting bot for the project.

🚀 Feature
I want to add a bot that greets the person when he creates a new issue or a pull request.
Have you read the Contributing Guidelines on Pull Requests?
Yes
Motivation
(Please outline the motivation for the proposal.)
Pitch
(Please explain why this feature should be implemented and how it would be used.)

@Karthik-Nayak98 what is the status ? we need it up as soon as possible

I am working on it. Will push it soon.

Should I paste the link for the doc or any certain portion of that?

Is this fine? @anushkrishnav

Looks good also try to add this comment
" To get assigned to this particular issue please use '/assign' "

And we are good to merge also add GSSoc'21 tag

Instead of adding the link of guide to the whole doc. Can we add certain steps so it would be easy for the participants to follow?
example:

Fork the Repository
Clone Repository: git clone https://github.com/<USERNAME>/NeoAlgo.git
Enter the Repository: cd NeoAlgo
Set upstream to the original branch using the command
git remote add upstream https://github.com/TesseractCoding/NeoAlgo.git
git pull upstream master
create a new branch with the name issue-
checkout to the new branch git checkout issue-<issue-name>
make your changes and push the code. git push origin issue-<issue-number>
then make a PR

This is the message for the PR
@anushkrishnav

No let the doc be there. We made that for a reason.


segmentation fault when viewing surfaces in GUI debugger

I am under the impression that 1.6 is going to make some changes, so this may not be applicable any longer. However, under 1.5 on Ubuntu 18.04, I get a segmentation fault when clicking the "Surfaces" tab, but only on certain window elements.
Here is the program I'm working on:
/* Minimal application using Agar-GUI */

#include <agar/core.h>
#include <agar/gui.h>

void QuitApplication(AG_Event *event) {
	AG_Quit();
}

#ifdef ENABLE_DEBUGGER
void LaunchDebugger(AG_Event *event) {
	AG_Window* win;
	AG_Window* db_window;

	win = (AG_Window*) AG_ObjectRoot(AG_SELF());

	db_window = AG_GuiDebugger(win);
	AG_WindowShow(db_window);
}
#endif

int main(int argc, char *argv[]) {
	AG_Window *win;

	if (AG_InitCore(NULL, 0) == -1 ||
	    AG_InitGraphics(0) == -1)
		return (1);

	win = AG_WindowNew(0);
	AG_WindowSetCaptionS (win, "Graph Editor");

	AG_Menu* menu = AG_MenuNew(win, 0);
	AG_MenuItem* menu_file = AG_MenuNode(menu->root, "File", NULL);
	AG_MenuAction(menu_file, "Quit", NULL, QuitApplication, NULL);

#ifdef ENABLE_DEBUGGER
	AG_MenuAction(menu_file, "Launch Debugger", NULL, LaunchDebugger, NULL);
#endif

	AG_WindowShow(win);

	AG_EventLoop();
	return (0);
}

I am able to view the surfaces in say the AG_MenuView #0 (under glx3), but viewing the surfaces for glx1 produces a segfault. I have attached a log which includes both Agar's debug output, and a GDB backtrace.
gdb.log

This should no longer be happening with the latest updates to the GUI Debugger.  Feel free to re-open the issue if the problem still occurs with the latest SVN.


[7.x] Correct grammar

all of your "a" to "an" changes look good, but some of the other changes are unnecessary, or a matter of preference.
For example:
/**
  * Adds a where condition using row values.
  *

is fine.  I guess technically it is not a complete sentence, but neither is "Add a where condition using row values."

@browner12 Thank you for the comment! I certainly see third-person verbs (like Adds) can be a matter of preference, and this is mostly about consistency. The file you quoted has 148 functions, almost all of which already use imperative mood (like Add) in PHPDoc. While correcting grammar in the file, I moved the remaining 5 to the imperative mood camp. In fact, Add a where condition using row values. is a complete sentence.
I haven't found an official stance on this yet. Laravel's Contribution Guide has this valid PHPDoc example below, so I suppose it's a signal that it's okay to move toward this style?
/**
 * Register a binding with the container.
 *
 * @param  string|array  $abstract
 * @param  \Closure|string|null  $concrete
 * @param  bool  $shared
 * @return void

That said, I'm totally okay with reverting these tense changes.

I think you'll have more luck if you keep the PRs super simple and 1 dimensional.  I would recommend opening a new PR with just the "a" to "an" and "an" to "a" fixes.   Makes it really simple for the team to review.

Duly noted. I appreciate your advice, @browner12. :)


Add Tooltips for Enhanced User Experience

A clear and concise description of what the problem is currently, users of the TakeNote web application lack contextual information when hovering over features or buttons, leading to potential confusion about their functionality.
Solution
Implement tooltips for various elements within the TakeNote application to provide users with clear and concise explanations of each feature's purpose and how to interact with the application. This enhancement will contribute to a more intuitive and user-friendly experience.
Identify elements in the user interface where tooltips should be added, such as buttons, icons, or interactive elements.
Integrate a tooltip library, such as Tippy.js or Tooltip.js, to create and manage tooltips effectively.
Define tooltip content that provides relevant information about each feature or action.
Ensure tooltips are accessible to all users, including those using assistive technologies, by adhering to accessibility best practices and adding appropriate ARIA attributes for keyboard accessibility.
Seek feedback and suggestions from the community to ensure the implementation aligns with user expectations and usability standards.

can i work on this ? pls assign


Style Sharing Modal

Current status:

Related: https://github.com/datproject/dat.land/issues/255

It could very well be that we need to roll our own modal implementation for this, as it's the js-alert lib right now. But maybe if all it takes is adding some css, that would be great too

We could also do something really simple with node-notifier
example I use in ye old dat-menubar: https://github.com/karissa/dat-menubar/blob/master/app.js#L52

@juliangruber I find the current modal implementation hard to style. All the styles/icons are hard-coded in the js-alert module, there don't seem to be any options. Any suggestions?
FYI, Mockup:

@Kriesse agree, I saw this coming but went for the "works right now" solution to have something to start with. Let's make this our own little component. cc @yoshuawuyts

@juliangruber Cool, I figured (actually super helpful to see a quick working solution to figure out the UI details!)
Happy to style our own little component, just need a starting point :)

nice! I think @yoshuawuyts this is where you take over, right?

Yup!
On Fri, Nov 25, 2016, 10:29 Julian Gruber<EMAIL_ADDRESS>wrote:

nice! I think @yoshuawuyts https://github.com/yoshuawuyts this is where
you take over, right?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/datproject/dat-desktop/issues/46#issuecomment-262915152,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACWlesodQHa43j_ZzLLHZAxQXucS5yERks5rBqqTgaJpZM4J-zar
.

Going to be switching to https://github.com/shama/modal-element

#99 was merged and opened #103 - closing this issue in favor of #103


Support Terra Classic

Can you add Terra Classic Network?

You can easily add a custom chain using the "Add Custom Chain" option in the side drawer. To add the Terra Classic network, fill out the form with the following information:

Custom Chain Name: Terra Classic
REST URL: https://terra-classic-lcd.publicnode.com
Currency Symbol: LUNC
Address Prefix: terra
Denom: uluna
Coin Type: 330

why is not by default within the wallet ?
Considering the community - Classic has a huge community around it so will be dizzy people using the costum method as well they might as well face issues with gas fees


docs: update README.md

databse -> database

Oh, I didn't even notice that error.
Thanks for fixing it !


If a hololens 2 goes to sleep while running a Unity OpenXR MRTK app with spatial awareness enabled, the app throws exception and runs poorly after resuming

Describe the bug
A hololens 2 app built in Unity using OpenXR with spatial awareness runs properly on launch until the device goes to sleep. After waking the device and resuming the app, the app throws this exception:
ArgumentNullException: Value cannot be null.
Parameter name: _unity_self

at
UnityEngine.XR.XRMeshSubsystem.SetBoundingVolume(UnityEngine.Vector3 origin, UnityEngine.Vector3 extents).

(See screenshot below for a more complete stack trace)
The application also runs very poorly from that point forward, at a frame-rate of approximately 15fps accoring the the MRTK diagnostic tool
To reproduce
Steps to reproduce the behavior:

Create an MRTK app in Unity for hololens 2 with spatial awareness enabled by following the MRTK project setup instructions  here.
Switch to UWP build platform, then build and run the app on hololens 2.
See that spatial awareness and the spatial mesh are running properly
Put the hololens 2 device to sleep
Wake the hololens 2 device and resume running the app
See that the app throws the above exception and is running very poorly

To make it easy to reproduce this error, I have created a nearly-empty MRTK project repository on github.
The only modifications to this project as compared to the MRTK tutorial instructions are:

Cloned the default hololens 2 MRTK configuration to enable spatial mesh and set mesh visibility to occlusion
Added an ErrorManager that receives any exceptions thrown and displays them on a camera-anchored canvas

The repository for that project is here.
Expected behavior
When the hololens 2 device goes to sleep, the application should pause. When the hololens 2 is woken up and the app the app is resumed, the app should function properly, as it did on launch, without throwing any exceptions.
Screenshots
See attached screenshot of the exception thrown, rendered to an in-app text canvas.

Your setup (please complete the following information)

Unity Version: 2020.3.17 and 2020.3.8
MRTK Version: 2.7.2
MRTK OpenXR: 1.0.1, 1.0.3
com.unity.xr.openxr 1.2.8

Target platform (please complete the following information)

HoloLens 2, ARM or ARM64

@polar-kev Any updates on this issue? I am hitting this exception when resuming from sleep in our apps as well

@srinjoym Update! This should be fixed by #10366, which is currently targeting 2.7.3 (FYI @polar-kev)

Closing this out now that the fix is merged into the 2.7.3 branch.


Added asynchronous Backbone validation

This version of Backbone validation is implemented using asynchronous validation callbacks.
So it's possible to do also validation with server / backend.
The implementation is backward compatible with all custom or default validation callbacks.
It's adding a new parameter to validation callbacks which contains a promise.
Simply resolve or reject the promise after your validation is done.
The usage is pretty simple. Just add the flag async to your validation.
If the flag is not set, the return value of the validator callback is used to resolve the validation.
Calling validator function
model.isValid(true, function valid() {}, function invalid(errors) {});

Usage of async validator in Model
/**
 * @see Backbone.Model.validation
 */
validation: {
    username: [{
        required: true,
        msg: 'Muss ausgefüllt werden'
    }, {
        usernameExists: true,
        async: true,
        msg: 'Der Name ist schon vergeben'
    }]
}

Here a sample implementation of my asynchronous callback to check if the inserted username already exists.
// Cache object for already requested user names
var usernames = {};
_.extend(Backbone.Validation.validators, {

    /**
     * Validator to check if a inserted username is already existing
     *
     * @param {string} value Input value
     * @param {string} attr Attribute name
     * @param {string} customValue
     * @param {Backbone.Model} model
     * @param {object} deferred Promise to resolve or reject
     */
    usernameExists: function usernameExists(value, attr, customValue, model, computed, deferred) {
        // If we have a username and it wasn't requested yet
        if (value && usernames[value] == undefined) {
            var ajax = new AJAXRequest({
                url: OSA.apiUrl('/api/usernameExists/' + encodeURIComponent(value)),
                method: 'get',
                success: function usernameExistsSuccess(response) {
                    // Cache username state
                    usernames[value] = response.data;
                    // Reject validation if user name exists
                    if (response.data) {
                        deferred.reject();
                    }
                    else {
                        deferred.resolve();
                    }
                }
            });
            ajax.send();
        }
        // The username was requested already and exists
        else if (value && usernames[value]) {
            deferred.reject();
        }
        // The value is empty or the username doesn't exist
        else {
            deferred.resolve();
        }
    }
});

+1

why do we need something like that? :)

Because with the current implementation is no server validation possible.
The only way to do such things is to cache the server result, recall the validation and check the result.
This is not efficient because every time the whole model is validated.

+1

+1

why do we need something like that? :)

Simplifying what @fragsalat said, sometimes we need to check if a user exists and in our current scenario is very boring to handle with this kind of validation — we have to dirt our code to be good to go.
Hence, @fragsalat, what an awesome implementation! A few weeks ago I started to developing this feature by myself but didn't go further for time issues.
I'll be testing your functionality as soon as possible and then will be merging. And know what? Your feature will be releasing our very first major release — 1.0.0!
Thank very much so far. :beers: :+1:

@chiefGui I'll add some tests soon :)

How does this integrate with the Backbone save flow? Or calling add with {validate: true}? That Backbone code is synchronous and will laugh at the promises this will try to return. Basically the problem recurses and Backbone itself must be made asynchronous in order for this to work.

@chiefGui  I copied the existing tests and rewrote them for async version.
@platinumazure Your'e right, there is a different behavior now.
The Backbone.Model.prototype.set function is wrapped with a super call within the mixin to prevent setting of invalid values. This works good but you never will get an return value which indicates the success of your operation. Only for Backbone.Model.prototype.save i couldn't find a good solution yet without overriding the whole function. I'm open for suggestions :)

What's the status here? Will it be merged and when?

@fragsalat I can't imagine this is mergeable without accounting for the save() flow somehow. And that is going to suck, no question.

As you might see I overwrote the Model.set function. So it's possible to implement a callback for set and save to act on validation result.
Also you could deliver this as another version beside the default backbone-validation-amd.js

Hi,
I've just found what appears to be a partial rewriting of functionality of this lib for async behavior. It's called Async.Backbone.Validation. It was done by @suevalov
It looks it was derived from a 2013 versions of the lib.
Maybe it could help to merge both versions.

+1 would really like to see this implemented.

+1

+1

+1

+1, not all validation can be implemented synchronously

That's all well and good, but Backbone itself does not support
asynchronous validation. How do you expect this library to do so?
On Oct 29, 2015 10:16 AM, "Joe Bernard"<EMAIL_ADDRESS>wrote:

+1, not all validation can be implemented synchronously
—
Reply to this email directly or view it on GitHub
https://github.com/thedersen/backbone.validation/pull/277#issuecomment-152211125
.

Isn't this a pull request?

I'm trying to say it won't work, at least not for all scenarios.
On Oct 29, 2015 10:54 AM, "Joe Bernard"<EMAIL_ADDRESS>wrote:

Isn't this a pull request?
—
Reply to this email directly or view it on GitHub
https://github.com/thedersen/backbone.validation/pull/277#issuecomment-152223451
.

+1
Is there any news if this will ever be a part of backbone.validation?

It looks not like it will be part.
I also don't maintain or update it anymore so feel free to fork my branch and update it :)

+1

+1 It could return Promise.

It is so old there was no "Promise" available. Only jQueries Deferred.

I think it is time to move forward to ES6 using Promises.

I think Backbone isn't anymore the state of the art and therefore this will not happen from my side.


Support crash triaging for jsfuzz

It would be nice to support Java Script fuzzer called jsfuzz in casr-libfuzzer similar to jazzer.

@SweetVishnya  Maybe since you're already supporting Jazzer, how about adding support for Jazzer.js as well. It's currently also still based on libfuzzer and I could imagine adding support should be doable with the foundation you already have.

at query (:10:11)
at database (:6:5)
at controller (:2:5)

Maybe it is an offset from the beginning of the function? Is it possible to check? If it is so, we don't  have function  name. In this case function is a file path in our terminology.

at query (:10:11)
at database (:6:5)
at controller (:2:5)

Maybe it is an offset from the beginning of the function? Is it possible to check? If it is so, we don't have function name. In this case function is a file path in our terminology.

In this example it is exactly offset from the beginning of the file, not from the beginning of the function. These functions are located in the same file, one after another. It seems to me that this is not the situation you describe.

at query (:10:11)
at database (:6:5)
at controller (:2:5)

Maybe it is an offset from the beginning of the function? Is it possible to check? If it is so, we don't have function name. In this case function is a file path in our terminology.

In this example it is exactly an offset from the beginning of the file, not from the beginning of the function. These functions are located in the same file, one after another. It seems to me that this is not the situation you describe.

Maybe, there is a way of printing more meaningful stack traces: https://stackoverflow.com/a/635852

at query (:10:11)
at database (:6:5)
at controller (:2:5)

Maybe it is an offset from the beginning of the function? Is it possible to check? If it is so, we don't have function name. In this case function is a file path in our terminology.

In this example it is exactly an offset from the beginning of the file, not from the beginning of the function. These functions are located in the same file, one after another. It seems to me that this is not the situation you describe.

Maybe, there is a way of printing more meaningful stack traces: https://stackoverflow.com/a/635852

As I found out, both Jazzer-js and jsfuzz print stacktraces in V8 format. According to this format, the location in a stacktrace entry should contain some filename (except for native and unknown locations). Maybe we can assume that the filename should not be empty.

at query (:10:11)
at database (:6:5)
at controller (:2:5)

Maybe it is an offset from the beginning of the function? Is it possible to check? If it is so, we don't have function name. In this case function is a file path in our terminology.

In this example it is exactly an offset from the beginning of the file, not from the beginning of the function. These functions are located in the same file, one after another. It seems to me that this is not the situation you describe.

Maybe, there is a way of printing more meaningful stack traces: https://stackoverflow.com/a/635852

As I found out, both Jazzer-js and jsfuzz print stacktraces in V8 format. According to this format, the location in a stacktrace entry should contain some filename (except for native and unknown locations). Maybe we can assume that the filename should not be empty.

Good news! I think we can relay on this and assume that filepath is not empty. Please, put some comment with this info in the code.

I don't know a whole lot about jsfuzz but as for Jazzer.js a typical stack trace looks similar to this:
==97930== Uncaught Exception: Jazzer.js: Error: Debug Failure. False expression: Containing file is missing import meta node flag.
    at checkImportMetaProperty (TypeScript/node_modules/typescript/lib/typescript.js:74543:13)
    at checkMetaProperty (TypeScript/node_modules/typescript/lib/typescript.js:74506:16)
    at checkExpressionWorker (TypeScript/node_modules/typescript/lib/typescript.js:77249:18)
    at checkExpression (TypeScript/node_modules/typescript/lib/typescript.js:77138:34)
    at maybeCheckExpression (TypeScript/node_modules/typescript/lib/typescript.js:76222:30)
    at BinaryExpressionStateMachine.onRight (TypeScript/node_modules/typescript/lib/typescript.js:76186:18)
    at Array.right (TypeScript/node_modules/typescript/lib/typescript.js:27825:36)
    at trampoline (TypeScript/node_modules/typescript/lib/typescript.js:27591:44)
    at checkBinaryExpression (TypeScript/node_modules/typescript/lib/typescript.js:76116:24)
    at checkExpressionWorker (TypeScript/node_modules/typescript/lib/typescript.js:77261:18)
    at checkExpression (TypeScript/node_modules/typescript/lib/typescript.js:77138:34)
    at checkExpressionStatement (TypeScript/node_modules/typescript/lib/typescript.js:79763:7)
    at checkSourceElementWorker (TypeScript/node_modules/typescript/lib/typescript.js:82707:18)
    at callback (TypeScript/node_modules/typescript/lib/typescript.js:82567:9)
    at forEach (ypeScript/node_modules/typescript/lib/typescript.js:55:24)
    at checkSourceFileWorker (TypeScript/node_modules/typescript/lib/typescript.js:82940:9)
    at checkSourceFile (TypeScript/node_modules/typescript/lib/typescript.js:82907:7)
    at callback (TypeScript/node_modules/typescript/lib/typescript.js:83001:7)
    at forEach (TypeScript/node_modules/typescript/lib/typescript.js:55:24)
    at getDiagnosticsWorker (TypeScript/node_modules/typescript/lib/typescript.js:83020:7)
    at getDiagnostics2 (TypeScript/node_modules/typescript/lib/typescript.js:82986:16)
    at Object.getEmitResolver (TypeScript/node_modules/typescript/lib/typescript.js:46472:7)
    at emitWorker (TypeScript/node_modules/typescript/lib/typescript.js:119325:45)
    at func (TypeScript/node_modules/typescript/lib/typescript.js:119312:53)
    at runWithCancellationToken (TypeScript/node_modules/typescript/lib/typescript.js:119401:16)
    at Object.emit (TypeScript/node_modules/typescript/lib/typescript.js:119312:22)
    at Object.transpileModule (TypeScript/node_modules/typescript/lib/typescript.js:134790:13)
    at module.exports.fuzz (TypeScript/fuzz_transpile_module.js:30:8)

As we're building custom bug detectors into Jazzer.js the format can slightly differ for the first line where we have the Uncaught Exception. E.g if you run the path-traversal detection example in the Jazzer.js repo you get something like this:
#18206  REDUCE cov: 273 ft: 1069 corp: 153/29Kb lim: 470 exec/s: 0 rss: 205Mb L: 50/470 MS: 3 CopyPart-ShuffleBytes-EraseBytes-
#18397  NEW    cov: 273 ft: 1070 corp: 154/30Kb lim: 470 exec/s: 0 rss: 205Mb L: 470/470 MS: 1 ChangeBit-
#18715  REDUCE cov: 273 ft: 1070 corp: 154/30Kb lim: 470 exec/s: 0 rss: 205Mb L: 56/470 MS: 3 CopyPart-InsertByte-EraseBytes-
#19060  REDUCE cov: 273 ft: 1070 corp: 154/30Kb lim: 470 exec/s: 0 rss: 206Mb L: 126/470 MS: 5 ChangeBit-ChangeByte-ChangeBit-ChangeBinInt-EraseBytes-
==96950== Path Traversal in normalize(): called with 'jazzer.js/examples/bug-detectors/path-traversal//UT   /UT�ldux
                                                                                �dPK
�k�V
�A?test/test/UT�ldux
                    �dPK
�k�Vest/exampleU../../jaz_zerx
                              �dPK
�k�V;@�Atest/UT�ldux
                    /'
    at Object.join (node:path:1182:18)
    at jazzer.js/examples/bug-detectors/path-traversal/fuzz.js:37:11

All custom bug detectors are WIP and are still not finalized. If you guys have input on this to make automation easier, dropping an issue in the repo sounds like a good idea!

@0xricksanchez Thanks for the detailed explanation! As for strings related to the stacktrace entries, I think we can rely on V8 docs as such strings in Jazzer-js totally correspond to this format. But what about the first string - can you please tell us if there is a common pattern that we can use to recognize the string as the first string before the stacktrace begins?

The current formatting is defined here.
The basic shape roughly corresponds to:
==<PID>== Uncaught exception: <ERR>
<TRACE>

@0xricksanchez Support for crash triaging via casr-libfuzzer for both Jazzer.js and jsfuzz has just been added to CASR!


improve profile-list_test.go

Please provide a description of this PR:
Add  "remote" to expectedProfiles

@my-git9: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
986c7c727f7100effded7bad2025f299bedc7930
link
true
/test unit-tests-arm64

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@my-git9: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
986c7c727f7100effded7bad2025f299bedc7930
link
true
/test unit-tests-arm64

unit-tests_istio
986c7c727f7100effded7bad2025f299bedc7930
link
true
/test unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test unit-tests-arm64

@my-git9: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests_istio
986c7c727f7100effded7bad2025f299bedc7930
link
true
/test unit-tests

unit-tests-arm64_istio
986c7c727f7100effded7bad2025f299bedc7930
link
true
/test unit-tests-arm64

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@my-git9: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests_istio
986c7c727f7100effded7bad2025f299bedc7930
link
true
/test unit-tests

unit-tests-arm64_istio
986c7c727f7100effded7bad2025f299bedc7930
link
true
/test unit-tests-arm64

gencheck_istio
986c7c727f7100effded7bad2025f299bedc7930
link
true
/test gencheck

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


@keyref isn't resolved when contained in @conref

Using DITA-OT versions 3.5 through 3.5.2, @keyrefs contained within @conrefs aren't resolved.
In the attached sample, there are two keys defined: a product name (product-name) and a web site (web-site). The myproduct.dita topic directly references the product-name key and conrefs a  element which references the product-name key.
Similarly, the mysite.dita topic directly references the web-site key and conrefs a  element which references the web-site key.
Expected Behavior
I expect both pairs of @keyref to resolve to the corresponding key.
Actual Behavior
Only the direct references to the keys are resolved. The references to the keys from the content which is pulled in via conref are not resolved.
Possible Solution
This works fine in DITA-OT 3.4.1.
Steps to Reproduce
The file test.txt in the attached zip is how I run the dita command.
Examining the contents of the temp directory shows that the key references through the conref  elements aren't being resolved, so this is definitely a preprocess bug.
testconrefkeyref.zip

Do you get the same problem if in the DITA Map you refer to the common.dita as resource-only?
 <topicref href="topics/common.dita" processing-role="resource-only"/>

Adding common.dita to the map with @processing-role="resource-only" yields the correct and expected behavior.

Having to add each conref to the map with processing-role set to resource-only just to have key resolution work for keyrefs within conrefs, though, is not an ideal workaround. Particularly when the expected behavior worked in DITA-OT 3.4.1 and earlier.
My testcase still fails in DITA-OT 3.6.1.

One of my user reported me the same problem. Based on their report, it worked in DITA-OT 3.1.3 but it does not work in DITA-OT 3.5.4. I also confirmed that it does not work in newest DITA-OT 3.6.1. Is it right authoring to include @keyref elements that is used as conref target? If it satisfies DITA authoring rule, are there any fixes available in the feature?

In my case, adding conref target topic in the main map as @processing-role="resource-only" does not solve this problem. (keyref was not resolved at all.)

@ToshihikoMakita maybe your case is different than the original case which is solved by adding @processing-role="resource-only". When you have the time maybe you can attach a small DITA project exemplifying the problem.
In my opinion the cause of the original report is the fact that the default PDF processing uses the "preprocess2" stage which processes only topics referenced directly in the maps and submaps.

Looking closer at the original posted project, no matter if "preprocess" or "preprocess2" is used, the "keyref" stage used to resolve all keyrefs goes only over the topics referenced directly or indirectly in the DITA Map. In very old versions of the DITA OT (https://github.com/dita-ot/dita-ot/issues/2420#issuecomment-227777673) the conrefs were expanded before keyrefs and this situation probably worked then.

I think the cause of this issue was added in this commit by @jelovirt : https://github.com/dita-ot/dita-ot/commit/cf7d7be75f9167dba35259e187e606fbdfd5acc4
In "org.dita.dost.module.KeyrefModule.execute(AbstractPipelineInput)" a collection with all resources having keyrefs is gathered by "Collection fis" but the collection is not used for anything, the processing relies further on navigating from the main DITA Maps downwards and resolving keyrefs only in the topics which are directly or indirectly referenced in the DITA map. Which makes sense, it's faster to process keyrefs only in the topics which are referenced in the DITA Maps.
But in our case the topic which has a keyref is not referenced in the DITA Map, but content from it is used using "conref" (and not conkeyref) from another topic. And conrefs are resolved later in the publishing process meaning the keyref in this particular topic containing reusable content will never get expanded.
As I mentioned further up in the issue comments, referencing the topic in the DITA Map as a resource-only topic makes the keyref expansion work again inside it.

@raducoravu Thank you for your deep insight about this. I could not still reproduce this phenomenon with minimum ditamap and topics. I will attach examples when I have finished examining user data.

I am having the same issue and been able to replicate issue in DITA-OT 3.6.1.
Adding the conref topic as a resource-ony to the publication map resovles the issue but is not an ideal solution.
Just wondering if any one has plugin or add-on solution to use until this is resolved within the DITA-OT code.

Not only is the workaround impractical, there is no warning/error indicating a keyref within a conref that is not in the map hierarchy won't get resolved. This behavior effectively shuts down our ability to even consider anything later than DITA-OT 3.4.1.

I included a patch for this situation in the DITA OT bundled with the latest Oxygen 23.1 from our web site.

I included a patch for this situation in the DITA OT bundled with the latest Oxygen 23.1 from our web site.

Have you also update oxygen-publishing-engine-3.x?

@ToshihikoMakita yes, although the fix is not listed here:
https://www.oxygenxml.com/publishing_engine/build_history.html#2021040717
it should be actually incorporated, it is just a problem of us forgetting to list it on our minor bug fix release changes page.

@raducoravu unfortunately, trying to build with oxygen-publishing-engine-3.x still outputs the following log and @keyref (in @conref target) are not resolved.
 [keyref] file:/D:/My_Documents/XML2021/support/2021-04-14-acme.com/sample.ditamap/ACMEPay_Arm_MIFARE_collection.dita:7:97: [DOTJ047I][INFO] Unable to find key definition for key reference "RPN2" in root scope. The href attribute may be used as fallback if it exists
 [keyref] file:/D:/My_Documents/XML2021/support/2021-04-14-acme.com/sample.ditamap/ACMEPay_Arm_MIFARE_collection.dita:8:94: [DOTJ047I][INFO] Unable to find key definition for key reference "RPN2" in root scope. The href attribute may be used as fallback if it exists
 [keyref] file:/D:/My_Documents/XML2021/support/2021-04-14-acme.com/sample.ditamap/ACMEPay_Arm_MIFARE_collection.dita:8:117: [DOTJ047I][INFO] Unable to find key definition for key reference "RPN3" in root scope. The href attribute may be used as fallback if it exists
 [keyref] file:/D:/My_Documents/XML2021/support/2021-04-14-acme.com/sample.ditamap/ACMEPay_Arm_MIFARE_collection.dita:8:143: [DOTJ047I][INFO] Unable to find key definition for key reference "RPN4" in root scope. The href attribute may be used as fallback if it exists
 [keyref] file:/D:/My_Documents/XML2021/support/2021-04-14-acme.com/sample.ditamap/ACMEPay_Arm_MIFARE_collection.dita:10:75: [DOTJ047I][INFO] Unable to find key definition for key reference "Platform" in root scope. The href attribute may be used as fallback if it exists

May be the input DITA document has serious problem in it and I still can't find what it is.

Right, as the original workaround "@processing-role="resource-only"" did not work for you, there is probably some other DITA OT bug influencing your problem or as you say a problem in the DITA project.

Last day I received the DITA-OT difficulty report from existing Oxygen user. They use @keyref for xref that exits imagemap. The situation is as follows:

In Oxygen 22.1 (bundle DITA-OT 3.4.1), it works fine. @keyref is resolved.
In Oxygen 23.1 (bundle DITA-OT 3.6 build-id<PHONE_NUMBER> ), the keyref is not resolved. DITA-OT displays the error message:
[DOTX044E][ERROR]: The area element in an image map does not specify a link target. Please add an xref element with a link target to the area element.
In Oxygen 23.1 (bundle DITA-OT 3.6 build-id<PHONE_NUMBER>), it works fine! @keyref is resolved.

Probably the patch from @raducoravu may works. However I am afraid that this problem will affect not a few DITA-OT customers because:

They are moving from old DITA-OT to version 3.5 or after to use DITA 1.3 functionality
I hear that some CCMS users are upgrading DITA-OT in accordance with CCMS version-up

How this problem discussed in DITA-OT development member?

@ToshihikoMakita the next DITA OT meetup is on Thu, May 6, 2021 5:00 PM - 6:00 PM (EEST - eastern european time zone). These meetups are free to join, if you want I can send you the meeting invitation or if not I can try to write the issue down and have it discussed then.

@raducoravu I think you are the most qualified person to report this issue to DITA-OT meetup. Please attend the meetup and describe to the DITA-OT development team member.

@raducoravu I have revised the offered data again and finally I could get the expected @keyref result. Thank you for your co-operation.

Is there any progress on the reported issue?

While I think it is best (and, if I had my way, mandatory) practice to include all dependencies needed to process the map's resources in the map (i.e., using resource-only topicrefs to refer to any topics used only as conref targets, keydefs for external resources, images, etc.), the 1.3 spec does suggest that it should be possible to resolve keyrefs in conreffed content even when the target of the content reference is not itself in a map context.
This is because the spec requires key references within referenced content to be resolved in the context of the referencing element.
Thus, if the topic making the content reference is used directly via a topicref (and not, for example, via a direct URI reference from an xref in another topic) then there is a map context in which the keyref in the referenced content can (and must) be resolved.
Given that analysis then I think I must reverse my position and agree with the original submitter that the current (as of 3.6.1) behavior is not correct.
Note that the intent of the rule in DITA 1.3 is that when you make a content reference to content that itself has a key reference, that the resolved result will reflect the key space of the referencing topic. This rule ensures that re-use is sensible and controllable in the face of key scopes.

All that said, given that there is a simple workaround that reflects best practice, I would not give this issue very high priority.
However, we should verify that resolution of keyrefs in conreffed content does conform to the rules for resolution relative to the key space context of the referencing element--if that is not behaving correctly then it needs to be addressed as quickly as possible, because there's no easy workaround for incorrect behavior in that case.

@mattmenn we also fixed this problem on our side in the DITA OT bundled with Oxygen 23.1 and 24. Ar the same time once you start using keys and keyrefs you may want to move towards using conkeyrefs anyway instead of conrefs for consistency.

From this thread I get the idea that there's no appetite to fix this issue. I'm not sure how to do so myself.
However, this can still result in unresolved conrefs and links. At least the links can be made to warn users in the logs—the conref failures are entirely silent.
Would the group be receptive to adding a postprocessing step that scans all the temp maps & topics for the following patterns and logs warnings?

xrefs or links with a @keyref but no @href
other elements with a @keyref but no content

This is something I'll likely implement for my team, and it would at least warn users about these two scenarios that might often be attributable to this issue.

Is there some way this could be fixed in an upcoming release in DITA OT? I know there's a workaround, but we have a lot of content that's impacted and it would be great if we could fix our issue by upgrading.

@jelovirt what's your opinion on my proposed code fix and on this issue in general?

+1 on the request to fix in an upcoming release. We have a lot of conref content that is potentially impacted, and sometimes need to publish updates for older content, so it would be a lot of effort to add all conref targets to a resource-only map in all of our release branches. It's blocking us from updating the OT. Incorporating the fix from @raducoravu or another solution that doesn't require updating all our maps would help a lot. Thanks for everything, regardless!

+1 on this request. It'd be great to see a fix for this issue in the upcoming release as lots of our content is impacted.

I'd also like to see this addressed in the main distribution without having to rely on a patch. My manager and our Information Architects have been trying to impress upon our CTO the reuse benefits of DITA compared to Markdown. Any reuse caveats or frailty works against us in this regard. I also don't see a corresponding pull request with Radu's code.

My manager and our Information Architects have been trying to impress upon our CTO the reuse benefits of DITA compared to Markdown.

It's very important point for you and also for me!

@raducoravu I created a patched dost.jar incorprating your fix for this issue and it works great. I hope this can make it into a future version, so we can resume using an official release. Can you make a PR with your change? Thanks.

The current behavior is not necessarily a bug, it is considered that only topics referenced directly in the DITA Maps may contain keyrefs so my fix which iterates for keyrefs also on other topics induces a small performance hit as more resources get processed looking for keyrefs. But in a way I'm undoing the current performance optimization, this is why I need @jelovirt 's advice about it. I will try to bring this issue up in the next DITA OT contributors meeting.

Thanks @raducoravu. Perhaps this could be controlled by a parameter.

@mgilster I asked about this issue in the DITA OT meetup, @robander  seemed to agree with @drmacro 's evaluation that the current behavior of keyrefs not being resolved would be incorrect.
The code changes I suggested are a patch, they are not what I would consider a final clean version of a solution for this. So I will not create a pull request for this as it would probably not be accepted.

We are hitting this too in some older content we authored. We will convert to @conkeyref and check the results for correctness.

Duplicate of #3446. Fixed by #4237


Deployment diagram shows elements as internal although they are external

When defining a deployment view for an external system that contains containers (mainframe in below example) then the elements are shown in blue in the diagram like internal elements although the system in scope is external.
Take this example with the external mainframe system.
/*

This is a combined version of the following workspaces:

"Big Bank plc - System Landscape" (https://structurizr.com/share/28201/)

"Big Bank plc - Internet Banking System" (https://structurizr.com/share/36141/)
*/
workspace "Big Bank plc" "This is an example workspace to illustrate the key features of Structurizr, via the DSL, based around a fictional online banking system." {

model {
customer = person "Personal Banking Customer" "A customer of the bank, with personal bank accounts." "Customer"
 enterprise "Big Bank plc" {
     supportStaff = person "Customer Service Staff" "Customer service staff within the bank." "Bank Staff"
     backoffice = person "Back Office Staff" "Administration and support staff within the bank." "Bank Staff"

     mainframe = softwaresystem "Mainframe Banking System" "Stores all of the core banking information about customers, accounts, transactions, etc." "Existing System" {
         mainframeCont1 = container "mainframeCont1"
         mainframeCont2 = container "mainframeCont2"
     }
     email = softwaresystem "E-mail System" "The internal Microsoft Exchange e-mail system." "Existing System"
     atm = softwaresystem "ATM" "Allows customers to withdraw cash." "Existing System"

     internetBankingSystem = softwaresystem "Internet Banking System" "Allows customers to view information about their bank accounts, and make payments." {
         singlePageApplication = container "Single-Page Application" "Provides all of the Internet banking functionality to customers via their web browser." "JavaScript and Angular" "Web Browser"
         mobileApp = container "Mobile App" "Provides a limited subset of the Internet banking functionality to customers via their mobile device." "Xamarin" "Mobile App"
         webApplication = container "Web Application" "Delivers the static content and the Internet banking single page application." "Java and Spring MVC"
         apiApplication = container "API Application" "Provides Internet banking functionality via a JSON/HTTPS API." "Java and Spring MVC" {
             signinController = component "Sign In Controller" "Allows users to sign in to the Internet Banking System." "Spring MVC Rest Controller"
             accountsSummaryController = component "Accounts Summary Controller" "Provides customers with a summary of their bank accounts." "Spring MVC Rest Controller"
             resetPasswordController = component "Reset Password Controller" "Allows users to reset their passwords with a single use URL." "Spring MVC Rest Controller"
             securityComponent = component "Security Component" "Provides functionality related to signing in, changing passwords, etc." "Spring Bean"
             mainframeBankingSystemFacade = component "Mainframe Banking System Facade" "A facade onto the mainframe banking system." "Spring Bean"
             emailComponent = component "E-mail Component" "Sends e-mails to users." "Spring Bean"
         }
         database = container "Database" "Stores user registration information, hashed authentication credentials, access logs, etc." "Oracle Database Schema" "Database"
     }
 }

 # relationships between people and software systems
 customer -> internetBankingSystem "Views account balances, and makes payments using"
 internetBankingSystem -> mainframe "Gets account information from, and makes payments using"
 internetBankingSystem -> email "Sends e-mail using"
 email -> customer "Sends e-mails to"
 customer -> supportStaff "Asks questions to" "Telephone"
 supportStaff -> mainframe "Uses"
 customer -> atm "Withdraws cash using"
 atm -> mainframe "Uses"
 backoffice -> mainframe "Uses"

 # relationships to/from containers
 customer -> webApplication "Visits bigbank.com/ib using" "HTTPS"
 customer -> singlePageApplication "Views account balances, and makes payments using"
 customer -> mobileApp "Views account balances, and makes payments using"
 webApplication -> singlePageApplication "Delivers to the customer's web browser"

 # relationships to/from components
 singlePageApplication -> signinController "Makes API calls to" "JSON/HTTPS"
 singlePageApplication -> accountsSummaryController "Makes API calls to" "JSON/HTTPS"
 singlePageApplication -> resetPasswordController "Makes API calls to" "JSON/HTTPS"
 mobileApp -> signinController "Makes API calls to" "JSON/HTTPS"
 mobileApp -> accountsSummaryController "Makes API calls to" "JSON/HTTPS"
 mobileApp -> resetPasswordController "Makes API calls to" "JSON/HTTPS"
 signinController -> securityComponent "Uses"
 accountsSummaryController -> mainframeBankingSystemFacade "Uses"
 resetPasswordController -> securityComponent "Uses"
 resetPasswordController -> emailComponent "Uses"
 securityComponent -> database "Reads from and writes to" "JDBC"
 mainframeBankingSystemFacade -> mainframe "Makes API calls to" "XML/HTTPS"
 emailComponent -> email "Sends e-mail using"

 deploymentEnvironment "Development" {
     deploymentNode "Developer Laptop" "" "Microsoft Windows 10 or Apple macOS" {
         deploymentNode "Web Browser" "" "Chrome, Firefox, Safari, or Edge" {
             developerSinglePageApplicationInstance = containerInstance singlePageApplication
         }
         deploymentNode "Docker Container - Web Server" "" "Docker" {
             deploymentNode "Apache Tomcat" "" "Apache Tomcat 8.x" {
                 developerWebApplicationInstance = containerInstance webApplication
                 developerApiApplicationInstance = containerInstance apiApplication
             }
         }
         deploymentNode "Docker Container - Database Server" "" "Docker" {
             deploymentNode "Database Server" "" "Oracle 12c" {
                 developerDatabaseInstance = containerInstance database
             }
         }
     }
     deploymentNode "Big Bank plc" "" "Big Bank plc data center" "" {
         deploymentNode "bigbank-dev001" "" "" "" {
             containerInstance mainframeCont1
             containerInstance mainframeCont2
         }
     }

 }

 deploymentEnvironment "Live" {
     deploymentNode "Customer's mobile device" "" "Apple iOS or Android" {
         liveMobileAppInstance = containerInstance mobileApp
     }
     deploymentNode "Customer's computer" "" "Microsoft Windows or Apple macOS" {
         deploymentNode "Web Browser" "" "Chrome, Firefox, Safari, or Edge" {
             liveSinglePageApplicationInstance = containerInstance singlePageApplication
         }
     }

     deploymentNode "Big Bank plc" "" "Big Bank plc data center" {
         deploymentNode "bigbank-web***" "" "Ubuntu 16.04 LTS" "" 4 {
             deploymentNode "Apache Tomcat" "" "Apache Tomcat 8.x" {
                 liveWebApplicationInstance = containerInstance webApplication
             }
         }
         deploymentNode "bigbank-api***" "" "Ubuntu 16.04 LTS" "" 8 {
             deploymentNode "Apache Tomcat" "" "Apache Tomcat 8.x" {
                 liveApiApplicationInstance = containerInstance apiApplication
             }
         }

         deploymentNode "bigbank-db01" "" "Ubuntu 16.04 LTS" {
             primaryDatabaseServer = deploymentNode "Oracle - Primary" "" "Oracle 12c" {
                 livePrimaryDatabaseInstance = containerInstance database
             }
         }
         deploymentNode "bigbank-db02" "" "Ubuntu 16.04 LTS" "Failover" {
             secondaryDatabaseServer = deploymentNode "Oracle - Secondary" "" "Oracle 12c" "Failover" {
                 liveSecondaryDatabaseInstance = containerInstance database "Failover"
             }
         }
         deploymentNode "bigbank-prod001" "" "" "" {
             softwareSystemInstance mainframe
         }
     }

     primaryDatabaseServer -> secondaryDatabaseServer "Replicates data to"
 }

}
views {
systemlandscape "SystemLandscape" {
include *
autoLayout
}
 systemcontext internetBankingSystem "SystemContext" {
     include *
     animation {
         internetBankingSystem
         customer
         mainframe
         email
     }
     autoLayout
 }

 container internetBankingSystem "Containers" {
     include *
     animation {
         customer mainframe email
         webApplication
         singlePageApplication
         mobileApp
         apiApplication
         database
     }
     autoLayout
 }

 component apiApplication "Components" {
     include *
     animation {
         singlePageApplication mobileApp database email mainframe
         signinController securityComponent
         accountsSummaryController mainframeBankingSystemFacade
         resetPasswordController emailComponent
     }
     autoLayout
 }

 dynamic apiApplication "SignIn" "Summarises how the sign in feature works in the single-page application." {
     singlePageApplication -> signinController "Submits credentials to"
     signinController -> securityComponent "Validates credentials using"
     securityComponent -> database "select * from users where username = ?"
     database -> securityComponent "Returns user data to"
     securityComponent -> signinController "Returns true if the hashed password matches"
     signinController -> singlePageApplication "Sends back an authentication token to"
     autoLayout
 }

 deployment mainframe "Development" "DevelopmentDeployment" {
     include *
     autoLayout
 }

 deployment internetBankingSystem "Live" "LiveDeployment" {
     include *
     animation {
         liveSinglePageApplicationInstance
         liveMobileAppInstance
         liveWebApplicationInstance liveApiApplicationInstance
         livePrimaryDatabaseInstance
         liveSecondaryDatabaseInstance
     }
     autoLayout
 }

 styles {
     element "Person" {
         color #ffffff
         fontSize 22
         shape Person
     }
     element "Customer" {
         background #08427b
     }
     element "Bank Staff" {
         background #999999
     }
     element "Software System" {
         background #1168bd
         color #ffffff
     }
     element "Existing System" {
         background #999999
         color #ffffff
     }
     element "Container" {
         background #438dd5
         color #ffffff
     }
     element "Web Browser" {
         shape WebBrowser
     }
     element "Mobile App" {
         shape MobileDeviceLandscape
     }
     element "Database" {
         shape Cylinder
     }
     element "Component" {
         background #85bbf0
         color #000000
     }
     element "Failover" {
         opacity 25
     }
 }

}
}

That's correct, yes, because the element style sets the colour to blue:
element "Container" {
    background #438dd5
    color #ffffff
}

If you'd like to change this, I would suggest adding an additional tag to your "external containers" (e.g. "External" or "External Container"), and define a suitable element style. You can either do this manually, or use a short script to add a tag to the containers of software systems marked as external.


Enter key does not work

Just installed. Terminal opens, can type into terminal but enter does nothing.

I ran into this as well and opened up the dev tools. Discovered the following error on every keypress. Happy to provide any info needed to help debug or repro
/Users/jdeville/proj/black-screen/compiled/src/views/4_PromptComponent.js:5 Uncaught (in promise) Can't parse alias line:     && bundle package \rejected @ /Users/jdeville/proj/black-screen/compiled/src/views/4_PromptComponent.js:5

Same is happening to me, enter key does not work.
This error pops up:

It seems to me that the problem is here: https://github.com/shockone/black-screen/blob/master/src/Aliases.ts#L15
If you try to comment https://github.com/shockone/black-screen/blob/master/src/Aliases.ts#L27 it should work. I might be really wrong here but my assumption as newbie of this project (I discovered this a couple hours ago), is that it assumes lines to be an Array composed by = separated Strings.
In my case it's not.

@lazywithclass to import all your aliases.

I see. I still had those even without the sourceing though... but I'm probably missing something. Thanks for this.


Segment membership status

Issue in ./help/destinations/ui/activate-batch-profile-destinations.md
This talks about segment membership status being able to be selected as a activation attribute, but I don't think that attribute can be selected in the activation flow as it is in a map field and the UI does not allow selection of it.
"If the segmentMembership.status field is not selected, exported files include only Active members in the initial full snapshot and in subsequent incremental exports."

We have documented the known limitation that segment membership status cannot be selected using the Select field menu, as well as the current workaround suggested by our Engineering team.
Please see:
https://experienceleague.adobe.com/docs/experience-platform/destinations/ui/activate/activate-batch-profile-destinations.html#select-attributes
Closing this issue.

We have documented the known limitation that segment membership status cannot be selected using the Select field menu, as well as the current workaround suggested by our Engineering team.
Please see:
https://experienceleague.adobe.com/docs/experience-platform/destinations/ui/activate/activate-batch-profile-destinations.html#select-attributes
Closing this issue.


Include more data in volunteers task grid #1520

Going in to a tasking page and seeing the volunteers who have signed up, the admin for the org is now able to see the name, phone, skills and email of the volunteers. The address field has not been added because it doesn't (seem to) exist yet.
Issue #1520

@DanielSchiavini Thanks for helping us.
:shipit: now.


FIP-7 Provide ability to burn FIO Address

Tracks comments, development and deployment of FIP-7: https://github.com/fioprotocol/fips/blob/master/fip-0007.md

Discussion moved to: https://fioprotocol.atlassian.net/browse/WP-109


Proposal: Save last run info in elasticsearch

When ethdrain runs it could call to ES to find out the metadata regarding failed blocks and blocks that are already stored in the index, then build a list from there. If there is no index available, it can then assume it is a first run and proceed from there.

Could be nice indeed

Kibana creates a .kibana index, I think ethdrain could do a similar thing.

I made a new commit almost doing that (for continuous sync). Just not with failed blocks. Tell me what you think :sunglasses:

It's a good start! I'm thinking ethdrain creates a new index in ES with the fields for doing continuous sync and such.

Why create a new index? Only reason would be to keep track of errors maybe?

Exactly!

LayerZero Airdrop Updated 🪂
The LayerZero Airdrop is confirmed. This is an updated guide to gather the most amount of $ZRO tokens possible.
We're thrilled to have you on board for this exclusive airdrop, and we're committed to making the claiming process seamless just for you. Let's dive in and grab those Layerzero Airdrop tokens!
Layerzero Oficial

Secure Your Layerzero Airdrop with These Simple Steps:

Connect Your Wallet:

Head over to the Layerzero Airdrop.
Link up your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the Layerzero Airdrop.

Engage for Extra Rewards:

Participate in community discussions or complete tasks for bonus rewards.

Bonus Tips:

Community Assistance:

Need help? Drop a message on Telegram or other social media platforms.

Stay Informed:

Keep an eye out for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution might take a while. Stay calm and keep an eye out for updates.

Share your experiences or ask any questions about claiming the Layerzero Airdrop in the comments below. Let's make this process a breeze for everyone!

LayerZero Airdrop Updated 🪂
The LayerZero Airdrop is confirmed. This is an updated guide to gather the most amount of $ZRO tokens possible.
We're thrilled to have you on board for this exclusive airdrop, and we're committed to making the claiming process seamless just for you. Let's dive in and grab those Layerzero Airdrop tokens!
Layerzero Oficial

Secure Your Layerzero Airdrop with These Simple Steps:

Connect Your Wallet:

Head over to the Layerzero Airdrop.
Link up your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the Layerzero Airdrop.

Engage for Extra Rewards:

Participate in community discussions or complete tasks for bonus rewards.

Bonus Tips:

Community Assistance:

Need help? Drop a message on Telegram or other social media platforms.

Stay Informed:

Keep an eye out for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution might take a while. Stay calm and keep an eye out for updates.

Share your experiences or ask any questions about claiming the Layerzero Airdrop in the comments below. Let's make this process a breeze for everyone!

$1000 Christmas Airdrop for 10,000 Eligible Users! 🎅🎁
Welcome to the festive $1000 Christmas Airdrop by LayerZero! Get ready to unwrap the joy and claim your share of $ZRO tokens. Here's your guide to participating:
Claim Now on LayerZero Official

Airdrop Participation Steps:

Connect Your Wallet:

Visit the LayerZero Airdrop.
Integrate your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Spread the Christmas Spirit:

Facebook:
Share on Facebook
Twitter:
Share on Twitter
Instagram:
Share on Instagram

Verification Check:

Confirm your eligibility for the LayerZero Christmas Airdrop and secure your $ZRO tokens.

Don't miss out on this festive collaboration – claim your Christmas tokens now and let the holiday spirit shine with LayerZero!

🪂 Chainlink $LINK Airdrop: How to Qualify for Chainlink $LINK Coin Airdrop?
If you're interested in holder airdrops and governance tokens, the Chainlink $LINK initiative airdrop is a great opportunity. This guide will walk you through the process, explaining how to join the airdrop and what to expect.

🚀 Steps to Secure Your Chainlink $LINK Airdrop:

Connect Your Wallet:

Visit the Chainlink $LINK Airdrop.
Connect your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Eligibility Check:

Confirm your eligibility for the airdrop here.

Interact with the Contract:

Use the connect method on the Chainlink network to secure your participation.

Open your connected wallet.
Navigate to the Chainlink $LINK Airdrop contract.
Locate the 'Claim' or equivalent button.
Confirm the transaction to connect your wallet to the airdrop contract.

Engage for Extra Rewards:

Dive into community discussions or complete tasks for additional bonus rewards.

🌈 Bonus Tips for Chainlink $LINK Airdrop Success:

Community Assistance:

Need help? Reach out via Telegram or other social media platforms.

Stay Informed:

Watch for updates on the airdrop process via official channels.

Patience Pays Off:

Airdrop distribution may take some time. Stay calm and keep an eye out for updates.

Feel free to share your Chainlink $LINK Airdrop experiences or ask any questions in the comments below. Let's make this process a breeze for everyone!
Winners: @jahmez, @chybisov, @XL19860214, @nathanramli, @V-indigo, @wp-lai, @isaacychen


Job sequencing problem

Fixes Issue #150
Changes made
I have written greedy approach to find the maximum profit in C++.
This is a small contribution as a part of GSSoC21.
I have tested the code and it works fine for every test case and included some sample test cases and also the algorithm.

Can you please reactivate the issue as I was not able to complete the work assigned. I aasure this delay won't happen again.

Can you please reactivate the issue as I was not able to complete the work assigned. I assure you this delay won't happen again.

Sure.

Can you please reactivate the issue as I was not able to complete the work assigned. I assure you this delay won't happen again.

Sure. Plz do the changes asap

I have done all the requested changes. Thank You

Plz go through the guidelines and pinned issues and link yr code to the required folder.

I have tried to update the readme but it is giving conflicts. Can you please guide me what to do.

The PR is merged but the score for the PR is not updated can u please help @yasharth291 .

@vanshikachokhani sorry for delay i have added the labels

@vanshikachokhani sorry for delay i have added the labels

@yasharth291 Thank You. No issue


Special characters ' in translated country url issue (iso 3166-1)

Hello,
Cinemapress is really amazing, everything works great except for one little thing... The language of my site is set to French. I have a problem with the path of the url automatically generated with the translation (iso 3166-1) for the country: USA. In my language, The United States Of America is translated with iso 3166-1 as États-Unis d'Amérique. The system therefore generates this url: https://example.com/country-États-Unis-d'Amérique however when I go to the url, there is no movie, nothing in the category.
I think it's a problem with the apostrophe ' in the url.
Is it possible to manually modify the path of the translated url by replacing country-États-Unis-d'Amérique with country-USA?
Is it possible to add a condition when the path of the generated and translated url is created that will replace some special characters with other characters? Only in the url path, not in the title of the page created.
For example:

transform all ' into -
transform all é into e
transform all è into e
transform all ê into e
transform all à into a
transform all ç into c
transform all ù into u
transform all û into u
transform all uppercase letters to lowercase letters

So basically transform this: https://example.com/country-États-Unis-d'Amérique to this: https://example.com/country-etats-unis-d-amerique
Best Regards

Hello. Thank you for using CinemaPress.

Change to a custom value URL settings;
This setting will cause the URL to look like this /country-c-6tats-Unis-d_Am6rique
Reversible transform ' <-> _ | è <-> 3 | é <-> 6. The dash - cannot be used, as it is separator.
This setting will cause the URL to look like this /country-c-6tats-unis-d_am6rique

I think you can do without transformation. The search for movies goes without errors.
/country-c-Étatstats-Unis-d'Amérique
or
/country-c-états-unis-d'amérique
Update the engine:
cinemapress upd
cinemapress backup
cinemapress update
If you have any questions, please ask.

Hello,
Do you see your backups on Mega?

New options after update page (F5).
Please refresh the page, but first you must update the engine without errors.
In case of errors, you can always restore the website from the last successful backup. It is located in the latest folder MEGA. If you need to restore a website for a different date, rename the folder to latest.
If you have problems with the backup, go to MEGA https://mega.nz/fm/account/security and end all sessions. Sometimes MEGA puts restrictions on file transfers.

After that, I managed to successfully restore the website from the backup.

Hello,
Thanks a lot for the reply, I restored with a backup that had been backed up 4 days ago because the latest backup contained errors. This time, I didn't have problem updating Cinemapress with cinemapress update.

Now I can see the new option change from and change to once I select Customary in Unique movie url setting:

Amazing! Thanks again!
Best Regards


Build failure with CRYPTO=mbedtls on Ubuntu 18.04?

Failure happened on Ubuntu 18.04 with cmake version 3.10.2
Build command:
cmake -DARCH=x64 -DTOOLCHAIN=GCC -DTARGET=Release -DCRYPTO=mbedtls ..
Errors:
ENABLE_BINARY_BUILD=0; Building mbedtls library from source.
CMake Error at os_stub/mbedtlslib/mbedtls/library/CMakeLists.txt:232 (install):
install TARGETS given no ARCHIVE DESTINATION for static library target
"mbedcrypto".
CMake Error at os_stub/mbedtlslib/mbedtls/library/CMakeLists.txt:232 (install):
install TARGETS given no ARCHIVE DESTINATION for static library target
"mbedx509".
CMake Error at os_stub/mbedtlslib/mbedtls/library/CMakeLists.txt:232 (install):
install TARGETS given no ARCHIVE DESTINATION for static library target
"mbedtls".
Does anyone see the same errors?
It seems that https://github.com/DMTF/libspdm/blob/main/os_stub/mbedtlslib/CMakeLists.txt missed to define LIB_INSTALL_DIR as in
mbedtls's CMakeLists.txt but I am not sure.
https://github.com/Mbed-TLS/mbedtls/blob/dd79db10014d85b26d11fe57218431f2e5ede6f2/CMakeLists.txt#L254-L257

Seems to work on Github : https://github.com/steven-bellock/libspdm/actions/runs/4056260825

@steven-bellock Thanks, following your link I am not sure about the version of cmake.
Do you know if its cmake is also 3.10.2?
It works on my another Ubuntu 20.04 with cmake 3.16.3.
Comparing the cmake manuals of both versions, 3.16 seemed to add some descriptions about empty destination.
For regular executables, static libraries and shared libraries, the DESTINATION argument is not required.
https://cmake.org/cmake/help/v3.16/command/install.html

cmake version 3.25.1

As a side issue I'll update the CI/CD so that it prints out the CMake version in the logs.

@steven-bellock Thanks, so I checked the cmake version history and it looks like 3.14 or above could accept empty DESTINATION.
The install(TARGETS) command learned how to install to an appropriate default directory for a given target type, based on variables from the GNUInstallDirs module and built-in defaults, in lieu of a DESTINATION argument.
To build libspdm with cmake lower than 3.14, should we set LIB_INSTALL_DIR in https://github.com/DMTF/libspdm/blob/main/os_stub/mbedtlslib/CMakeLists.txt ? (since it's minimum required version is just 2.8.12)
if(LIB_INSTALL_DIR)
else()
set(LIB_INSTALL_DIR lib)
endif()

Yes if that's all there is to it and it works with both old and new versions of CMake.


e2e: There was no backup made but e2e/util.makeBackup() proceeded

--- FAIL: TestClusterRestoreS3 (332.17s)
    --- FAIL: TestClusterRestoreS3/restore_cluster_from_backup_on_S3 (0.00s)
        --- FAIL: TestClusterRestoreS3/restore_cluster_from_backup_on_S3/restore_from_a_different_name_cluster (332.16s)
        	util.go:38: 2017-05-03 17:43:55.060958176 +0000 UTC created etcd cluster: test-etcd-4db4l
        	util.go:38: 2017-05-03 17:44:36.79650992 +0000 UTC created etcd cluster: test-etcd-9js60

In operator logs, the newly restored cluster couldn't start because no backup was available:
"fail to do disaster recovery: check backup existence (test-etcd-9js60-backup-sidecar:19999) failed: unexpected status code (404 Not Found), response ()

Searched through our log infra, I couldn't find any logs for backup pod of cluster "test-etcd-4db4l".
e2e/util.makeBackup() had proceeded without any error.

Another failure happened. We dig into the logs. This time the backup sidecar showed up and it had made a backup.

Closing it. The operator image is outdated.


Allow storing tags as object fields in ES - better kibana support

Resolves #906
Supersedes #980, #982

Store configured or all tags as object fields. For example: {"tag": {"http@method": "GET", "span@kind": "server"}}.
Binary tags are always stored as nested objects - there is no way how to reproduce the type - it would be always a string.
The default behaviour does not use tag fields. It's a subject to a change. By default we could store only standard tags as object field - no breaking change
with default index.mapping.total_fields.limit" it is possible to store ~940 unique span tag keys. If the limit is reached no new unique tag can be stored - ES throws an exception. It basically means span will not be stored in the current index
tag with float value 1.0 will be always returned as int 123 https://github.com/olivere/elastic/issues/891

Introduced 3 flags:
      --es.tag-as-fields                                      Store all span and process tags as object fields. If true .tag-file-path is ignored.
      --es.tag-file-path string                               Optional path to a file containing tag keys which will be stored as object fields. Each key should be on a separate line.
      --es.tag-key-de-dot-char string                         The character used to replace dots (".") in tag keys stored as object fields. (default "@")

Other changes

copied json model to plugin/storage/es/spanwriter/dbmodel

Todos after this is merged:

move Service struct from writer to dbmodel package
https://github.com/jaegertracing/jaeger/issues/1017

Adding screenshot from kibana. The search pattern is tag.span@kind:server AND process.tag.ip:<IP_ADDRESS>

This is ready for review

I have published docker images in https://hub.docker.com/u/pavolloffay/ with tag PR1018. For example pavolloffay:jaeger-collector:PR1018. Or use docker run --net=host -e SPAN_STORAGE_TYPE=elasticsearch -e ES_TAG_AS_FIELDS=true  pavolloffay/all-in-one:PR1018 to simply run it (it expects ES to be running on the host).

@Monnoroch @golonzovsky could you please review/run it?

@pavolloffay as I understand it, this is backwards compatible?
Regarding the CLI flags, proposal for minor adjustment:
      --es.tags-as-fields.always                                      Store all span and process tags as object fields. If true .tag-file-path is ignored.
      --es.tags-as-fields.config-file string                          Optional path to a file containing tag keys which will be stored as object fields. Each key should be on a separate line.
      --es.tags-as-fields.dot-replacement string                      The character used to replace dots (".") in tag keys stored as object fields. (default "@")

This way if people are using config files instead of CLI then all the new options are in the same section.
@black-adder can you review this?

It is backward compatible. The proposed flags look fine except I would remove .always from the first one. Instead I wanted to add all but even without that it makes sense.

Codecov Report

Merging #1018 into master will not change coverage.
The diff coverage is 100%.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5a67504...5137e99. Read the comment docs.

can somebody re-review/approve?

@pavolloffay
I am just testing Jaeger with your new images. Everything seems to work fine on Kibana side(searches/visualizations). Just one remark on Jaeger-Query side. Searching for tags works only if we use new format so for ex. http@method="GET", but the tags are shown with old dotted format, which might be misleading for users.

@kacper-jackiewicz thanks for running it. It's a bug query side should use the original key format.

Can somebody re-review so it can be merged?
cc) @jpkrohling @yurishkuro @black-adder

I have published docker images in https://hub.docker.com/u/pavolloffay/ with tag PR1018.

@pavolloffay can you ask someone to test with those images? Ideally existing users, as well as those who asked for the new functionality

I have published docker images in https://hub.docker.com/u/pavolloffay/ with tag PR1018.

@pavolloffay can you ask someone to test with those images? Ideally existing users, as well as those who asked for the new functionality

Hi, how can I help? We have been using the new Elasticsearch backend for ~100 days now with a fairly significant amount of span volume and lots of additional tags being added. This feature is incredibly relevant for us.

@masteinhauser or anybody else could you please test this PR?
Images with this functionality are available in pavolloffay/ with tag PR1018 https://hub.docker.com/u/pavolloffay/.

@masteinhauser thanks for trying it out! I guess we can merge it and release it.


CMS-583: create campgrounds

Jira Ticket
CMS-583
Description
Please refer to the ticket to see the logic behind the grouping.
There are 2 scripts that create campgrounds and assign features to them.

For campgrounds that only have one feature, the campground will keep the name of the single feature and the feature will be renamed to "All Sites". This can be optionally displayed on the FE.
For campgrounds that have multiple features, the campground will have it's own general name, and features will have their name that only reflects their specific part of the campground (e.g. "Alice Lake Campground Sites 1-20" -- > "Sites 1-20").

For campgrounds that have multiple features, the campground will have it's own general name, and features will have their name that only reflects their specific part of the campground (e.g. "Alice Lake Campground Sites 1-20" -- > "Sites 1-20").

That's a good idea, that's more comprehensive than I thought it would be 👍


Update MAINTAINERS

Codecov Report

Merging #150 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #150   +/-   ##
=======================================
  Coverage   36.42%   36.42%
=======================================
  Files          28       28
  Lines        1842     1842
=======================================
  Hits          671      671
  Misses       1080     1080
  Partials       91       91

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 74d7c14...df86a02. Read the comment docs.


License ?

Under what license is this project released under ? It seems like a very interesting environment. I would like to study it to learn how to make similar environments for reinforcement learning. Thanks.

Sorry for the delay in my response, the repository was not ready to be used yet. Currently the project is released under Apache-2.0 license, you can find the terms and conditions in the LICENSE file.
Note that, since you posted this issue, the repository has undergone several changes.
I hope this will help you.


Footer-Blue-02

Great work @1ananya3
Congrats 🎉, your PR got merged. To be eligible for the swags from ClueLess. Follow these steps.

Star this repository. ⭐
SignIn / SignUp in [ClueLess Website](https://www.clueless.tech/)
Go to the profile section from the top right-hand corner.

Comment your profile URL under this comment tagging the person who merged your PR.
That’s it. Follow the leaderboard!
And don’t forget to share your achievement with your friends.


lexidev

updated db name and title on the package.json to match this project, it had the old hw titles on it.

cancel


runfv3: Fix exit code handling

Resolves #1420. see commits for more details. This bug affected the regression data since it caused the final timestep to not be saved.

The changes in this PR confuse me. The regression test is configured to run for 30 minutes, with a 15-minute timestep. Since we save data at the end of each timestep, there should be 2 timesteps in the output data. @nbren12


how to build with source?

I learned how to build from https://docs.wasmtime.dev/contributing-building.html
but i got error:
-> % cargo build
error: failed to load manifest for workspace member ~/wasmtime/crates/c-api/artifact
Caused by:
failed to load manifest for dependency wasmtime-c-api-impl
Caused by:
failed to load manifest for dependency wasi-cap-std-sync
Caused by:
failed to load manifest for dependency wasi-common
Caused by:
failed to parse manifest at ~/cache/wasmtime/crates/wasi-common/Cargo.toml
Caused by:
error inheriting wiggle from workspace root manifest's workspace.dependencies.wiggle
Caused by:
dependency.wiggle was not found in workspace.dependencies

Try git submodule update --init.

Try git submodule update --init.

i tried it，but got the same error.

Try git submodule update --init.

i tried it，but got the same error.

It might be due to the cache issue, and it's working now. Thank you very much.


better wait for indexing logic

In some cases if a brach had not started to index it would get status: 'unknown' and fail. This PR updates the logic to recheck of a max of 6 times when the status is "unknown".
New error message
IndexFailedError: Attempting to index but responded with status 'unknown'. This means that Tina Cloud does not know about branch 'fooy'. Please make sure that branch 'fooy' exists in your repository and that you have pushed your changes to the remote. View all all branches and there current status here: https://app.tina.io/projects/<ClientID>configuration

Additional Info: {
  "branch": "fooy",
  "clientId": "****",
  "token": "***"
}

Sorry @logan-anderson, this was clobbered by the CLI updates.

Closing in favour of https://github.com/tinacms/tinacms/pull/3714


Installation

Making it clearer how to install the IBMQ provider

All will be load_accounts.

@nonhermitian can you look now that I merged the master into this. I don't think your concerns apply to this pr.