ark_Port is decrimented by 1 somehow

Hello,
I ran into an issue today where launching servers actually created them 1 port number lower than what was configured.
Not sure how long this has been going on...sorry!
Configured values: (note: resorted for ease of visibility)
$ grep -r "ark_Port" /etc/arkmanager/instances/
/etc/arkmanager/instances/theisland.cfg:ark_Port="7778"
/etc/arkmanager/instances/thecenter.cfg:ark_Port="7779"
/etc/arkmanager/instances/scorched.cfg:ark_Port="7780"
/etc/arkmanager/instances/ragnarok.cfg:ark_Port="7781"
/etc/arkmanager/instances/crystalisles.cfg:ark_Port="7783"

Actual values on the command line:
$ ps aux | grep ShooterGame | grep -oP "ShooterGameServer \w+\?Port=\d{4}[^\?]*"
ShooterGameServer TheIsland?Port=7777
ShooterGameServer TheCenter?Port=7778
ShooterGameServer ScorchedEarth_P?Port=7779
ShooterGameServer Ragnarok?Port=7780
ShooterGameServer CrystalIsles?Port=7782

Current tools version:
$ arkmanager --version
Version: 1.6
Channel: master
Commit: 51dc321
Release Tag: v1.6.35
Blob SHA: 07b9cc897775df179344ca341f93346db7af076b

If you need any other information, let us know!

The ark_Port variable is used to configure what port the server should listen on.  This will always be 1 greater than the Port parameter passed to the server, so the script decrements ark_Port to get the Port parameter to pass to the server.
The script has done this since 1.1 (2 years ago).

What's the reasoning behind that? I didn't see any documentation regarding it.

@klightspeed Your documentation does not detail this out. Is there a reason why the port is being changed?

@BigMikJ @ArkAgainstHumanity
https://ark.gamepedia.com/Dedicated_Server_Setup#Network
ArkManager only tells the server what port, the rest is handled be the server.

@SinisterSole Ahhh! I get it now! Thanks for clearing that up for me. So not only do I have to open 7777 UDP but the server also opens 7778 for the RAW port. Trying to run a cluster of 4 servers on the same box. So now instead of opening 3 ports per instance, I'll need 4. Thanks again!

The server doesn't actually listen on port 7777 - if you look in the output of e.g. netstat -antup, you will find each server listens on the game port (Port + 1), the query port, and the RCON port.  Only the game port and the query port need to be opened up to the outside world.


Add support for Kotlin inline value classes

There are instances where we are using a type alias in Kotlin when we should be using an inline value class. This pull request adds a Kotlin-specific typeshare decorator for generating these inline value classes. Additionally, updated the redacted_to_string decorator to Redacted so there is a consistent naming convention for the language-specific decorators.

Wondering if the redacted string code can be deduplicated; otherwise this looks great to me

LGTM


Tutorial button in script tab do not work in steam version.

Operating system or device:
ubuntu 15.10 x64
Issue description (what happened, and what was expected):
The 'tutorial' button in script tab, do not  open the browser in the steam version of the engine.
It works fine in the builds downloaded from the Godot web site.
Steps to reproduce:
Launch Godot via Steam.
Click in the tutorial button in the script tab.
Link to minimal example project (optional but very welcome):

I can reproduce it too in the current Steam version. It works fine in the non-Steam version (master branch).

Checked in my linux version and got an error. If I run the steam version from the command line in the steam apps path, it works fine, so I guess it has something to do with how steam runs the apps from the steam client


[bug 1120952] Fix remotetroubleshooting metrics

nixes the optout metric since it's wrong and hard to get right without
duplicating code
further, I added email optin metrics and context metrics

Quick r?

There isn't anything to test here, but a quick eyeball on the code would be good.

:eyes: Yep, those are statsd calls. :+1:

f75a942 Fix top-level untranslated_words metrics in l10n_completion
Thank you!

Got the commit wrong. It was this one:
60553bc [bug 1120952] Fix remotetroubleshooting metrics


Zend validator unit tests

This pull request is more unit tests to improve the code coverage of zend-validator.

It's good IMO :+1:

We are introducing a new way in the architecture of test that implies:

test API methods
Use more data providers

The proposal made here do some assertions about non API methods which make the test less resilient
My idea is take the test examples proposed here and include them in v3

This PR increase the value of this library because it cover a lot of possibile problem and it works now with this version..
I don't understand why this update can be a problem

This patch improves the library now, and will help pave the way for v3. I'm scheduling it for the next bugfix release.


Contact Us page

As a user, I'd like a way to contact the OCW team for questions that aren't covered in the Help & FAQ section (ZenDesk Help Center)
As a OCW team member, I'd like to discourage repetitive questions over email.
Designs and Mockups
https://projects.invisionapp.com/d/main?origin=v7#/console/21537330/462875131/comments?scrollOffset=901.5
Acceptance Criteria:

[ ] page location should be /contact
[ ] Use the same form back-end service that we currently use on https://ocw.mit.edu/about/contactus/ It looks like the JavaScript embed code is

Fill out my online form.

Out of Scope

field validation should be provided by wufoo.com

@pdpinch "Use the same form back-end service": By this, initially I thought that we have to use wufoo API for form submission only and I created a custom form with google captcha from scratch but then I found out, from the code snippet you provided, that form will also be rendered by wufoo. However, I have a few things in mind regarding the wufoo form:
1- In order to customize the form, i.e: changing input fields name, sizes, error, success messages, I believe I will need access to https://mitocw.wufoo.com/ in order to make changes to the form but I'm not sure as I haven't worked with wufoo, though I had a quick look into its documentation.
2- Wufoo form takes a few seconds to render so an empty space is shown till then. (This is also there in the legacy site), I think we can improve this somehow.
3- Wufoo API also takes some time to give response, and in the meantime, we don't have any particular loader etc, maybe this can also be handled by form customization.
Do you have any thoughts on this?

@pdpinch I was also thinking of form submissions consistency among contact page and newsletter page, as both pages have different 3rd parties so, for now, their error handling and form submission is different from each other.
Personally I liked mailchimp more as it has more flexibility for customization.
Do you have any thoughts on this too?

Thanks. I'll see about getting access to the service.

The contact form needs to forward the email to another inbox where it’s processed and stored in a database (not managed by our team).
I don’t know if mailchimp can do simple forwarding like that, but I guess it’s worth some investigation.

The contact form needs to forward the email to another inbox where it’s processed and stored in a database (not managed by our team). I don’t know if mailchimp can do simple forwarding like that, but I guess it’s worth some investigation.

I believe Mailchimp can also be integrated here and it can forward the contact form data to another email (to your admin or support team), but not sure what you meant by "stored in database"?

I sent you an invite to wufoo forms, so you can edit the form. Or, even better, create a new form, since this is already in use on ocw.mit.edu.
I looked around mailchimp a bit, but couldn't figure out 1) how to invite you to the account or 2) how to forward the form results to a single email address.

After doing some more testing, it seems like everything is functional, it just doesn't look great.
I think we should merge this as is, and come back to it later to improve the styling, so we can focus on more important MVP features.

After doing some more testing, it seems like everything is functional, it just doesn't look great.
I think we should merge this as is, and come back to it later to improve the styling, so we can focus on more important MVP features.

Okay, sure.
Have you reviewed the code too? If not then I guess we can get the code reviewed and merge it!

After doing some more testing, it seems like everything is functional, it just doesn't look great.
I think we should merge this as is, and come back to it later to improve the styling, so we can focus on more important MVP features.

Okay, sure.
Have you reviewed the code too? If not then I guess we can get the code reviewed and merge it!

I have not reviewed it. @Wassaf-Shahzad can you review?


Use newly published versions of all PACs in esp-hal

There were some additional updates to the PACs which were not yet reflected here, so I've made the required changes where needed.

Don't we want to address https://github.com/esp-rs/esp-hal/pull/2025#discussion_r1735050197 too?

Somehow missed that comment completely :sweat_smile:, removed from the queue until its resolved.

You guys are really nit-picking this one, eh? 😓


circleci: Use aliases for repeated run steps.

Testing Plan:
GIFs or Screenshots:

What I found from the install dependencies dedup is that sudo apt-get update is not run in "trusty-python-3.4".

@rht thanks for working on this!  It looks pretty reasonable; posted one comment on the one piece that is problematic.

Merged as the series of commits ending with 0ff3a7da0558bcd4c1e73a35068e4d5b0f103516.  A few follow-ups:

We should complain to CircleCI support about the lack of a reasonable way to do variables (https://github.com/zulip/zulip/pull/10964#discussion_r239216894)
We should clean up the install_dependencies step, moving the comments from the trusty block up and deduplicating.
We should add an emoji cache; I think that should be a moderate optimization.
I think we can use CircleCI's <<* style syntax to combine the two cache save/restore steps into a single include thing.  (I believe that it will basically expand an entry into two entries in a list; I saw it in their docs)

We should complain to CircleCI support about the lack of a reasonable way to do variables (#10964 (comment))

People have been complaining. The closest equivalent is context, but it has the problem of not being self-contained, where the values of the keys have to be set in the web settings.
I found from the built-in environment variables there is CIRCLE_JOB which should have the value of "trusty-python-3.4", "xenial-python-3.5", "bionic-python-3.6".

As used in PostgREST: https://github.com/PostgREST/postgrest/blob/0d6d112b38e7b51f31c5ba9cf25ad344cf801c96/.circleci/config.yml#L11.

Cool, I think switching to .Environment.CIRCLE_JOB would be better.


Subscribe to HANDLE_METHOD_ALL

This is required for Window.this.xcall(native_function_name, ...arguments) with Sciter.JS

At the very least this misses an update to the documentation above the member itself, can you also explain if this has other implications for non-SciterJS users?

I am not sure about implications for Sciter.TIS users.


Fix comparison link in README.md

Types of changes

This PR contains a:

[x] typo fix
[x] docs change

Motivation / Use-Case

The link in the README (to another section of the README) was broken, a click did nothing.
Additional Info
It looks like this got broken in f88ed87341ecb454cb8abe1d630d43ff2b04316d.
Checklist

[ ] I have read the CONTRIBUTING document.

No, there is none?

Hello @ePaul,
Thank you for the fix!


changed selectors for video selection

I updated the app.js file to be able to find the videos on the lessons page after they updated their site.

Hey, thanks for the pull request @Irantwomiles
Can you pull the latest changes and check if it's working ?
A previous pull was also made related to the new UI fix and was merged

Seems to be working correctly, though I got this error
`internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module 'C:\Users\MyName\Desktop\Projects\coursehunt\start'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:829:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)`
when running node start , but it worked fine when I ran it using node build/start.js .

The file start.js doesn't exist in the root directory, it exists in the build folder.
Also, since it works, merging this pull request will be creating conflicts and also it's redundant as of now. I thank you for your contribution.

@Irantwomiles Check out #23


When I train on Pascal VOC the result of mAP is 0

when I trained on Pascal VOC SBD,i can train successufully(completely 12 epochs finished).But as the eval reslut comes out ,it shows that the<EMAIL_ADDRESS>and<EMAIL_ADDRESS>are both zero.Since the epoch is 12(most people trained on this epoch),i think is not the reason on peoch.There must be some other reason that occurs to this problem(may be be code problem).
Your answer will be appreciated.Thanks.

Delete the cache，and re-run

When I train my own coco-like data,I meet the same problem,all my AP is 0,and I was very confused.All my config is the same with his.Do you solve the problem?


  We should be able to turn this into a one-liner, something like tileset.setPositionHeadingPitchRoll
Here's an example of what I had to do today to move a tileset.  Do we have an easier way that I'm already missing? CC @lilleyse @likangning93
var setCartoScratch = new Cesium.Cartesian3();
var setCartoPosScratch = new Cesium.Cartesian3();
var setCartoTransformScratch = new Cesium.Matrix4();

function setWorldPositionFromCartographic(transform, positionCartographic) {
    var oldPositionCartesian = Cesium.Matrix4.multiplyByPoint(transform, Cesium.Cartesian3.ZERO, setCartoScratch);
    var newPositionCartesian = Cesium.Ellipsoid.WGS84.cartographicToCartesian(positionCartographic, setCartoPosScratch);
    newPositionCartesian = Cesium.Cartesian3.subtract(newPositionCartesian, oldPositionCartesian, newPositionCartesian);
    var translationMatrix = Cesium.Matrix4.fromTranslation(newPositionCartesian, setCartoTransformScratch);

    return Cesium.Matrix4.multiply(translationMatrix, transform, transform);
}

var setHprQuaternion = new Cesium.Quaternion();
var setHprQuaternion2 = new Cesium.Quaternion();
var setHprTranslation = new Cesium.Cartesian3();
var setHprScale = new Cesium.Cartesian3();
var setHprCenter = new Cesium.Cartesian3();
var setHprTransform = new Cesium.Matrix4();
var setHprRotation = new Cesium.Matrix3();

function setRotationFromHeadingPitchRoll(transform, headingPitchRoll) {
    var rotationQuaternion = Cesium.Quaternion.fromHeadingPitchRoll(headingPitchRoll, setHprQuaternion);
    var translation = Cesium.Matrix4.getTranslation(transform, setHprTranslation);
    var scale = Cesium.Matrix4.getScale(transform, setHprScale);
    var center = Cesium.Matrix4.multiplyByPoint(transform, Cesium.Cartesian3.ZERO, setHprCenter);
    var backTransform = Cesium.Transforms.eastNorthUpToFixedFrame(center, undefined, setHprTransform);

    var rotationFixed = Cesium.Matrix4.getRotation(backTransform, setHprRotation);
    var quaternionFixed = Cesium.Quaternion.fromRotationMatrix(rotationFixed, setHprQuaternion2);
    var rotation = Cesium.Quaternion.multiply(quaternionFixed, rotationQuaternion, rotationFixed);

    return Cesium.Matrix4.fromTranslationQuaternionRotationScale(translation, rotation, scale, transform);
}

tileset.readyPromise.then(function(tileset) {
    var offset = Cesium.Cartographic.fromDegrees(-76.0, 40.0, 40);
    tileset._root.transform = setWorldPositionFromCartographic(tileset._root.transform, offset);

    var hpr = Cesium.HeadingPitchRoll.fromDegrees(0,0,0);
    tileset._root.transform = setRotationFromHeadingPitchRoll(tileset._root.transform, hpr);

    viewer.scene.primitives.add(tileset);
    viewer.zoomTo(tileset, new Cesium.HeadingPitchRange(0.0, -0.5, tileset.boundingSphere.radius * 2.0));
}).otherwise(function(error) {
    console.log(error);
});

My first instinct was to invert the existing transform and then build a more ordinary ENU -> CBF/world matrix.

Thanks @likangning93, the above was the code I had on hand; but I agree your idea is probably better.  Do you have a snippet of your approach?

Ah wait... I think I came up with that idea because I didn't realize the root transform is different from the tileset model matrix. Couldn't we just clear that tileset root transform and then use Transforms.headingPitchRollToFixedFrame?

Maybe something as simple as this:
tileset.readyPromise.then(function(tileset) {
    viewer.scene.primitives.add(tileset);

    // Position the tileset
    var longitude =<PHONE_NUMBER>3352568;
    var latitude = -32.094407571028384;
    var height = 50;
    tileset._root.transform = Cesium.Matrix4.IDENTITY;
    tileset.modelMatrix = computeTransform(latitude, longitude, height); // or set tileset._root.transform directly

    return tileset.readyPromise;
})
.otherwise(function (error) {
    console.log(error);
});

function computeTransform(latitude, longitude, height) {
    var offset = height;
    var cartesianOffset = Cesium.Cartesian3.fromDegrees(longitude, latitude, offset);
    return Cesium.Transforms.headingPitchRollToFixedFrame(cartesianOffset, new Cesium.HeadingPitchRoll());
}

I guess the one worrisome thing here is direct access of the private tileset._root.transform.
Maybe we could avoid that by using the inverse strategy and approximating that inverse based on the tileset's bounding sphere. That might even help us with the problem where local center for tilesets is sometimes several kilometers away.

Since this was posted, we now have modelMatrix and it seems like a very minimal amount of code to move or translate the model. my fear is that more forms of offset of transformation would be expected as time goes on. Considering, the model matrix opens the potential for any kind of transformation and it is a minimal amount of code to actually get results I feel as if this is an unneeded API change.
We could however change the sandbox to provide more examples of transforming 3D Tilesets. I already expounded a little bit.

Here is a version with a larger model.

This is a common request from a lot of users, I wouldn't consider it API bloat.  I think tileset.position property in ECF makes complete sense even if it just a getter/setter wrapper around the model matrix.  If there are too many edge cases that make the hard to do for all tilesets, then we probably need to figure how next steps for improving 3D Tiles (or our implementation) to remove those cases.

So I was looking around and noticed there is no way to only set the rotation component of the Matrix4. Does it make sense to add a fromRotation function? The
There is this function:
https://github.com/AnalyticalGraphicsInc/cesium/blob/1.60/Source/Core/Matrix4.js#L293
but it requires you set the transformation component.

@ProjectBarks translation is optional in the Matrix4.fromRotationTranlsation function so you can just use that

@hpinkos it sets the components to zero. If you pass in a result matrix you don't want it to change your translation components.

Ah, that makes sense.  In that case, I think it would be find to add a Matrix4.setRotation function to complement Matrix4.getRotation

let cartographic = Cesium.Cartographic.fromCartesian(tileset.boundingSphere.center);
let origCenter = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
let transform = Cesium.Transforms.eastNorthUpToFixedFrame(origCenter);
let movedCenter = Cesium.Matrix4.multiplyByPoint(transform, myCartesianOffset, new Cesium.Cartesian3());
const translation = Cesium.Cartesian3.subtract(movedCenter, origCenter, new Cesium.Cartesian3());
tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);


Set rangeslide value with a form

Hi, thanks for your rangeslider, great work! I'm using the rangeslider with time data in a free mode and I stumbled upon a use case, where I would like to allow the user to select date in a form with an input type date and then on submitting this form I want to move the rangeslider thumb to the selected date. After the form is submitted, I can obtain the selected date with
var dateControl = document.querySelector('input[type="date"]');
var val = dateControl.valueAsDate;

And now I would like to do something like
rangeslider.setValue('2020-07-09')
Is there any way to pass the value from the form to the rangeslider, so that the thumb moves to the desired position? The setValue function only allows me to set the value based on an index in the data variable, but I don't see any option, how to move the thumb to a specific date value.
Thanks for your answer in advance.

There isn't such an  option as far as I can remember. Later on today I'll
try to see what it would take to implement one.
czw., 9 lip 2020 o 08:43 František Pavlíček<EMAIL_ADDRESS>napisał(a):

Hi, thanks for your rangeslider, great work! I'm using the rangeslider
with time data in a free mode and I stumbled upon a use case, where I would
like to allow the user to select date in a form with an input type date and
then on submitting this form I want to move the rangeslider thumb to the
selected date. After the form is submitted, I can obtain the selected date
with
var dateControl = document.querySelector('input[type="date"]');
var val = dateControl.valueAsDate;
And now I would like to do something like
rangeslider.setValue('2020-07-09')
Is there any way to pass the value from the form to the rangeslider, so
that the thumb moves to the desired position? The setValue function only
allows me to set the value based on an index in the data variable, but I
don't see any option, how to move the thumb to a specific date value.
Thanks for your answer in advance.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/karenpommeroy/rangeslide.js/issues/5, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAWXQDKFSZ5M2YT4RMY343R2VRJVANCNFSM4OVI46DA
.

--
Pozdrawiam,
Marcin Karpiński


Add browersify support, and Grunt

These commits add grunt, and browserify support, so that the entire mapcode-js library can be loaded as just one library instead of 3 separate files.
Also the commits use uglify to create a mapcode-js.min.js file that hopefully results in faster loading times.

Hi matlads, I can't merge the PR now, because there's been some significant development work done on development branch dev-1.50 which is about to be released tomorrow and which will be merged into master. Next to the new JS release, we also plan to release an online REST API, which allows for very lightweight JS clients, on http://api.mapcode.com/mapcode


x/net/ipv4: wrong endianness in IP header on darwin-amd64

What version of Go are you using (go version)?

$ go version
go version go1.11.5 darwin/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/rhuang/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/rhuang/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/Cellar/go/1.11.5/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.11.5/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/xy/qpsgj2816g97b0ctzkq0ps_r0000gs/T/go-build097375093=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

marshall IPv4 IP header with x/net/ipv4/header, but I got little-endian instead of big-endian.
What did you expect to see?
Got big-endian IP header len.
What did you see instead?
little-endian
Looking at By looking at the code https://github.com/golang/net/blob/master/ipv4/header.go#L71., for darwin, 32bit/64bit os should have a different conversion.
Darwin amd64 is little-endian, it should convert.

/cc @mikioh

Can you show us a self-contained program we can use to recreate the problem?

@ianlancetaylor this is the program to recreate the issue. https://github.com/hrqiang/iphdr/blob/master/iphdr.go

@gopherbot add "help wanted"
@gopherbot add OS-Darwin
cc @odeke-em

From this article: https://www.darkcoding.net/software/raw-sockets-in-go-link-layer/
In macOS, we need to set IP_HDRINCL if we use IPPROTO_RAW.
So, from the example code you give:
https://github.com/hrqiang/iphdr/blob/7d73ba68b3305530b1864420433d2de5a0cbc7cc/iphdr.go#L62
Add below, will work.
_ = syscall.SetsockoptInt(fd, syscall.IPPROTO_IP, syscall.IP_HDRINCL, 1)

You can see this answer: https://stackoverflow.com/a/15881825/13019406
This is the 'feature' of BSD and OSX, golang should and just read it from sock.
You should to use ipv4.ParseHeader to parse raw bytes, rather than golang modify it to big-endian IP header len.

I understand the expected behavior, but this function is designed to receive a packet directly from the host's network layer and is not useful for parsing a header coming from another source. Imagine it coming from a tunnel or a VPN. The IP header is encapsulated in UDP, for example, and this function becomes unusable because it is only useful for messages that come exclusively from the native stack.


include authorizer setup in API client constructor functions

Currently the API clients returned by our New*Client functions require another step before they're usable - creating and attaching an authorizer. Users have requested that the constructor-like functions return a working client with authorizer attached, adding additional parameters if needed.
Here's how we do things now:
c := compute.NewVirtualMachinesClient(env.SubscriptionID())
a, _ := auth.NewAuthorizerFromEnvironment()
c.Authorizer = a

Could we consider adding or replacing that with something like this?
c, err := compute.NewVirtualMachinesClientWithAuthorizer(env.SubscriptionID(), auth.NewAuthorizerFromEnvironment())

Thanks!

cc @anguslees

(The "user" here ;)
... or something.  I'm not super convinced about the above proposal either, so feel free to push back.
Using the current NewFooClient API feels like I'm duplicating a lot of multi-line boilerplate everywhere, especially because I have to repeat it for every different Foo, and because of go's obligatory "if err != nil { return err }" after each line.  I expect simply creating a "normal" client object to be something close to a single constructor call, and hard to misuse.  The current "assign properties afterwards" API is easy to misuse (by omitting the extra assignment statements), and "vertically verbose" even for simple cases.
The azure-sdk-for-go-samples repo is also a good (negative) example of the same repetitious setup boilerplate.
I note the only real variance in these objects is the golang type - they're even the same BaseURI in most cases.  One suggestion might be to create a "management client" once, and pass it to all the more-specifically-typed constructors.

Thanks for this feedback, @anguslees. We totally agree, and are planning to consolidate all initialization into the constructor the next time we release non-swagger related breaking changes.

This is something we'll be doing in track 2 but not for track 1.


move RBAC manifests from components/authentication/base to componen…

Moving RBAC manifests from components/authentication/base to component-specific directories for the following components

pipeline-service
multi-arch-controller

/test appstudio-hac-e2e-tests

@gabemontero there's a cluster role in components/authentication/base called component-maintainer which was being referenced by quite a few namespace-scoped role bindings for pipeline service. In order to remove dependencies from authentication, I have created another cluster role pipeline-maintainer with the same capabilities as component-maintainer. Please feel free to ping me if it's still unclear.

/test appstudio-e2e-tests

/retest-required

/retest-required

/retest-required

/retest-required

/retest-required

/lgtm

/retest

/retest-required

/lgtm


NYX - Attenuator addition

The attenuator was removed from the LSDC controls process, the IOC needs to be completed (RS) and the device needs to be reinserted into the LSDC controls process (JA and/or RS).

I have put in the label as "low" for now for LSDC control, but this probably needs to be working for the beamline to function well - there will be limits on how much exposure time can overcome lack of attenuation control.

From @RobertSchaffer1 , details about the attenuator interface in EPICS (the main PVs look exactly like the ones for FMX):
For the attenuator, there are three relevant PVs:XF:19IDD-CT{Attn:RI}Energy-SP - This is the energy of the beam in eV, with allowed range of [5000, 30000]
XF:19IDD-CT{Attn:RI}Trans-SP - This is the desired transmission
XF:19IDD-CT{Attn:RI}Cmd:Set-Cmd - This is the "go" commandAn example usage:
[rschaffer@xf19id2-ws1 ~]$ caput XF:19IDD-CT{Attn:RI}Energy-SP 12500
Old : XF:19IDD-CT{Attn:RI}Energy-SP  5000
New : XF:19IDD-CT{Attn:RI}Energy-SP  12500[rschaffer@xf19id2-ws1 ~]$ caput XF:19IDD-CT{Attn:RI}Trans-SP .5
Old : XF:19IDD-CT{Attn:RI}Trans-SP   0.001

New : XF:19IDD-CT{Attn:RI}Trans-SP   0.5[rschaffer@xf19id2-ws1 ~]$ caput XF:19IDD-CT{Attn:RI}Cmd:Set-Cmd.PROC 1
Old : XF:19IDD-CT{Attn:RI}Cmd:Set-Cmd.PROC 0
New : XF:19IDD-CT{Attn:RI}Cmd:Set-Cmd.PROC 1

If you would like, I can get the energy from another PV, but for now it
needs to be set explicitly. There is also a useful readback PV,
XF:19IDD-CT{Attn:RI}Bit-I, which is a bitmap which describes the desired
configuration, ex.
[rschaffer@xf19id2-ws1 ~]$ caput XF:19IDD-CT{Attn:RI}Trans-SP 0.05
Old : XF:19IDD-CT{Attn:RI}Trans-SP   1
New : XF:19IDD-CT{Attn:RI}Trans-SP   0.05
[rschaffer@xf19id2-ws1 ~]$ caget XF:19IDD-CT{Attn:RI}Bit-I
XF:19IDD-CT{Attn:RI}Bit-I      88

This
tells us that at an energy of 12.5 keV and a desired transmission of
0.05, we end up with an attenuator configuration of 88 = (01011000). If
we did a caput XF:19IDD-CT{Attn:RI}Cmd:Set-Cmd.PROC 1  after this, it would insert the 0.6 mm, 0.15 mm and 0.08 mm solenoids.

working on the beamline and code pushed. closing.


Rebuild docs page using Gatsby?

Our docs are currently built using Gitbook. However, the React team recently rebuilt their docs site using Gatsby, and it seems to be working pretty well.  I'd like to consider that as a possibility.
I don't want to rebuild our docs publishing process just for the sake of switching tools.  At the moment, there's some noticeable pain points with how we work on the docs:

Docs publishing is a manual step.  We have an NPM run script that can rebuild and republish the docs, but it relies on a maintainer with commit rights to actually execute it.  I'd really like to automatically republish the docs whenever we merge a PR into master.
The docs publishing process is currently Linux-specific, and since I use Windows, the current script doesn't work easily for me.  I've been able to perform some of the publish steps manually in the past, but it's a real pain.
No easy previews of how the docs will look after the update

There's also been some comments that our docs are not fully accessibility-compatible
I don't have time to tackle rebuilding the docs process myself.  However, I'd like to solicit ideas and help from the community to investigate the idea.

Looks like Gitbook has a major new version coming soon: #2837
Since that includes automatic builds, I think that would be best than us rolling our own. Let's let them do the hard work :)

Yeah, saw that issue and it looks pretty nice.  That may solve my current concerns.


Add --num arg to force point count in output

Looks good to me, thanks!

Looks good to me, thanks!


I2C Driver

Also need to change the duty cycle based on the system clock frequency.

Resolved by #147


recognize continued commands in shell sessions

(Original issue 1237 created by blaenk on 2016-05-05T03:14:29.561627+00:00)
In the shell session lexer, currently if a command is continued by ending with a \, the next line isn't considered to be part of a command. Instead it's considered to be command output.
For example, the third line here won't be given the same highlight class as the rest:
$ cd ..
$ /usr/bin/xsltproc \
    --stringparam base.dir docs/users_guide/users_guide/

(Original issue 1237 last updated on 2016-06-03T05:16:57.136113+00:00)
(Issue automaticaly closed due to status in Bitbucket: resolved)

(Original comment by blaenk on 2016-05-05T03:22:54.977520+00:00)
I think this is actually handled by > but it ends up preventing the commands from being copy-paste-able. I wonder if there's a way around that.

(Original comment by tshatch on 2016-06-01T07:52:04.564719+00:00)
Add backslash-continuation support to console lexer.
Fixes #1237
→ <<cset 7e8419e1b798>>

(Original comment by blaenk on 2016-06-03T05:16:57.134244+00:00)
Thank you very much!


File type icon issue

I'm seeing the below pic as of the latest update to your excellent extension. Note that file type icons are tripling up for each file. My assumption here is that it's a problem with custom - tabs working and not another extension like https://github.com/ivogabe/Brackets-Icons

:confused: it's just a feature to take advantage of icons

Perhaps I'm misunderstanding. But please take another look at the image above. Why would I want to see 3 icons per file?
FYI, I've just disabled the extension I mentioned before (should have done this previously) and the issue doesn't arise.

v5.0.8[fix multiple  bugs]
is solved? :grin:

Almost! One down, one to go ;)
The icons on the left are generated by the Brackets Icons extension and the icons on the right are generated by your extension.

preferences in Brackets Navigate Menu > uncheck 'addiconprovider' :wink:

You, sir, are a genius! Thanks.
: )

Thanks! I have same issue too.

how to go Preferences?

@Daryll0222

for more
https://github.com/adobe/brackets/wiki/How-to-Use-Brackets#preferences


Uncaught Error: EACCES, open '/home/lloir/.atom/compile-cache/cson/5af7724b023a6274b520f79f04fb798a67319ca7.json'

[Enter steps to reproduce below:]

Open atom
Grab popcorn

Atom Version: 0.169.0
System: linux 3.13.0-44-generic
Thrown From: Atom Core
Stack Trace
Uncaught Error: EACCES, open '/home/lloir/.atom/compile-cache/cson/5af7724b023a6274b520f79f04fb798a67319ca7.json'
At fs.js:75

Error: EACCES, open '/home/lloir/.atom/compile-cache/cson/5af7724b023a6274b520f79f04fb798a67319ca7.json'
  at Error (native)

Commands

Config
{
  "core": {
    "disabledPackages": [
      "metrics"
    ]
  },
  "editor": {}
}

Installed Packages
# User
No installed packages

# Dev
No dev packages

I believe this is a duplicate of https://github.com/atom/atom/issues/4676


[Win10] Ansible › Execution Environment uses local commands instead of docker env

Summary
I have VS Code on Windows 10 with Docker Desktop.
On VS Code I have Asnible extension with configured "Execution Environment" (docker with image ghcr.io/ansible/creator-ee:latest).
That result in error:
Ansible-lint is not available. Kindly check the path or disable validation using ansible-lint
To elaborate:
When I open Ansible file it  properly detects that it is  Ansible and try to trigger Ansible extension but do not try to use mentioned image but instead invoking various commands in local windows environment (which are absent).
Example of commands: head, "command -v docker" (built-in bash to find path to command).
I have tried to install Cygwin to  overcome that. But it  does not help.
Extension uses incorrect quoting for docker inspect (single quotiong instead of dual quoting):
docker inspect --format='{{json .Config}}' ghcr.io/ansible/creator-ee:latest
Extension version
v2.0.58
VS Code version
1.77.3
Ansible Version
# ansible --version
ansible [core 2.14.4]
  config file = None
  configured module search path = ['/home/runner/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.11/site-packages/ansible
  ansible collection location = /home/runner/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.11.2 (main, Feb  8 2023, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = True

OS / Environment
windows 10
No remote extension used!
Docker desktop ,  ghcr.io/ansible/creator-ee:latest
ansible-lint 6.15.0 using ansible 2.14.4

Relevant log output
[Trace - 1:04:14 PM] Sending request 'initialize - (0)'.
Params: {
    "processId": 34884,
    "clientInfo": {
        "name": "Visual Studio Code",
        "version": "1.77.3"
    },
    "locale": "en",
    "rootPath": "d:\\projects\\bbg\\percona",
    "rootUri": "file:///d%3A/projects/bbg/percona",
    "capabilities": {
        "workspace": {
            "applyEdit": true,
            "workspaceEdit": {
                "documentChanges": true,
                "resourceOperations": [
                    "create",
                    "rename",
                    "delete"
                ],
                "failureHandling": "textOnlyTransactional",
                "normalizesLineEndings": true,
                "changeAnnotationSupport": {
                    "groupsOnLabel": true
                }
            },
            "configuration": true,
            "didChangeWatchedFiles": {
                "dynamicRegistration": true,
                "relativePatternSupport": true
            },
            "symbol": {
                "dynamicRegistration": true,
                "symbolKind": {
                    "valueSet": [
                        1,
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        8,
                        9,
                        10,
                        11,
                        12,
                        13,
                        14,
                        15,
                        16,
                        17,
                        18,
                        19,
                        20,
                        21,
                        22,
                        23,
                        24,
                        25,
                        26
                    ]
                },
                "tagSupport": {
                    "valueSet": [
                        1
                    ]
                },
                "resolveSupport": {
                    "properties": [
                        "location.range"
                    ]
                }
            },
            "codeLens": {
                "refreshSupport": true
            },
            "executeCommand": {
                "dynamicRegistration": true
            },
            "didChangeConfiguration": {
                "dynamicRegistration": true
            },
            "workspaceFolders": true,
            "semanticTokens": {
                "refreshSupport": true
            },
            "fileOperations": {
                "dynamicRegistration": true,
                "didCreate": true,
                "didRename": true,
                "didDelete": true,
                "willCreate": true,
                "willRename": true,
                "willDelete": true
            },
            "inlineValue": {
                "refreshSupport": true
            },
            "inlayHint": {
                "refreshSupport": true
            },
            "diagnostics": {
                "refreshSupport": true
            }
        },
        "textDocument": {
            "publishDiagnostics": {
                "relatedInformation": true,
                "versionSupport": false,
                "tagSupport": {
                    "valueSet": [
                        1,
                        2
                    ]
                },
                "codeDescriptionSupport": true,
                "dataSupport": true
            },
            "synchronization": {
                "dynamicRegistration": true,
                "willSave": true,
                "willSaveWaitUntil": true,
                "didSave": true
            },
            "completion": {
                "dynamicRegistration": true,
                "contextSupport": true,
                "completionItem": {
                    "snippetSupport": true,
                    "commitCharactersSupport": true,
                    "documentationFormat": [
                        "markdown",
                        "plaintext"
                    ],
                    "deprecatedSupport": true,
                    "preselectSupport": true,
                    "tagSupport": {
                        "valueSet": [
                            1
                        ]
                    },
                    "insertReplaceSupport": true,
                    "resolveSupport": {
                        "properties": [
                            "documentation",
                            "detail",
                            "additionalTextEdits"
                        ]
                    },
                    "insertTextModeSupport": {
                        "valueSet": [
                            1,
                            2
                        ]
                    },
                    "labelDetailsSupport": true
                },
                "insertTextMode": 2,
                "completionItemKind": {
                    "valueSet": [
                        1,
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        8,
                        9,
                        10,
                        11,
                        12,
                        13,
                        14,
                        15,
                        16,
                        17,
                        18,
                        19,
                        20,
                        21,
                        22,
                        23,
                        24,
                        25
                    ]
                },
                "completionList": {
                    "itemDefaults": [
                        "commitCharacters",
                        "editRange",
                        "insertTextFormat",
                        "insertTextMode"
                    ]
                }
            },
            "hover": {
                "dynamicRegistration": true,
                "contentFormat": [
                    "markdown",
                    "plaintext"
                ]
            },
            "signatureHelp": {
                "dynamicRegistration": true,
                "signatureInformation": {
                    "documentationFormat": [
                        "markdown",
                        "plaintext"
                    ],
                    "parameterInformation": {
                        "labelOffsetSupport": true
                    },
                    "activeParameterSupport": true
                },
                "contextSupport": true
            },
            "definition": {
                "dynamicRegistration": true,
                "linkSupport": true
            },
            "references": {
                "dynamicRegistration": true
            },
            "documentHighlight": {
                "dynamicRegistration": true
            },
            "documentSymbol": {
                "dynamicRegistration": true,
                "symbolKind": {
                    "valueSet": [
                        1,
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        8,
                        9,
                        10,
                        11,
                        12,
                        13,
                        14,
                        15,
                        16,
                        17,
                        18,
                        19,
                        20,
                        21,
                        22,
                        23,
                        24,
                        25,
                        26
                    ]
                },
                "hierarchicalDocumentSymbolSupport": true,
                "tagSupport": {
                    "valueSet": [
                        1
                    ]
                },
                "labelSupport": true
            },
            "codeAction": {
                "dynamicRegistration": true,
                "isPreferredSupport": true,
                "disabledSupport": true,
                "dataSupport": true,
                "resolveSupport": {
                    "properties": [
                        "edit"
                    ]
                },
                "codeActionLiteralSupport": {
                    "codeActionKind": {
                        "valueSet": [
                            "",
                            "quickfix",
                            "refactor",
                            "refactor.extract",
                            "refactor.inline",
                            "refactor.rewrite",
                            "source",
                            "source.organizeImports"
                        ]
                    }
                },
                "honorsChangeAnnotations": false
            },
            "codeLens": {
                "dynamicRegistration": true
            },
            "formatting": {
                "dynamicRegistration": true
            },
            "rangeFormatting": {
                "dynamicRegistration": true
            },
            "onTypeFormatting": {
                "dynamicRegistration": true
            },
            "rename": {
                "dynamicRegistration": true,
                "prepareSupport": true,
                "prepareSupportDefaultBehavior": 1,
                "honorsChangeAnnotations": true
            },
            "documentLink": {
                "dynamicRegistration": true,
                "tooltipSupport": true
            },
            "typeDefinition": {
                "dynamicRegistration": true,
                "linkSupport": true
            },
            "implementation": {
                "dynamicRegistration": true,
                "linkSupport": true
            },
            "colorProvider": {
                "dynamicRegistration": true
            },
            "foldingRange": {
                "dynamicRegistration": true,
                "rangeLimit": 5000,
                "lineFoldingOnly": true,
                "foldingRangeKind": {
                    "valueSet": [
                        "comment",
                        "imports",
                        "region"
                    ]
                },
                "foldingRange": {
                    "collapsedText": false
                }
            },
            "declaration": {
                "dynamicRegistration": true,
                "linkSupport": true
            },
            "selectionRange": {
                "dynamicRegistration": true
            },
            "callHierarchy": {
                "dynamicRegistration": true
            },
            "semanticTokens": {
                "dynamicRegistration": true,
                "tokenTypes": [
                    "namespace",
                    "type",
                    "class",
                    "enum",
                    "interface",
                    "struct",
                    "typeParameter",
                    "parameter",
                    "variable",
                    "property",
                    "enumMember",
                    "event",
                    "function",
                    "method",
                    "macro",
                    "keyword",
                    "modifier",
                    "comment",
                    "string",
                    "number",
                    "regexp",
                    "operator",
                    "decorator"
                ],
                "tokenModifiers": [
                    "declaration",
                    "definition",
                    "readonly",
                    "static",
                    "deprecated",
                    "abstract",
                    "async",
                    "modification",
                    "documentation",
                    "defaultLibrary"
                ],
                "formats": [
                    "relative"
                ],
                "requests": {
                    "range": true,
                    "full": {
                        "delta": true
                    }
                },
                "multilineTokenSupport": false,
                "overlappingTokenSupport": false,
                "serverCancelSupport": true,
                "augmentsSyntaxTokens": true
            },
            "linkedEditingRange": {
                "dynamicRegistration": true
            },
            "typeHierarchy": {
                "dynamicRegistration": true
            },
            "inlineValue": {
                "dynamicRegistration": true
            },
            "inlayHint": {
                "dynamicRegistration": true,
                "resolveSupport": {
                    "properties": [
                        "tooltip",
                        "textEdits",
                        "label.tooltip",
                        "label.location",
                        "label.command"
                    ]
                }
            },
            "diagnostic": {
                "dynamicRegistration": true,
                "relatedDocumentSupport": false
            }
        },
        "window": {
            "showMessage": {
                "messageActionItem": {
                    "additionalPropertiesSupport": true
                }
            },
            "showDocument": {
                "support": true
            },
            "workDoneProgress": true
        },
        "general": {
            "staleRequestSupport": {
                "cancel": true,
                "retryOnContentModified": [
                    "textDocument/semanticTokens/full",
                    "textDocument/semanticTokens/range",
                    "textDocument/semanticTokens/full/delta"
                ]
            },
            "regularExpressions": {
                "engine": "ECMAScript",
                "version": "ES2020"
            },
            "markdown": {
                "parser": "marked",
                "version": "1.1.0"
            },
            "positionEncodings": [
                "utf-16"
            ]
        },
        "notebookDocument": {
            "synchronization": {
                "dynamicRegistration": true,
                "executionSummarySupport": true
            }
        }
    },
    "trace": "verbose",
    "workspaceFolders": [
        {
            "uri": "file:///d%3A/projects/bbg/percona",
            "name": "percona"
        },
        {
            "uri": "file:///d%3A/projects/bbg/ansible-role-oxid",
            "name": "ansible-role-oxid"
        },
        {
            "uri": "file:///d%3A/projects/bbg/ansible-role-percona",
            "name": "ansible-role-percona"
        }
    ]
}

[Trace - 1:04:42 PM] Received response 'initialize - (0)' in 27457ms.
Result: {
    "capabilities": {
        "textDocumentSync": 2,
        "semanticTokensProvider": {
            "documentSelector": [
                {
                    "language": "ansible"
                }
            ],
            "full": true,
            "legend": {
                "tokenTypes": [
                    "method",
                    "class",
                    "keyword",
                    "property"
                ],
                "tokenModifiers": [
                    "definition"
                ]
            }
        },
        "hoverProvider": true,
        "completionProvider": {
            "resolveProvider": true
        },
        "definitionProvider": true,
        "workspace": {
            "workspaceFolders": {
                "supported": true,
                "changeNotifications": true
            }
        }
    }
}

[Trace - 1:04:42 PM] Sending notification 'initialized'.
Params: {}

[Trace - 1:04:42 PM] Sending notification 'textDocument/didOpen'.
Params: {
    "textDocument": {
        "uri": "file:///d%3A/projects/bbg/ansible-role-percona/tasks/set_vars.yml",
        "languageId": "ansible",
        "version": 1,
        "text": "---\r\n\r\n- name: set facts percona primary/secondary IPs\r\n  set_fact:\r\n    percona_primary_ip:  \"{{ ansible_play_hosts | select('in', groups['primary_db']) | map ('extract', hostvars) |map(attribute='ansible_all_ipv4_addresses')| flatten(levels=1)  | ansible.utils.reduce_on_network(percona_internal_subnet) }}\"\r\n    percona_secondary_ips:  \"{{ ansible_play_hosts | select('in', groups['secondary_db']) | map ('extract', hostvars) |map(attribute='ansible_all_ipv4_addresses')| flatten(levels=1)  | ansible.utils.reduce_on_network(percona_internal_subnet) }}\"\r\n    # percona_all_ips:  \"{{ ansible_play_hosts | select('in', groups['all']) | map ('extract', hostvars) |map(attribute='ansible_all_ipv4_addresses')| flatten(levels=1)  | ansible.utils.reduce_on_network(percona_internal_subnet) }}\"\r\n    cacheable: True # not required. This boolean converts the variable into an actual 'fact' which will also be added to the fact cache, if fact caching is enabled. Normally this module creates 'host level variables' and has much higher precedence, this option changes the nature and precedence (by 7 steps) of the variable created. https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable This actually creates 2 copies of the variable, a normal 'set_fact' host variable with high precedence and a lower 'ansible_fact' one that is available for persistance via the facts cache plugin. This creates a possibly confusing interaction with C(meta: clear_facts) as it will remove the 'ansible_fact' but not the host variable.:\r\n  delegate_to: localhost\r\n  run_once: true\r\n\r\n- name: set facts percona_all_ips\r\n  set_fact:\r\n    percona_all_ips:  \"{{  percona_primary_ip  +  percona_secondary_ips }}\"\r\n    cacheable: True # not required. This boolean converts the variable into an actual 'fact' which will also be added to the fact cache, if fact caching is enabled. Normally this module creates 'host level variables' and has much higher precedence, this option changes the nature and precedence (by 7 steps) of the variable created. https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable This actually creates 2 copies of the variable, a normal 'set_fact' host variable with high precedence and a lower 'ansible_fact' one that is available for persistance via the facts cache plugin. This creates a possibly confusing interaction with C(meta: clear_facts) as it will remove the 'ansible_fact' but not the host variable.:\r\n  delegate_to: localhost\r\n  run_once: true\r\n\r\n- name: set facts percona lists\r\n  set_fact:\r\n    percona_primary_list:  percona_primary_ip | join(',')\r\n    percona_secondary_list:  percona_secondary_ips | join(',')\r\n    cacheable: True # not required. This boolean converts the variable into an actual 'fact' which will also be added to the fact cache, if fact caching is enabled. Normally this module creates 'host level variables' and has much higher precedence, this option changes the nature and precedence (by 7 steps) of the variable created. https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable This actually creates 2 copies of the variable, a normal 'set_fact' host variable with high precedence and a lower 'ansible_fact' one that is available for persistance via the facts cache plugin. This creates a possibly confusing interaction with C(meta: clear_facts) as it will remove the 'ansible_fact' but not the host variable.:\r\n  delegate_to: localhost\r\n  run_once: true\r\n\r\n- name: set facts percona all list\r\n  set_fact:\r\n    # percona_list_ips_2:  \"{{ [percona_primary_list , percona_secondary_list] | join(',') }} \"\r\n    percona_list_ips:  \"{{ percona_all_ips | join(',') }}\"\r\n    cacheable: True # not required. This boolean converts the variable into an actual 'fact' which will also be added to the fact cache, if fact caching is enabled. Normally this module creates 'host level variables' and has much higher precedence, this option changes the nature and precedence (by 7 steps) of the variable created. https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable This actually creates 2 copies of the variable, a normal 'set_fact' host variable with high precedence and a lower 'ansible_fact' one that is available for persistance via the facts cache plugin. This creates a possibly confusing interaction with C(meta: clear_facts) as it will remove the 'ansible_fact' but not the host variable.:\r\n  delegate_to: localhost\r\n  run_once: true\r\n\r\n\r\n- name: show fact 1\r\n  debug:\r\n    msg: \"{{percona_all_ips}}\"\r\n    # msg: \"{{percona_primary_ip}}\"\r\n  run_once: true\r\n\r\n- name: show fact 2\r\n  debug:\r\n    var: percona_secondary_ips\r\n  run_once: true\r\n\r\n- name: show fact 3\r\n  debug:\r\n    var: percona_list_ips\r\n  run_once: true\r\n\r\n\r\n- name: show fact 4\r\n  debug:\r\n    var: my_list | join(',')\r\n  vars:\r\n    my_list:\r\n     - \"{{percona_list_ips}}\"\r\n     - \"{{percona_existed_nodes_int_ips_list}}\"\r\n  run_once: true\r\n\r\n# - name: show fact 5\r\n#   debug:\r\n#     var: ( percona_all_ips + percona_existed_nodes_int_ips_list | ansible.builtin.split(',') ) | join(',')\r\n#   run_once: true\r\n\r\n- name: set facts server_int_ip\r\n  set_fact:\r\n    server_int_ip: \"{{ ansible_all_ipv4_addresses | ansible.utils.reduce_on_network(percona_internal_subnet) }}\"\r\n\r\n- name: set facts server_int_ip\r\n  set_fact:\r\n    server_int_ip: \"{{ ( server_int_ip if server_int_ip else ['<IP_ADDRESS>'] ) | first }}\"\r\n    # server_int_ip:  \"{{ansible_all_ipv4_addresses  | ansible.utils.reduce_on_network(percona_internal_subnet) | first}}\"\r\n    # server_int_ip:  \"{{ansible_all_ipv4_addresses  | ansible.utils.reduce_on_network(percona_internal_subnet) |select | list | default(['<IP_ADDRESS>']) | first}}\"\r\n    cacheable: True # not required. This boolean converts the variable into an actual 'fact' which will also be added to the fact cache, if fact caching is enabled. Normally this module creates 'host level variables' and has much higher precedence, this option changes the nature and precedence (by 7 steps) of the variable created. https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable This actually creates 2 copies of the variable, a normal 'set_fact' host variable with high precedence and a lower 'ansible_fact' one that is available for persistance via the facts cache plugin. This creates a possibly confusing interaction with C(meta: clear_facts) as it will remove the 'ansible_fact' but not the host variable.:\r\n\r\n- name: show internal IP\r\n  debug:\r\n    var: server_int_ip\r\n    # ansible_all_ipv4_addresses  | ansible.utils.reduce_on_network(percona_internal_subnet) | first\r\n\r\n\r\n# - debug:\r\n#     var: ansible_play_hosts | symmetric_difference(groups.done)\r\n#   ignore_errors: true\r\n\r\n# - debug:\r\n#     var: ansible_play_hosts | symmetric_difference(groups.done)| bool\r\n#   ignore_errors: true\r\n\r\n# - debug:\r\n#     var: sql_output.query_result[0][0]\r\n#   ignore_errors: true\r\n"
    }
}

[Trace - 1:04:42 PM] Sending notification 'update/ansible-metadata'.
Params: [
    [
        "file:///d%3A/projects/bbg/ansible-role-percona/tasks/set_vars.yml"
    ]
]

[Trace - 1:04:43 PM] Received request 'client/registerCapability - (0)'.
Params: {
    "registrations": [
        {
            "id": "b6979e14-9564-4af6-b424-7165e5647132",
            "method": "workspace/didChangeConfiguration",
            "registerOptions": {
                "section": "ansible"
            }
        }
    ]
}

[Trace - 1:04:43 PM] Sending response 'client/registerCapability - (0)'. Processing request took 3ms
No result returned.

[Trace - 1:04:43 PM] Sending notification 'workspace/didChangeConfiguration'.
Params: {
    "settings": {
        "ansible": {
            "ansible": {
                "path": "ansible",
                "useFullyQualifiedCollectionNames": true,
                "reuseTerminal": true
            },
            "python": {
                "interpreterPath": "python",
                "activationScript": ""
            },
            "ansibleNavigator": {
                "path": "ansible-navigator"
            },
            "completion": {
                "provideRedirectModules": true,
                "provideModuleOptionAliases": true
            },
            "validation": {
                "enabled": true,
                "lint": {
                    "enabled": true,
                    "path": "ansible-lint",
                    "arguments": ""
                }
            },
            "executionEnvironment": {
                "enabled": true,
                "containerEngine": "docker",
                "containerOptions": "",
                "image": "ghcr.io/ansible/creator-ee:latest",
                "pull": {
                    "arguments": "",
                    "policy": "missing"
                },
                "volumeMounts": []
            },
            "lightspeed": {
                "enabled": false,
                "URL": "https://c.ai.ansible.redhat.com",
                "suggestions": {
                    "enabled": false
                }
            },
            "executionEnvironmentConfig": {
                "dockerInspectFormat": "{{json .Config}}",
                "dockerInspectCmd": "docker inspect --format=\"{{json .Config}}\""
            }
        }
    }
}

[Trace - 1:04:43 PM] Sending request 'textDocument/semanticTokens/full - (1)'.
Params: {
    "textDocument": {
        "uri": "file:///d%3A/projects/bbg/ansible-role-percona/tasks/set_vars.yml"
    }
}

[Trace - 1:04:43 PM] Received request 'client/registerCapability - (1)'.
Params: {
    "registrations": [
        {
            "id": "aa4b67fa-82f0-476a-aa3e-72f3bd891212",
            "method": "workspace/didChangeWorkspaceFolders",
            "registerOptions": {}
        }
    ]
}

[Trace - 1:04:43 PM] Sending response 'client/registerCapability - (1)'. Processing request took 1ms
No result returned.

[Trace - 1:04:44 PM] Received request 'client/registerCapability - (2)'.
Params: {
    "registrations": [
        {
            "id": "9b39bb4b-8cbd-46b7-9798-e6c7aaa46de3",
            "method": "workspace/didChangeWatchedFiles",
            "registerOptions": {
                "watchers": [
                    {
                        "globPattern": "**/ansible.cfg"
                    },
                    {
                        "globPattern": "**/.ansible-lint"
                    },
                    {
                        "globPattern": "**/meta/main.{yml,yaml}"
                    }
                ]
            }
        }
    ]
}

[Trace - 1:04:44 PM] Sending response 'client/registerCapability - (2)'. Processing request took 2ms
No result returned.

[Trace - 1:04:44 PM] Received request 'workspace/configuration - (3)'.
Params: {
    "items": [
        {
            "scopeUri": "file:///d%3A/projects/bbg/ansible-role-percona/tasks/set_vars.yml",
            "section": "ansible"
        }
    ]
}

[Trace - 1:04:44 PM] Sending response 'workspace/configuration - (3)'. Processing request took 1ms
Result: [
    {
        "ansible": {
            "path": "ansible",
            "useFullyQualifiedCollectionNames": true,
            "reuseTerminal": true
        },
        "python": {
            "interpreterPath": "python",
            "activationScript": ""
        },
        "ansibleNavigator": {
            "path": "ansible-navigator"
        },
        "completion": {
            "provideRedirectModules": true,
            "provideModuleOptionAliases": true
        },
        "validation": {
            "enabled": true,
            "lint": {
                "enabled": true,
                "path": "ansible-lint",
                "arguments": ""
            }
        },
        "executionEnvironment": {
            "enabled": true,
            "containerEngine": "docker",
            "containerOptions": "",
            "image": "ghcr.io/ansible/creator-ee:latest",
            "pull": {
                "arguments": "",
                "policy": "missing"
            },
            "volumeMounts": []
        },
        "lightspeed": {
            "enabled": false,
            "URL": "https://c.ai.ansible.redhat.com",
            "suggestions": {
                "enabled": false
            }
        },
        "executionEnvironmentConfig": {
            "dockerInspectFormat": "{{json .Config}}",
            "dockerInspectCmd": "docker inspect --format=\"{{json .Config}}\""
        }
    }
]

[Trace - 1:04:44 PM] Received request 'workspace/configuration - (4)'.
Params: {
    "items": [
        {
            "scopeUri": "file:///d%3A/projects/bbg/ansible-role-percona",
            "section": "ansible"
        }
    ]
}

[Trace - 1:04:44 PM] Sending response 'workspace/configuration - (4)'. Processing request took 1ms
Result: [
    {
        "ansible": {
            "path": "ansible",
            "useFullyQualifiedCollectionNames": true,
            "reuseTerminal": true
        },
        "python": {
            "interpreterPath": "python",
            "activationScript": ""
        },
        "ansibleNavigator": {
            "path": "ansible-navigator"
        },
        "completion": {
            "provideRedirectModules": true,
            "provideModuleOptionAliases": true
        },
        "validation": {
            "enabled": true,
            "lint": {
                "enabled": true,
                "path": "ansible-lint",
                "arguments": ""
            }
        },
        "executionEnvironment": {
            "enabled": true,
            "containerEngine": "docker",
            "containerOptions": "",
            "image": "ghcr.io/ansible/creator-ee:latest",
            "pull": {
                "arguments": "",
                "policy": "missing"
            },
            "volumeMounts": []
        },
        "lightspeed": {
            "enabled": false,
            "URL": "https://c.ai.ansible.redhat.com",
            "suggestions": {
                "enabled": false
            }
        },
        "executionEnvironmentConfig": {
            "dockerInspectFormat": "{{json .Config}}",
            "dockerInspectCmd": "docker inspect --format=\"{{json .Config}}\""
        }
    }
]

[Trace - 1:04:44 PM] Received request 'workspace/configuration - (5)'.
Params: {
    "items": [
        {
            "scopeUri": "file:///d%3A/projects/bbg/ansible-role-percona",
            "section": "ansible"
        }
    ]
}

[Trace - 1:04:44 PM] Sending response 'workspace/configuration - (5)'. Processing request took 1ms
Result: [
    {
        "ansible": {
            "path": "ansible",
            "useFullyQualifiedCollectionNames": true,
            "reuseTerminal": true
        },
        "python": {
            "interpreterPath": "python",
            "activationScript": ""
        },
        "ansibleNavigator": {
            "path": "ansible-navigator"
        },
        "completion": {
            "provideRedirectModules": true,
            "provideModuleOptionAliases": true
        },
        "validation": {
            "enabled": true,
            "lint": {
                "enabled": true,
                "path": "ansible-lint",
                "arguments": ""
            }
        },
        "executionEnvironment": {
            "enabled": true,
            "containerEngine": "docker",
            "containerOptions": "",
            "image": "ghcr.io/ansible/creator-ee:latest",
            "pull": {
                "arguments": "",
                "policy": "missing"
            },
            "volumeMounts": []
        },
        "lightspeed": {
            "enabled": false,
            "URL": "https://c.ai.ansible.redhat.com",
            "suggestions": {
                "enabled": false
            }
        },
        "executionEnvironmentConfig": {
            "dockerInspectFormat": "{{json .Config}}",
            "dockerInspectCmd": "docker inspect --format=\"{{json .Config}}\""
        }
    }
]

[Trace - 1:04:45 PM] Received request 'workspace/configuration - (6)'.
Params: {
    "items": [
        {
            "scopeUri": "file:///d%3A/projects/bbg/ansible-role-percona",
            "section": "ansible"
        }
    ]
}

[Trace - 1:04:45 PM] Sending response 'workspace/configuration - (6)'. Processing request took 1ms
Result: [
    {
        "ansible": {
            "path": "ansible",
            "useFullyQualifiedCollectionNames": true,
            "reuseTerminal": true
        },
        "python": {
            "interpreterPath": "python",
            "activationScript": ""
        },
        "ansibleNavigator": {
            "path": "ansible-navigator"
        },
        "completion": {
            "provideRedirectModules": true,
            "provideModuleOptionAliases": true
        },
        "validation": {
            "enabled": true,
            "lint": {
                "enabled": true,
                "path": "ansible-lint",
                "arguments": ""
            }
        },
        "executionEnvironment": {
            "enabled": true,
            "containerEngine": "docker",
            "containerOptions": "",
            "image": "ghcr.io/ansible/creator-ee:latest",
            "pull": {
                "arguments": "",
                "policy": "missing"
            },
            "volumeMounts": []
        },
        "lightspeed": {
            "enabled": false,
            "URL": "https://c.ai.ansible.redhat.com",
            "suggestions": {
                "enabled": false
            }
        },
        "executionEnvironmentConfig": {
            "dockerInspectFormat": "{{json .Config}}",
            "dockerInspectCmd": "docker inspect --format=\"{{json .Config}}\""
        }
    }
]

[Trace - 1:04:50 PM] Received notification 'window/logMessage'.
Params: {
    "type": 1,
    "message": "Volume mount source path '' does not exist. Ignoring this volume mount entry."
}

[Error - 1:04:50 PM] Volume mount source path '' does not exist. Ignoring this volume mount entry.
[Trace - 1:04:50 PM] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "check for container image with command: 'docker image inspect ghcr.io/ansible/creator-ee:latest'"
}

check for container image with command: 'docker image inspect ghcr.io/ansible/creator-ee:latest'
[Trace - 1:04:58 PM] Received request 'window/workDoneProgress/create - (7)'.
Params: {
    "token": "6c1c8101-af13-44bb-ac81-6b51a99a05f3"
}

[Trace - 1:04:58 PM] Sending response 'window/workDoneProgress/create - (7)'. Processing request took 1ms
No result returned.

[Trace - 1:04:58 PM] Received notification '$/progress'.
Params: {
    "token": "6c1c8101-af13-44bb-ac81-6b51a99a05f3",
    "value": {
        "kind": "end"
    }
}

[Trace - 1:04:58 PM] Received notification 'window/logMessage'.
Params: {
    "type": 1,
    "message": "Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry."
}

[Error - 1:04:58 PM] Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry.
TypeError: process.getuid is not a function
    at t.ExecutionEnvironment.wrapContainerArgs (c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:69389)
    at t.CommandRunner.<anonymous> (c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:109115)
    at Generator.next (<anonymous>)
    at s (c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:108407)
[Trace - 1:04:58 PM] Received request 'window/showMessageRequest - (8)'.
Params: {
    "type": 1,
    "message": "process.getuid is not a function",
    "actions": []
}

TypeError: process.getuid is not a function
    at t.ExecutionEnvironment.wrapContainerArgs (c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:69389)
    at t.CommandRunner.<anonymous> (c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:109115)
    at Generator.next (<anonymous>)
    at s (c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:108407)
Path for lint:  undefined
[Trace - 1:04:58 PM] Received request 'window/showMessageRequest - (9)'.
Params: {
    "type": 1,
    "message": "Ansible-lint is not available. Kindly check the path or disable validation using ansible-lint",
    "actions": []
}

[Trace - 1:04:58 PM] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "docker images ghcr.io/ansible/creator-ee:latest --format=\"{{.ID}}\" | head -n 1"
}

docker images ghcr.io/ansible/creator-ee:latest --format="{{.ID}}" | head -n 1
[Trace - 1:05:03 PM] Sending notification 'update/ansible-metadata'.
Params: [
    [
        "file:///d%3A/projects/bbg/ansible-role-percona/tasks/set_vars.yml"
    ]
]

Error: No such object: ghcr_io_ansible_creator_ee_latest
clean up container not required as container with name ghcr_io_ansible_creator_ee_latest does not exist
[Trace - 1:05:04 PM] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "run container with command 'docker run --rm -it -d  -e ANSIBLE_FORCE_COLOR=0  --name ghcr_io_ansible_creator_ee_latest ghcr.io/ansible/creator-ee:latest bash'"
}

run container with command 'docker run --rm -it -d  -e ANSIBLE_FORCE_COLOR=0  --name ghcr_io_ansible_creator_ee_latest ghcr.io/ansible/creator-ee:latest bash'
[Trace - 1:05:11 PM] Sending notification 'update/ansible-metadata'.
Params: [
    [
        "file:///d%3A/projects/bbg/ansible-role-percona/tasks/set_vars.yml"
    ]
]

cmd 'python3 --version' was not executed with the following error: ' TypeError: process.getuid is not a function
cmd 'ansible-lint --version' was not executed with the following error: ' TypeError: process.getuid is not a function
[Trace - 1:05:12 PM] Received request 'window/workDoneProgress/create - (10)'.
Params: {
    "token": "006b18de-558a-48f8-9a8a-14fcd843260b"
}

[Trace - 1:05:12 PM] Sending response 'window/workDoneProgress/create - (10)'. Processing request took 0ms
No result returned.

[Trace - 1:05:12 PM] Received notification 'window/logMessage'.
Params: {
    "type": 1,
    "message": "An error occurred in 'onDidOpen' handler: [TypeError] Cannot read properties of undefined (reading 'has')\nTypeError: Cannot read properties of undefined (reading 'has')\n    at c:\\Users\\MYUSERNAME\\.vscode\\extensions\\redhat.ansible-2.0.58\\out\\server\\src\\server.js:2:51308\n    at Generator.next (<anonymous>)\n    at s (c:\\Users\\MYUSERNAME\\.vscode\\extensions\\redhat.ansible-2.0.58\\out\\server\\src\\server.js:2:48947)"
}

[Error - 1:05:12 PM] An error occurred in 'onDidOpen' handler: [TypeError] Cannot read properties of undefined (reading 'has')
TypeError: Cannot read properties of undefined (reading 'has')
    at c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:51308
    at Generator.next (<anonymous>)
    at s (c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:48947)
[Trace - 1:05:12 PM] Received notification 'window/logMessage'.
Params: {
    "type": 1,
    "message": "Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry."
}

[Error - 1:05:12 PM] Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry.
[Trace - 1:05:12 PM] Received notification 'window/logMessage'.
Params: {
    "type": 1,
    "message": "Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry."
}

[Error - 1:05:12 PM] Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry.
template parsing error: template: :1: unclosed action
Error: Command failed: docker inspect --format='{{json .Config}}' ghcr.io/ansible/creator-ee:latest
template parsing error: template: :1: unclosed action

    at checkExecSyncError (node:child_process:848:11)
    at Object.execSync (node:child_process:922:15)
    at Object.execSync (node:electron/js2c/asar_bundle:5:12704)
    at c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:121696
    at Generator.next (<anonymous>)
    at s (c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:118981) {
  status: 64,
  signal: null,
  output: [
    null,
    '',
    'template parsing error: template: :1: unclosed action\n'
  ],
  pid: 4516,
  stdout: '',
  stderr: 'template parsing error: template: :1: unclosed action\n'
}
[Trace - 1:05:16 PM] Received notification 'update/ansible-metadata'.
Params: [
    [
        {
            "ansible information": {},
            "python information": {},
            "ansible-lint information": {},
            "execution environment information": {
                "container engine": "docker",
                "container image": "ghcr.io/ansible/creator-ee:latest",
                "container image ID": "ae6bc88205d7"
            }
        }
    ]
]

cmd 'python3 --version' was not executed with the following error: ' TypeError: process.getuid is not a function
cmd 'ansible-lint --version' was not executed with the following error: ' TypeError: process.getuid is not a function
[Trace - 1:05:16 PM] Received notification 'window/logMessage'.
Params: {
    "type": 1,
    "message": "Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry."
}

[Error - 1:05:16 PM] Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry.
[Trace - 1:05:16 PM] Received notification 'window/logMessage'.
Params: {
    "type": 1,
    "message": "Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry."
}

[Error - 1:05:16 PM] Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry.
template parsing error: template: :1: unclosed action
Error: Command failed: docker inspect --format='{{json .Config}}' ghcr.io/ansible/creator-ee:latest
template parsing error: template: :1: unclosed action

    at checkExecSyncError (node:child_process:848:11)
    at Object.execSync (node:child_process:922:15)
    at Object.execSync (node:electron/js2c/asar_bundle:5:12704)
    at c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:121696
    at Generator.next (<anonymous>)
    at s (c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:118981) {
  status: 64,
  signal: null,
  output: [
    null,
    '',
    'template parsing error: template: :1: unclosed action\n'
  ],
  pid: 51268,
  stdout: '',
  stderr: 'template parsing error: template: :1: unclosed action\n'
}
[Trace - 1:05:19 PM] Received notification 'update/ansible-metadata'.
Params: [
    [
        {
            "ansible information": {},
            "python information": {},
            "ansible-lint information": {},
            "execution environment information": {
                "container engine": "docker",
                "container image": "ghcr.io/ansible/creator-ee:latest",
                "container image ID": "ae6bc88205d7"
            }
        }
    ]
]

cmd 'python3 --version' was not executed with the following error: ' TypeError: process.getuid is not a function
cmd 'ansible-lint --version' was not executed with the following error: ' TypeError: process.getuid is not a function
[Trace - 1:05:19 PM] Received notification 'window/logMessage'.
Params: {
    "type": 1,
    "message": "Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry."
}

[Error - 1:05:19 PM] Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry.
[Trace - 1:05:19 PM] Received notification 'window/logMessage'.
Params: {
    "type": 1,
    "message": "Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry."
}

[Error - 1:05:19 PM] Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry.
template parsing error: template: :1: unclosed action
Error: Command failed: docker inspect --format='{{json .Config}}' ghcr.io/ansible/creator-ee:latest
template parsing error: template: :1: unclosed action

    at checkExecSyncError (node:child_process:848:11)
    at Object.execSync (node:child_process:922:15)
    at Object.execSync (node:electron/js2c/asar_bundle:5:12704)
    at c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:121696
    at Generator.next (<anonymous>)
    at s (c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:118981) {
  status: 64,
  signal: null,
  output: [
    null,
    '',
    'template parsing error: template: :1: unclosed action\n'
  ],
  pid: 53988,
  stdout: '',
  stderr: 'template parsing error: template: :1: unclosed action\n'
}
[Trace - 1:05:21 PM] Received notification 'update/ansible-metadata'.
Params: [
    [
        {
            "ansible information": {},
            "python information": {},
            "ansible-lint information": {},
            "execution environment information": {
                "container engine": "docker",
                "container image": "ghcr.io/ansible/creator-ee:latest",
                "container image ID": "ae6bc88205d7"
            }
        }
    ]
]

[Trace - 1:05:21 PM] Received notification '$/progress'.
Params: {
    "token": "006b18de-558a-48f8-9a8a-14fcd843260b",
    "value": {
        "kind": "begin",
        "title": "execution-environment",
        "message": "Copy plugin docs from 'ghcr.io/ansible/creator-ee:latest to host cache path",
        "cancellable": true
    }
}

[Trace - 1:05:21 PM] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "Identified plugin paths by AnsibleConfig service: \n collections_paths:  \n module_locations: "
}

Identified plugin paths by AnsibleConfig service:
 collections_paths:
 module_locations:
[Trace - 1:05:21 PM] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "Copied plugin paths by ExecutionEnvironment service: \n collections_paths:  \n module_locations: "
}

Copied plugin paths by ExecutionEnvironment service:
 collections_paths:
 module_locations:
[Trace - 1:05:21 PM] Received request 'window/showMessageRequest - (11)'.
Params: {
    "type": 1,
    "message": "Exception in ExecutionEnvironment service while fetching docs: {\"errno\":-4058,\"syscall\":\"open\",\"code\":\"ENOENT\",\"path\":\"C:\\\\Users\\\\MYUSERNAME\\\\.cache\\\\ansible-language-server\\\\ghcr_io_ansible_creator_ee_latest\\\\ae6bc88205d7\\\\SUCCESS\"}",
    "actions": []
}

[Trace - 1:05:21 PM] Received notification '$/progress'.
Params: {
    "token": "006b18de-558a-48f8-9a8a-14fcd843260b",
    "value": {
        "kind": "end"
    }
}

[Trace - 1:05:22 PM] Received response 'textDocument/semanticTokens/full - (1)' in 39187ms.
Result: {
    "resultId": "1682676322776",
    "data": [
        2,
        2,
        4,
        2,
        0,
        1,
        2,
        8,
        3,
        1,
        1,
        4,
        18,
        3,
        1,
        1,
        4,
        21,
        3,
        1,
        2,
        4,
        9,
        3,
        1,
        1,
        2,
        11,
        2,
        0,
        1,
        2,
        8,
        2,
        0,
        2,
        2,
        4,
        2,
        0,
        1,
        2,
        8,
        3,
        1,
        1,
        4,
        15,
        3,
        1,
        1,
        4,
        9,
        3,
        1,
        1,
        2,
        11,
        2,
        0,
        1,
        2,
        8,
        2,
        0,
        2,
        2,
        4,
        2,
        0,
        1,
        2,
        8,
        3,
        1,
        1,
        4,
        20,
        3,
        1,
        1,
        4,
        22,
        3,
        1,
        1,
        4,
        9,
        3,
        1,
        1,
        2,
        11,
        2,
        0,
        1,
        2,
        8,
        2,
        0,
        2,
        2,
        4,
        2,
        0,
        1,
        2,
        8,
        3,
        1,
        2,
        4,
        16,
        3,
        1,
        1,
        4,
        9,
        3,
        1,
        1,
        2,
        11,
        2,
        0,
        1,
        2,
        8,
        2,
        0,
        3,
        2,
        4,
        2,
        0,
        1,
        2,
        5,
        3,
        1,
        1,
        4,
        3,
        3,
        1,
        2,
        2,
        8,
        2,
        0,
        2,
        2,
        4,
        2,
        0,
        1,
        2,
        5,
        3,
        1,
        1,
        4,
        3,
        3,
        1,
        1,
        2,
        8,
        2,
        0,
        2,
        2,
        4,
        2,
        0,
        1,
        2,
        5,
        3,
        1,
        1,
        4,
        3,
        3,
        1,
        1,
        2,
        8,
        2,
        0,
        3,
        2,
        4,
        2,
        0,
        1,
        2,
        5,
        3,
        1,
        1,
        4,
        3,
        3,
        1,
        1,
        2,
        4,
        2,
        0,
        4,
        2,
        8,
        2,
        0,
        7,
        2,
        4,
        2,
        0,
        1,
        2,
        8,
        3,
        1,
        1,
        4,
        13,
        3,
        1,
        2,
        2,
        4,
        2,
        0,
        1,
        2,
        8,
        3,
        1,
        1,
        4,
        13,
        3,
        1,
        3,
        4,
        9,
        3,
        1,
        2,
        2,
        4,
        2,
        0,
        1,
        2,
        5,
        3,
        1,
        1,
        4,
        3,
        3,
        1
    ]
}

[Trace - 1:24:31 PM] Sending notification 'update/ansible-metadata'.
Params: [
    [
        "file:///d%3A/projects/bbg/ansible-role-percona/tasks/set_vars.yml"
    ]
]

[Trace - 1:24:31 PM] Received notification 'window/logMessage'.
Params: {
    "type": 1,
    "message": "Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry."
}

[Error - 1:24:31 PM] Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry.
cmd 'python3 --version' was not executed with the following error: ' TypeError: process.getuid is not a function
[Trace - 1:24:31 PM] Received notification 'window/logMessage'.
Params: {
    "type": 1,
    "message": "Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry."
}

[Error - 1:24:31 PM] Volume mount source path '/d:/projects/bbg/ansible-role-percona' does not exist. Ignoring this volume mount entry.
cmd 'ansible-lint --version' was not executed with the following error: ' TypeError: process.getuid is not a function
template parsing error: template: :1: unclosed action
Error: Command failed: docker inspect --format='{{json .Config}}' ghcr.io/ansible/creator-ee:latest
template parsing error: template: :1: unclosed action

    at checkExecSyncError (node:child_process:848:11)
    at Object.execSync (node:child_process:922:15)
    at Object.execSync (node:electron/js2c/asar_bundle:5:12704)
    at c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:121696
    at Generator.next (<anonymous>)
    at s (c:\Users\MYUSERNAME\.vscode\extensions\redhat.ansible-2.0.58\out\server\src\server.js:2:118981) {
  status: 64,
  signal: null,
  output: [
    null,
    '',
    'template parsing error: template: :1: unclosed action\n'
  ],
  pid: 48512,
  stdout: '',
  stderr: 'template parsing error: template: :1: unclosed action\n'
}
[Trace - 1:24:32 PM] Received notification 'update/ansible-metadata'.
Params: [
    [
        {
            "ansible information": {},
            "python information": {},
            "ansible-lint information": {},
            "execution environment information": {
                "container engine": "docker",
                "container image": "ghcr.io/ansible/creator-ee:latest",
                "container image ID": "ae6bc88205d7"
            }
        }
    ]
]

[Trace - 1:24:57 PM] Sending response 'window/showMessageRequest - (11)'. Processing request took 1175887ms
No result returned.

[Trace - 6:53:45 PM] Sending request 'textDocument/hover - (2)'.
Params: {
    "textDocument": {
        "uri": "file:///d%3A/projects/bbg/ansible-role-percona/tasks/set_vars.yml"
    },
    "position": {
        "line": 5,
        "character": 61
    }
}

[Trace - 6:53:45 PM] Received response 'textDocument/hover - (2)' in 11ms.
No result returned.

[Trace - 7:06:51 PM] Sending notification 'textDocument/didClose'.
Params: {
    "textDocument": {
        "uri": "file:///d%3A/projects/bbg/ansible-role-percona/tasks/set_vars.yml"
    }
}

Looks like a real bug to me :)  @priyamsahoo ?

I'm not sure if this is related, but I was trying to use VS Code DevContainer that was based on my Execution Environment and at first it could not find Ansible or Ansible-lint.  I added full paths to both in my VS Code config and then it could find Ansible, but it still wouldn't recognize that I had ansible-lint installed inside of the EE I was using as my DevContainer, which sounds a lot like this but report.


Python bindings

The following Python bindings are not mandatory, but can be useful to check whether the formulation (settings of cost and constraints) are correct or not in Python:

[ ] SplitOCP
[ ] SplitKKTMatrix
[ ] SplitKKTResidual
[ ] StateEquation
[ ] ContactDynamics
[ ] ImpulseSplitOCP
[ ] ImpulseSplitKKTMatrix
[ ] ImpulseSplitKKTResidual
[ ] ImpulseStateEquation
[ ] ImpulseDynamics
[ ] SwitchingConstraint
[ ] SwitchingConstraintJacobian
[ ] SwitchingConstraintResidual
[ ] TerminalOCP

Low priority


Emacs can't find gofmt

M+x gofmt gives me output:
"Searching for program: no such file or directory, gofmt"

Make sure that PATH includes the directory your gofmt binary is in. Confirm with M-: (getenv "GOPATH"). If you're on OS X, look into exec-path,


Add Giuseppe Scrivano as a runtime spec maintainer

@giuseppe ptal.
@opencontainers/runtime-spec-maintainers ptal.
Signed-off-by: Mrunal Patel<EMAIL_ADDRESS>

@vbatts looks like your e-mail needs an update as well (it's almost mailing-list day!)

@thaJeztah yeah I noticed that while making this PR but we can handle those as separate PRs :)

ping @opencontainers/runtime-spec-maintainers

LGTM

friendly ping @opencontainers/runtime-spec-maintainers

LGTM, I forgot about this. This cannot be merged yet -- I'll update the PR description to include the current vote.
/cc @opencontainers/runtime-spec-maintainers

yay!
LGTM
(and yes, my email needs to be updated)

to get movement on this, @giuseppe might you provide a bit more of context on contributions and reasoning behind the recommendation here? activity, contributions, etc.
(not everyone has worked with you)

to get movement on this, @giuseppe might you provide a bit more of context on contributions and reasoning behind the recommendation here? activity, contributions, etc.
(not everyone has worked with you)

I am the main author of crun.  I've got the most experience with the runtime specs working on it.
I've also contributed some other fixes for the runtime-specs: https://github.com/opencontainers/runtime-spec/pulls?q=is%3Apr+author%3Agiuseppe, in particular I've worked on adding support for cgroup v2: https://github.com/opencontainers/runtime-spec/pull/1040

Thanks for adding some additional detail (and for your work here)!
LGTM

Passes with 6 LGTMs (of 5 required), welcome to the crew @giuseppe!

thanks everyone!  :smile: