issues/366: Serve pprof using the same server as the application

Fixes: https://github.com/komuw/ong/issues/366

Codecov Report
Patch coverage: 62.42% and project coverage change: -1.35% :warning:

Comparison is base (c1f3b86) 74.64% compared to head (90335d7) 73.30%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #373      +/-   ##
==========================================
- Coverage   74.64%   73.30%   -1.35%
==========================================
  Files          44       46       +2
  Lines        5270     5380     +110
==========================================
+ Hits         3934     3944      +10
- Misses       1068     1167      +99
- Partials      268      269       +1

Files Changed
Coverage Δ

mux/mux.go
0.00% <0.00%> (-72.73%)
:arrow_down:

mux/route.go
0.00% <0.00%> (-90.41%)
:arrow_down:

server/pprof.go
39.51% <0.00%> (-47.99%)
:arrow_down:

internal/mx/mx.go
65.33% <65.33%> (ø)

server/server.go
75.67% <88.00%> (-0.23%)
:arrow_down:

internal/mx/route.go
90.97% <90.97%> (ø)

internal/acme/acme.go
74.48% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

superseded by https://github.com/komuw/ong/pull/375


Add CenterOnLaunch property

Summary of the Pull Request
If the users set true to this property, the terminal will appear on the center of the user's display.

References

PR Checklist

[x] Closes #7722
[x] CLA signed. If not, go over here and sign the CLA
[ ] Tests added/passed
[ ] Documentation updated. If checked, please file a pull request on our docs repo and link it here: #xxx
[ ] Schema updated.
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed

Alright, team sanity check - are we cool with adding a centerOnLaunch:bool property that overrides initialPosition? If centerOnLaunch is set to true, then initialPosition will be ignored.
The only other possible design would be overloading initialPosition so it's "initialPosition": coord|"center", but I hate that.
@DHowett and @carlos-zamora are the usual suspects for having strong opinions on this

Alright, team sanity check - are we cool with adding a centerOnLaunch:bool property that overrides initialPosition? If centerOnLaunch is set to true, then initialPosition will be ignored.
The only other possible design would be overloading initialPosition so it's "initialPosition": coord|"center", but I hate that.
@DHowett and @carlos-zamora are the usual suspects for having strong opinions on this

I'm a sucker for "initialPosition": coord|"center" hahaha. And I'm really not a fan of a setting that makes another setting ignored. If we don't go with the overloaded initialPosition design, could we at least come up with a third design that doesn't cause another setting to be ignored?

Maybe I was a little strong in the morning - I guess I don't hate it. But if I abstain, then we'll only have two people voting, so we'd need consensus, or more voters. I suppose launchMode could be used? That's already used for maximized, which overrides initialPosition, but I guess then we'd need centered and centeredFocus and we're getting dangerously close to the states problem haha.
Yea I like overloading launchMode the least, let's not do that

The interaction between the two properties initialPosition and centerOnLaunch is unclear, and deserves its own mini spec.
Here's the problem:

launchMode maximized = maximize the window

no initialPosition = maximize on main monitor
initialPosition x<0 = maximize on left monitor
initialPosition y<0 = maximize on top monitor
initialPosition center = ?

initialPosition center = center the window

how do I specify which monitor to center on?

That's a good point. I suppose I thought launchMode was a good example of a property whos value already made initalPosition ignored, but I guess I'm wrong about that.
So initialPosition+centered:true is "I want it to be centered on this monitor", and that makes sense to me

I will fix this.

Hey I just want a quick ACK, I think nearly 2 months ago we discussed offline being cool with adding this as a separate bool setting. We still on board with that? So the interactions are like:

initialPos: x,y, centered: true, launchMode: default: center on the monitor that x,y is on
initialPos: x,y, centered: true, launchMode: maximized: maximized on the monitor that x,y is on (centered adds nothing)
initialPos: <omitted>, centered: true, launchMode: default: center on the default monitor
initialPos: <omitted>, centered: true, launchMode: focus: center, focus mode on the default monitor
initialPos: <omitted>, centered: true, launchMode: maximized: maximized on the default monitor (centered adds nothing)

@DHowett

Hey I just want a quick ACK, I think nearly 2 months ago we discussed offline being cool with adding this as a separate bool setting. We still on board with that? So the interactions are like:

initialPos: x,y, centered: true, launchMode: default: center on the monitor that x,y is on
initialPos: x,y, centered: true, launchMode: maximized: maximized on the monitor that x,y is on (centered adds nothing)
initialPos: <omitted>, centered: true, launchMode: default: center on the default monitor
initialPos: <omitted>, centered: true, launchMode: focus: center, focus mode on the default monitor
initialPos: <omitted>, centered: true, launchMode: maximized: maximized on the default monitor (centered adds nothing)

@DHowett

Hey I just want a quick ACK, I think nearly 2 months ago we discussed offline being cool with adding this as a separate bool setting. We still on board with that? So the interactions are like:

initialPos: x,y, centered: true, launchMode: default: center on the monitor that x,y is on
initialPos: x,y, centered: true, launchMode: maximized: maximized on the monitor that x,y is on (centered adds nothing)
initialPos: <omitted>, centered: true, launchMode: default: center on the default monitor
initialPos: <omitted>, centered: true, launchMode: focus: center, focus mode on the default monitor
initialPos: <omitted>, centered: true, launchMode: maximized: maximized on the default monitor (centered adds nothing)

@DHowett

This seems right to me!

Moved to #9036


[Designer- Preview Mode]: On receiving the keyboard focus tooltip is not appearing for the 'Preview mode' control.

https://microsoft.visualstudio.com/OS/_workitems/edit/37793517

This issue is not repro on the environment, hence closing this issue.
Test Environment:
URL: https://adaptivecards.io/
OS Version: 23H2(OS Build 25931.1000)
Browser Version: Edge Dev (118.0.2060.1)
Screen Reader: Narrator


Anomalous content assist proposals

I seem to have discovered some source patterns which produce anomalous content assist proposals. There are three categories:

When a property is JSDoc'd with @type {some.local.type}, the content assist for a partial expression that dereferences that property incorrectly proposes the properties of the owning class's constructor function object rather than the 'instance shape' comprised of properties created within the constructor function body and those defined on the prototype. The problem does not arise for @type {some.library.type} or where the property is initialised to an instance of any.type (including primitives).

Something similar occurs when a property is JSDoc'd with @type {Array.<some.local.type>} or @type {[some.local.type]}. The content assist for a partial expression that dereferences an array element incorrectly proposes members of the some.local.type() constructor function object rather than the members of an instance of some.local.type. This problem does not arise for @type {Array.<some.library.type>} nor if a property is simply initialised with an array literal containing an instance of any.type.

When a class is extended by multiple sub-classes, content assist for an instance of one subclass sometimes incorrectly proposes members of a sibling subclass.

I tried to attached a tern-issues.js file to illustrate these issues but GitGub won't accept it.

Attachments not working, here is the content of tern-issues.js:
// ===========================================================================
// ===                             DEFINITIONS                             ===
// ===========================================================================

/** @namespace */
var ns = {};

/**
 * A simple class. The instance and prototype member declarations rely on the Tern doc_comment module (strong: true) to supply type
 * information.
 *
 * @constructor
 */
ns.MyClass = function() {
    /**
     * A property that holds an ns.MyClass object, defined by the ns.MyClass constructor.
     *
     * @type {ns.MyClass}
     */
    this.instObjPropJsDocType = /* new ns.MyClass() */undefined;

    /**
     * A property that holds an ns.MyClass object, defined by the ns.MyClass constructor. This member does not have an @ type
     * annotation but is explicitly initialised to such an instance.
     */
    this.instObjPropExplicitType = new ns.MyClass();

    /**
     * A property that holds an array of ns.MyClass objects, defined by the ns.MyClass constructor. This member is annotated with
     * the JSDoc3-style @ type {ns.MyClass[]} tag, but Tern does not recognise it as an array nor does it recognise the array
     * element type.
     *
     * @type {ns.MyClass[]}
     */
    this.instArrayPropJsDoc1Type = /* [new ns.MyClass()] */undefined;

    /**
     * A property that holds an array of ns.MyClass objects, defined by the ns.MyClass constructor. This member is annotated with
     * the JSDoc3-style @ type {Array.<ns.MyClass>} tag, but Tern does not recognise it as an array nor does it recognise the
     * array element type.
     *
     * @type {Array.<ns.MyClass>}
     */
    this.instArrayPropJsDoc2Type = /* [new ns.MyClass()] */undefined;

    /**
     * A second instance property that holds an array of ns.MyClass objects, defined by the ns.MyClass constructor. This member is
     * annotated with Tern's @ type {[ns.MyClass]} tag, which Tern recognises as an array but doesn't handle the element type
     * correctly, whereas JSDoc neither recognises this as an array nor does it recognise the element type.
     *
     * @type {[ns.MyClass]}
     */
    this.instArrayPropTernType = /* [new ns.MyClass()] */undefined;

    /**
     * A third instance property that holds an array of ns.MyClass objects, defined by the ns.MyClass constructor. This member does
     * not have an @ type annotation but is explicitly initialised to such an array.
     */
    this.instArrayPropExplicitType = [ new ns.MyClass() ];

    /**
     * A property that holds an array of Date objects, defined by the ns.MyClass constructor.
     *
     * @type {Array.<Date>}
     */
    this.instDateArrayPropJsDocType = undefined;
};

/**
 * A static method that returns a string.
 *
 * @memberOf ns.MyClass
 * @static
 * @returns {String} A hard-coded string.
 */
ns.MyClass.staticMethod = function() {
    return "Hello, World";
};

/**
 * A static integer constant.
 *
 * @static
 * @constant
 * @type {Number}
 */
ns.MyClass.CONSTANT = 0;

/**
 * A property that holds a single ns.MyClass object, defined by the ns.MyClass prototype.
 *
 * @type {ns.MyClass}
 */
ns.MyClass.prototype.protoObjPropJsDocType = /* new ns.MyClass() */undefined;

/**
 * A property that holds an array of ns.MyClass objects, defined by the ns.MyClass prototype. This member is annotated with the
 * JSDoc3-style @ type {Array.<ns.MyClass>} tag. Both Tern and JSDoc3 recognise this as an array but content assist does not
 *              handle element type correctly.
 *
 * @type {Array.<ns.MyClass>}
 */
ns.MyClass.prototype.protoArrayPropJsDocType = /* [new ns.MyClass()] */undefined;

/**
 * A second property that holds an array of ns.MyClass objects, defined by the ns.MyClass prototype. This member is annotated with @ type
 * {[ns.MyClass]} tag, which Tern recognises but JSDoc3 does not recognise this as an array nor does it recognise the element type.
 *
 * @type {[ns.MyClass]}
 */
ns.MyClass.prototype.protoArrayPropTernType = /* [new ns.MyClass()] */undefined;

/**
 * A date array property, defined by the ns.MyClass prototype.
 *
 * @type {Array.<Date>}
 */
ns.MyClass.prototype.protoDateArrayPropJsDocType = undefined;

/**
 * A date array property, defined by the ns.MyClass prototype.
 */
ns.MyClass.prototype.protoDateArrayPropExplicitType = [ new Date() ];

/**
 * A sub-class of ns.MyClass.
 *
 * @extends ns.MyClass
 */
ns.MySubClass1 = function() {
    /**
     * A string property defined by ns.MySubClass1 constructor.
     *
     * @type {String}
     */
    this.instMySubClass1StringProp = undefined;
};
// JSDT does not understand Object.create(prototype)
// ns.MySubClass1.prototype = Object.create(ns.MyClass.prototype);
ns.MySubClass1.prototype = new ns.MyClass();
ns.MySubClass1.prototype.constructor = ns.MySubClass1;
/**
 * A date property defined by the ns.MySubClass1 prototype.
 *
 * @type {Date}
 */
ns.MySubClass1.prototype.protoMySubClass1DateProp = undefined;

/**
 * Another sub-class of ns.MyClass.
 *
 * @extends ns.MyClass
 */
ns.MySubClass2 = function() {
    /**
     * A string property defined by the ns.MySubClass2 constructor.
     *
     * @type {String}
     */
    this.instMySubClass2StringProp = undefined;
};
// JSDT does not understand Object.create(prototype)
// ns.MySubClass2.prototype = Object.create(ns.MyClass.prototype);
ns.MySubClass2.prototype = new ns.MyClass();
ns.MySubClass2.prototype.constructor = ns.MySubClass2;
/**
 * A number property defined by the ns.MySubClass2 prototype.
 *
 * @type {Number}
 */
ns.MySubClass2.prototype.protoMySubClass2NumberProp = undefined;

// ===========================================================================
// ===                             TEST CASES                              ===
// ===========================================================================

var myClass = new ns.MyClass();

// FAIL: Tern content assist for ~. proposes static members of ns.MyClass plus Function.* and Object.* members, not the ns.MyClass.*
// instance and prototype methods. IOW it thinks the value IS the function object ns.MyClass rather than an instance created by new
// ns.MyClass().
myClass.instObjPropJsDocType;
myClass.protoObjPropJsDocType;

// PASS: Tern content assist for myClass.instObjPropExplicitType. correctly proposes ns.MyClass instance and prototype members.
myClass.instObjPropExplicitType;

// FAIL: Tern content assist for myClass.instArrayPropJsDoc1Type. proposes nothing. I.e., Tern does not support JSDoc @type {xxx[]}
myClass.instArrayPropJsDoc1Type;

// PASS: Tern content assist for myClass.instArrayPropJsDoc2Type. proposes Array methods.
myClass.instArrayPropJsDoc2Type;

// FAIL: Tern content assist for myClass.instArrayPropJsDoc2Type[0]. proposes static members of ns.MyClass plus Function.* and
// Object.* members, not the ns.MyClass.* instance and prototype methods. IOW it thinks the array element IS the function object
// ns.MyClass rather than an instance created by new ns.MyClass().
myClass.instArrayPropTernType[0];

// PASS: Tern content assist for ~. correctly proposes Array.* and Object.* members.
myClass.instArrayPropTernType;
myClass.instArrayPropExplicitType;
myClass.instDateArrayPropJsDocType;
myClass.protoArrayPropTernType;
myClass.protoDateArrayPropExplicitType;

// PASS: Tern content assist for ~. correctly proposes Date.* members.
myClass.instDateArrayPropJsDocType[0];
myClass.protoDateArrayPropJsDocType[0];
myClass.protoDateArrayPropExplicitType[0];

// FAIL: Tern content assist for ~. proposes static members of ns.MyClass plus Function.* and Object.* members, not the ns.MyClass.*
// instance and prototype methods. IOW it thinks the value IS the function object ns.MyClass rather than an instance created by new
// ns.MyClass().
myClass.instArrayPropTernType[0];
myClass.instArrayPropJsDoc2Type[0];
myClass.protoArrayPropJsDocType[0];
myClass.protoArrayPropTernType[0];

// PASS: Tern content assist for myClass.instArrayPropExplicitType[0]. correctly proposes ns.MyClass.* members.
myClass.instArrayPropExplicitType[0];

var mySubClass1 = new ns.MySubClass1();
var mySubClass2 = new ns.MySubClass2();

// FAIL: Tern content assist for mySubClass1.inst incorrectly proposes members of SIBLING ns.MySubClass2! Note that JSDoc
// description for instMySubClass2StringProp is NOT displayed.
mySubClass1.inst;

// FAIL: Tern content assist for mySubClass1.proto incorrectly proposes members of SIBLING ns.MySubClass2! Note that JSDoc
// description for instMySubClass2StringProp IS displayed, unlike the preceding instMySubClass2StringProp case.
mySubClass1.proto;

// PASS: Tern content assist for mySubClass2.inst correctly proposes members of ns.MySubClass2 but not of sibling ns.MySubClass1.
mySubClass2.inst;

// FAIL: Tern content assist for mySubClass2.proto incorrectly proposes members of SIBLING ns.MySubClass1!
mySubClass2.proto;

As I wrote in email, the completions in those examples work fine for me. Could you create a much smaller example and a more precise description of the problem?

Here's a smaller example. I've removed the PASS: cases and I've attached screen shots:

I can't make the FAIL: descriptions more precise than they already are.
file: tern-issues-condensed.js
// ===========================================================================
// ===                             DEFINITIONS                             ===
// ===========================================================================

/** @namespace */
var ns = {};

/**
 * A simple class. The instance and prototype member declarations rely on the
 * Tern doc_comment module (strong: true) to supply type information.
 * @constructor
 */
ns.MyClass = function() {
    /**
     * A property that holds an ns.MyClass object, defined by the ns.MyClass
     * constructor.
     * @type {ns.MyClass}
     */
    this.instObjPropJsDocType = /* new ns.MyClass() */undefined;

    /**
     * A property that holds an array of ns.MyClass objects, defined by the
     * ns.MyClass constructor.
     * @type {Array.<ns.MyClass>}
     */
    this.instArrayPropJsDocType = /* [new ns.MyClass()] */undefined;
};

/**
 * A static method that returns a string.
 * @memberOf ns.MyClass
 * @static
 * @returns {string} A hard-coded string.
 */
ns.MyClass.staticMethod = function() {
    return "Hello, World";
};

/**
 * A static integer constant.
 * @static
 * @constant
 * @type {number}
 */
ns.MyClass.CONSTANT = 0;

/**
 * A property that holds a single ns.MyClass object, defined by the ns.MyClass prototype.
 * @type {ns.MyClass}
 */
ns.MyClass.prototype.protoObjPropJsDocType = /* new ns.MyClass() */undefined;

/**
 * A property that holds an array of ns.MyClass objects, defined by the ns.MyClass prototype. This member is annotated with the
 * JSDoc3-style @ type {Array.<ns.MyClass>} tag. Both Tern and JSDoc3 recognise this as an array but content assist does not
 *              handle element type correctly.
 * @type {Array.<ns.MyClass>}
 */
ns.MyClass.prototype.protoArrayPropJsDocType = /* [new ns.MyClass()] */undefined;

/**
 * A sub-class of ns.MyClass.
 * @extends ns.MyClass
 */
ns.MySubClass1 = function() {
    /**
     * A string property defined by ns.MySubClass1 constructor.
     * @type {string}
     */
    this.instMySubClass1StringProp = undefined;
};
ns.MySubClass1.prototype = new ns.MyClass();
ns.MySubClass1.prototype.constructor = ns.MySubClass1;
/**
 * A date property defined by the ns.MySubClass1 prototype.
 * @type {Date}
 */
ns.MySubClass1.prototype.protoMySubClass1DateProp = undefined;

/**
 * Another sub-class of ns.MyClass.
 * @extends ns.MyClass
 */
ns.MySubClass2 = function() {
    /**
     * A string property defined by the ns.MySubClass2 constructor.
     * @type {string}
     */
    this.instMySubClass2StringProp = undefined;
};
ns.MySubClass2.prototype = new ns.MyClass();
ns.MySubClass2.prototype.constructor = ns.MySubClass2;
/**
 * A number property defined by the ns.MySubClass2 prototype.
 * @type {number}
 */
ns.MySubClass2.prototype.protoMySubClass2NumberProp = undefined;

// ===========================================================================
// ===                             TEST CASES                              ===
// ===========================================================================

var myClass = new ns.MyClass();
var mySubClass1 = new ns.MySubClass1();
var mySubClass2 = new ns.MySubClass2();

// FAIL: Tern content assist for myClass.*ObjPropJsDocType. proposes static
// members of ns.MyClass plus Function.prototype.* & Object.prototype.*
// members, not the ns.MyClass.* instance and prototype methods. IOW it thinks
// the value IS the function object ns.MyClass rather than an instance created
// by new ns.MyClass().
myClass.instObjPropJsDocType;
myClass.protoObjPropJsDocType;

// FAIL: Tern content assist for myClass.*ArrayPropJsDocType[0]. proposes static
// members of ns.MyClass plus Function.prototype.* & Object.prototype.* members,
// not the ns.MyClass.* instance and prototype methods. IOW it thinks the array
// element IS the function object ns.MyClass rather than an instance created by
// new ns.MyClass().
myClass.instArrayPropJsDocType[0];
myClass.protoArrayPropJsDocType[0];

// FAIL: Tern content assist for mySubClass1.inst incorrectly proposes members
// of SIBLING ns.MySubClass2! Note that JSDoc description for
// ns.MySubClass2.instMySubClass2StringProp is NOT displayed.
mySubClass1.inst;

// FAIL: Tern content assist for mySubClass1.proto incorrectly proposes members
// of SIBLING ns.MySubClass2! Note that JSDoc description for
// instMySubClass2StringProp IS displayed, unlike the preceding
// instMySubClass2StringProp case.
mySubClass1.proto;

// PASS: Tern content assist for mySubClass2.inst correctly proposes members of
// ns.MySubClass2 but not of sibling ns.MySubClass1.
mySubClass2.inst;

// FAIL: Tern content assist for mySubClass2.proto incorrectly proposes members
// of SIBLING vns.MySubClass1!
mySubClass2.proto;

You're still including 140 lines, and I doubt all of those are needed to isolate the problem.  Can you reproduce it there?

@angelozerr The screenshots look like this is occurring in your Eclipse plugin (is it?). Can you reproduce it there?

Yes I have the same thing than screenshot, but which problems are you talking.
To be honnest with you, I'm a little lost with a lot of cases (even if it's very well explained). It should be very cool if @demonfiddler  could create an issue per problem and with just a little code.
I have noticed that code uses @constructr, @namespace, @extends that https://github.com/marijnh/tern/blob/master/plugin/doc_comment.js doesn't support.

Thanks for the responses; apologies if the test cases have been confusing. Yes, all this work is done through Angelo's Eclipse plug-in but I see the same problem if I paste the code below into the Tern online demo.
The doc_comment plug-in seems to treat an @type annotation as the actual value of the annotated property rather than treating it as the type of the property (i.e., the constructor function of the type to which the property value is assumed/expected to conform).
I see a similar problem in the array case (for which I can supply a separate test case if you would like).
The following is just about as simple as I could make it.
tern-issue-1-minimal.js:
// ===========================================================================
// ===                             DEFINITIONS                             ===
// ===========================================================================

var ns = {};

/**
 * A simple class. The instance and prototype member declarations rely on the
 * Tern doc_comment module (strong: true) to supply type information.
 */
ns.MyClass1 = function() {
    /**
     * A property that holds a ns.MyOtherClass1 reference, defined by the ns.MyClass1
     * constructor.
     * @type {ns.MyOtherClass1}
     */
    this.instObjPropJsDocType = undefined;
};

ns.MyOtherClass1 = function() {
	/**
	 * A string property defined by the ns.MyOtherClass1 constructor.
	 * @type {string}
	 */
	this.instMyOtherClass1StringProp = undefined;
}

/**
 * A static integer constant.
 * @type {number}
 */
ns.MyOtherClass1.CONSTANT = 0;

/**
 * A property that holds a single ns.MyOtherClass1 object, defined by the ns.MyClass1 prototype.
 * @type {ns.MyOtherClass1}
 */
ns.MyClass1.prototype.protoObjPropJsDocType = undefined;

// ===========================================================================
// ===                             TEST CASES                              ===
// ===========================================================================

var myClass = new ns.MyClass1();

// FAIL: Tern content assist for myClass.*ObjPropJsDocType. proposes static
// members of ns.MyOtherClass1 plus Function.prototype.* & Object.prototype.*
// members, not the ns.MyOtherClass1.* instance and prototype members. It thinks
// the expressions below evaluate to the function object ns.MyOtherClass1 rather
// than an instance created by new ns.MyOtherClass1().
myClass.instObjPropJsDocType;
myClass.protoObjPropJsDocType;

@marijnh, @angelozerr, are you able to reproduce the problem? I'm starting to take some heat over this and need to demonstrate some progress :-) Thanks, --A!

@demonfiddler take care problem per problem. I have seen a problem (tested with CodeMirror demo) when a namespace (ns here) is used:
var ns = {};
ns.MyClass1 = function() {
    /**
     * @type {ns.MyOtherClass1}
     */
    this.instObjPropJsDocType = undefined;
};

ns.MyOtherClass1 = function() {
    /**
     * @type {string}
     */
    this.instMyOtherClass1StringProp = undefined;
}

/**
 * @type {number}
 */
ns.MyOtherClass1.CONSTANT = 0;

/**
 * @type {ns.MyOtherClass1}
 */
ns.MyClass1.prototype.protoObjPropJsDocType = undefined;

var myClass = new ns.MyClass1();
myClass.instObjPropJsDocType. // here Ctrl+Space should show instMyOtherClass1StringProp but it shows CONSTANT

As you can see, myClass.instObjPropJsDocType should be an instance of ns.MyOtherClass1, but when ns is used it returns the ns.MyOtherClass1 type (and we have CONSTANT and apply, bind methods in the compeltion).
Now if you remove ns namespace:
var MyClass1 = function() {
    /**
     * @type {MyOtherClass1}
     */
    this.instObjPropJsDocType = undefined;
};

var MyOtherClass1 = function() {
    /**
     * @type {string}
     */
    this.instMyOtherClass1StringProp = undefined;
}

/**
 * @type {number}
 */
MyOtherClass1.CONSTANT = 0;

/**
 * @type {MyOtherClass1}
 */
MyClass1.prototype.protoObjPropJsDocType = undefined;

var myClass = new MyClass1();
myClass.instObjPropJsDocType. // here Ctrl+Space show instMyOtherClass1StringProp it works great

Here's what a properly reduced test case ended up looking like:
var ns = {Class: function() {}}
/** @type {ns.Class} */
var v; // <- type of v is the constructor, whereas I expected an instance

In general, verbosity isn't good in bug reports. Attached patch seems to fix this issue. If that still isn't what you meant, give me another (minimal) test case.

Many thanks @marijnh it works great now with my test.

give me another (minimal) test case.

I agree with you! It was hard for me too to understand the problem quickly.

Gentlemen, many thanks for your time and effort, and for the patch. I have a piece of work to complete then I will cycle back to this and update you with results over the next day or two.


Move codecs from transport to the higher level client-server abstraction

Initially we have encoding and decoding happening in the transport layer.
Ideally we could move this logic one level up, so the transports remains dumb, sending data from A to B, while we can encode/decode the data on a higher level.
WIP https://github.com/betit/orion/tree/wsproto

PR merged.


[ETFE-1128] Introduced specific error pages for outlines scenarios in Copy deck

Non-Specific Auth Error

Not on the Private Beta list

Inactive Enrolment

No Enrolment

Wrong Affinity Group

The platops-pr-bot comments have been addressed on another PR that's open.


Fix: Stop messing with nested  tags inside the  component

Motivation
The current CSS applies a padding-bottom: 0.5em to every label tag inside the <Label /> component, resulting in inconsistencies in third-party components some times when used nested.
This small fix makes it contained, keeping it working within reakit components, simply targeting the first <label /> element from the <Label /> component only, instead of any label that can exist inside of it.
What kind of change does this PR introduce?
A bugfix
Does this PR introduce a breaking change?
Nope

Codecov Report

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

@@           Coverage Diff           @@
##           master     #331   +/-   ##
=======================================
  Coverage   87.31%   87.31%
=======================================
  Files          82       82
  Lines         607      607
  Branches      137      137
=======================================
  Hits          530      530
  Misses         77       77

Continue to review full report at Codecov.

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

Thank you @armand1m.
It shouldn't be applied to every label in the document though, even without >. Could you please provide a small reproduction where it happens?

Hey @diegohaz, I just analyzed better the scenario, it actually is not a global issue, but actually I am putting a component that has a few <label> components inside the actual <Label /> because I am using this component in a <Field /> component in order to keep consistency in form fields.
What happens is that when using something like this:
import React from 'react';
import { Box, Field, Label, Paragraph } from 'reakit';

const SampleComponent = (props) => (
  <Field>
    <Label>
      <Paragraph>
        Input Label
      </Paragraph>
      {
        /**
         * the component below is a fake form field
         * maybe something like a stars rating component for example
         * these components can actually render
         * a few <labels> for WAI-ARIA reasons
         * and those can get impacted by the styles
         * imposed by the <Label /> component
         */
      }
      <SomeThirdPartyComponent />
    </Label>
  </Field>
);

export default SampleComponent;

the <label>'s from third party components can get unwanted padding-bottom styles.
This change would make it strict this padding only to label's that are directly children of the <Label /> component

(I also edited the PR description in order to update the reason)

Your example is semantically incorrect. As you can see here, you can't nest labels:

Phrasing content, but with no descendant labelable elements unless it is the element's labeled control, and no descendant label elements.

But, since the styles are applied to the Field component (and not Label), it doesn't matter. You would have this issue even if you fixed your example. So we might still consider this change. However, I see some problems:

<SomeThirdPartyComponent /> may render labels directly in a <React.Fragment />.
There may be people not using labels as direct children of Field, but still relying on the margin-bottom rule. For them, it would be a breaking change.

I guess the best solution for your case (which seems to be an edge case) is to just overwrite Field's styles:
import { styled, Field } from "reakit";

const StyledField = styled(Field)`
  label {
    margin-bottom: 0;
  }
`;

Indeed you're right, what I did was actually only stop using the Field component and have my own Field implementation instead =) I'll close the PR
Thanks for the discussion btw!


Ensure notifying l2cap channel of disconnection

This bug resulted in connections not closing until timed out on one end.

/test


Bug in buggy branch

In the "buggy-capstone" branch, I noticed the mobile menu button is unresponsive. Upon closer inspection, I realized that in your JavaScript file, you miss matched the selector you use for the button from the one in your HTML file.

The button code in your HTML
<button type="button" class="mobile-menu-toggle dekstop-hidden" aria-controls="primary-navigation" aria-expanded="false">

The code used to capture it in your JS file
const mobileMenuToggle = document.querySelector('#mobile-menu-toggle');

In the query selector you reference a "mobile-menu-toggle" ID while in the HTML file that label belongs to a Class and not an ID. I suggest you change your query selector to reference a Class instead of an ID. That should eliminate the bug.

💯 💯 💯
Nicely Done @badger-99


Broken Links in Sum of all odd Fibbonaci Nos Guide

Fixed a broken and a missing link in the guide.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Thanks for contributing to the freeCodeCamp repository. Congratulations on your first PR! 🎊
Look forward to more contributions from you! ✈


TextField for Wearable

Text fields are not recommended by Google on wearable devices, but sometime apps needs to use them (an example is Log-in in standalone apps) but all the ways on Wear Compose to call keyboard are  uncomfortable to use and are rich of issues. Can you implement a simplified and functional way for text input?

What are you imagining? Say a text field, with visible border to invite a touch.  then launching out to the text entry activities and updating in place?
Similar API to https://developer.android.com/jetpack/compose/text ?

What are you imagining? Say a text field, with visible border to invite a touch. then launching out to the text entry activities and updating in place?
Similar API to https://developer.android.com/jetpack/compose/text ?

 I was thinking we would just call out to  Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH) or RemoteInputIntentHelper.createActionRemoteInputIntent() but maybe I misunderstood?

I know that you can use remote intent helper but using it you can't set a type of allowed content (like only put numbers) or text type(like password)

I don't think a keyboard implementation in library form in Horologist would be appropriate.  There is an established mechanism of Remote Intents, that could be adapted to support alternative keyboard apps. Maybe that would be more appropriate, a way for apps to use the best available installed keyboard app?
Going to close this as we won't be a keyboard app in Horologist.


solution for Selene Selenium 3.0 Actions error #113

I do not know how to build a full version of selene (I only forged part of the code), but if the added lines are in this file, the problem is solved

Codecov Report

Merging #145 into master will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master    #145      +/-   ##
=========================================
+ Coverage   62.77%   62.8%   +0.03%
=========================================
  Files          25      25
  Lines        1131    1132       +1
  Branches       97      97
=========================================
+ Hits          710     711       +1
  Misses        415     415
  Partials        6       6

Impacted Files
Coverage Δ

selene/abctypes/webdriver.py
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

@evgenynalivayko to build selene module you can use
python setup.py bdist_sheel

@Yup, it fixes some errors, but still double click doesn't work well

If the double click problem is on FF, it's an issue that's in testing.
https://github.com/mozilla/geckodriver/issues/661

OK, will wait fix for this


request publish permission

Hi Snowbridge,
I've done some investigation in eth bridge related projects and add some notes in my personal space , I would like to publish the note to some public/semi public channels but not sure if it is proper with some codes attached extract from this repo, so  I would ask for permissions from you guys first

These notes look like they're mostly just a collection of parts copied from our existing documentation with a few personal additions.
If you think it would be helpful to include any suggestions or changes into our existing documentation, then feel free to make a pull request to them and we'll review and include them.
I'm not sure how you expect these notes to be consumed by others or where you would want to post them but again,

yes, it is more like a personal study note about the existing documentation, I add some background knowledge of beefy&mmr and why we need it also with some code comments about current implementation


[BUG] java.nio.file.FileSystemNotFoundException: Provider "vfs" not installed

Context:

Playwright Version: 1.19.0
Operating System: Linux
Browser: N/A
Extra: Playwright JARs are bundled inside a WAR and deployed into WildFly/JBoss application server v11.0.0.Final

Code Snippet
import com.microsoft.playwright.Browser;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;
import com.microsoft.playwright.options.Margin;
import com.microsoft.playwright.options.Media;

try (Playwright playwright = Playwright.create();
    Browser browser = playwright.chromium().launch()) {
  final String tmpFile = "/tmp/file-" + Instant.now().getEpochSecond() + ".html";
  Files.write(Paths.get(tmpFile), html.getBytes());
  try (final Page page = browser.newPage()) {
    page.navigate("file://" + tmpFile);
    final Page.PdfOptions pdfOptions = configurePageOptions(header, footer);
    rendered = page.pdf(pdfOptions);
  }
}

Describe the bug
Playwright returns an exception Caused by: java.lang.RuntimeException: Failed to create driver which is caused by java.nio.file.FileSystemNotFoundException: Provider "vfs" not installed as following (redacted due to verbosity).
It happens at the line try (Playwright playwright = Playwright.create();.
io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_152]
	at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_152]
Caused by: java.lang.RuntimeException: Failed to create driver
	at com.microsoft.playwright.impl.Driver.ensureDriverInstalled(Driver.java:54) [driver-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.impl.PlaywrightImpl.create(PlaywrightImpl.java:40) [playwright-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.Playwright.create(Playwright.java:96) [playwright-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.Playwright.create(Playwright.java:100) [playwright-1.19.0.jar:1.19.0]
	at au.com.infomedix.pdfkit.PlaywrightHtmlToPdf.render(PlaywrightHtmlToPdf.java:31) [:]

...

	... 228 more
Caused by: java.nio.file.FileSystemNotFoundException: Provider "vfs" not installed
	at java.nio.file.Paths.get(Paths.java:147) [rt.jar:1.8.0_152]
	at com.microsoft.playwright.impl.DriverJar.extractDriverToTempDir(DriverJar.java:90) [driver-bundle-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.impl.DriverJar.initialize(DriverJar.java:44) [driver-bundle-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.impl.Driver.ensureDriverInstalled(Driver.java:52) [driver-1.19.0.jar:1.19.0]
	... 257 more

ERROR [default task-14] WFLYEJB0034: EJB Invocation failed on component PdfRenderService for method public byte[] au.com.infomedix.pdfkit.service.PdfRenderService.render(au.com.infomedix.pdfkit.dto.HtmlToPdfRequest) throws java.io.IOException: javax.ejb.EJBTransactionRolledbackException: Failed to create driver

...

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_152]
	at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_152]
Caused by: java.lang.RuntimeException: Failed to create driver
	at com.microsoft.playwright.impl.Driver.ensureDriverInstalled(Driver.java:54) [driver-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.impl.PlaywrightImpl.create(PlaywrightImpl.java:40) [playwright-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.Playwright.create(Playwright.java:96) [playwright-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.Playwright.create(Playwright.java:100) [playwright-1.19.0.jar:1.19.0]
	at au.com.infomedix.pdfkit.PlaywrightHtmlToPdf.render(PlaywrightHtmlToPdf.java:31) [:]

...
	at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_152]
Caused by: java.lang.RuntimeException: Failed to create driver
	at com.microsoft.playwright.impl.Driver.ensureDriverInstalled(Driver.java:54) [driver-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.impl.PlaywrightImpl.create(PlaywrightImpl.java:40) [playwright-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.Playwright.create(Playwright.java:96) [playwright-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.Playwright.create(Playwright.java:100) [playwright-1.19.0.jar:1.19.0]
	at au.com.infomedix.pdfkit.PlaywrightHtmlToPdf.render(PlaywrightHtmlToPdf.java:31) [:]

...
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:255) [wildfly-ejb3-11.0.0.Final.jar:11.0.0.Final]
	... 228 more
Caused by: java.nio.file.FileSystemNotFoundException: Provider "vfs" not installed
	at java.nio.file.Paths.get(Paths.java:147) [rt.jar:1.8.0_152]
	at com.microsoft.playwright.impl.DriverJar.extractDriverToTempDir(DriverJar.java:90) [driver-bundle-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.impl.DriverJar.initialize(DriverJar.java:44) [driver-bundle-1.19.0.jar:1.19.0]
	at com.microsoft.playwright.impl.Driver.ensureDriverInstalled(Driver.java:52) [driver-1.19.0.jar:1.19.0]
	... 257 more

I set a breakpoint and noticed that the exception is thrown from Java 1.8 java.nio.Path.get() method
    public static Path get(URI uri) {
        String scheme =  uri.getScheme();
        if (scheme == null)
            throw new IllegalArgumentException("Missing scheme");

        // check for default provider to avoid loading of installed providers
        if (scheme.equalsIgnoreCase("file"))
            return FileSystems.getDefault().provider().getPath(uri);

        // try to find provider
        for (FileSystemProvider provider: FileSystemProvider.installedProviders()) {
            if (provider.getScheme().equalsIgnoreCase(scheme)) {
                return provider.getPath(uri);
            }
        }

        throw new FileSystemNotFoundException("Provider \"" + scheme + "\" not installed");
    }

The problematic scheme is  vfs:/content/pdf-rest-server.war/WEB-INF/lib/driver-bundle-1.19.0.jar/driver/linux/
The same code above ran successfully as a standalone Java application (i.e. not deployed inside an application server such as WildFly/JBoss).

Digging into this issue, I've realised that, when the JAR dependencies of playwright such as com.microsoft.playwright:driver and com.microsoft.playwright:driver-bundle are bundled as a JAR inside a WAR, the aforementioned error happens.
When I use the maven-dependency-plugin to unpack these two JARs driver and driver-bundle into the WAR, Playwright works properly.

There are many ways to repackage the playwright classes and some of them may well break existing logic of extracting the driver from jar. Officially we only support running via  Maven and from the prebuilt maven modules that we publish. This is the setup that we test on our CI/CD. With that said if there is something in particular in the current implementation that we can change to make it work in your setup we can try that (you are also welcome to send a PR). We had a similar problem with spring bootloader before and managed to make that work..
Given that there is a workaround that you described above I'm closing this issue, feel free to open a new one if you have a concrete proposal on how we can change the code to make it work for your deployment.

@yury-s Thanks for your feedbacks. I'm aware of the Maven CLI to install deps and tools. There are many other cases, for instance, deploying on production or test servers that don't have Maven or the POM to run Maven.

@yury-s Today I delved into this issue and noticed that, it's not due to the repackaging. I looked into the linked tickets and noticed they are actually not the same issue. I would ask you to reopen this ticket until there is a proper fix.
Regardless of the repackaging method (e.g. the one I mentioned above), I got the same error when deploying into a real Java EE application server such as WildFly/JBoss. Before, I run it from my IDE that does not really deploy the WAR but links the compiled resources to WildFly, hence the false negative result.
The root cause is actually in com.microsoft.playwright.impl.DriverJar where Classloader#getResource() is used to retrieve the URI.
  private void extractDriverToTempDir() throws URISyntaxException, IOException {
    ClassLoader classloader = Thread.currentThread().getContextClassLoader();
    URI originalUri = classloader.getResource("driver/" + platformDir()).toURI();

Unfortunately, the outcome of getResource() is not quite reliable and portable and subject to the underlying runtime. For instance, in a standalone JAR, it would be something like jar://  or file:// but in case of WildFly/JBoss application servers, it's vfs:// and the corresponding logic below does not handle that case and hence, always fail regardless of repacking methods.
  private void extractDriverToTempDir() throws URISyntaxException, IOException {
    ClassLoader classloader = Thread.currentThread().getContextClassLoader();
    URI originalUri = classloader.getResource("driver/" + platformDir()).toURI();
    URI uri = maybeExtractNestedJar(originalUri);

    // Create zip filesystem if loading from jar.
    try (FileSystem fileSystem = "jar".equals(uri.getScheme()) ? FileSystems.newFileSystem(uri, Collections.emptyMap()) : null) {

An example of the URI returned by WildFly/JBoss on a Linux host is vfs:/content/pdf-server.war/WEB-INF/classes/driver/linux/.
There are some SO topics like this and another one give some insights about ClassLoader#getResource() behaviour on Java EE application servers.

@yury-s After looking into Playwright source code on loading drivers, I was able to load the drivers with JBoss/WildFly. Unfortunately, that workaround would need a depenpency to org.jboss:jboss-vfs to handle the vfs:/ schema in the resource URI returned from ClassLoader#getResource(...). I don't think we want to bind Playwright to a Java EE implementation like that.
My proposal would be changing Driver.jar where an implementation of Driver is loaded so that, a custom implementation of Driver can be loaded instead. That is,
instead of
  private static Driver createDriver() throws Exception {
    String pathFromProperty = System.getProperty("playwright.cli.dir");
    if (pathFromProperty != null) {
      return new PreinstalledDriver(Paths.get(pathFromProperty));
    }

    Class<?> jarDriver = Class.forName("com.microsoft.playwright.impl.DriverJar");
    return (Driver) jarDriver.getDeclaredConstructor().newInstance();
  }

we change to
  private static Driver createDriver() throws Exception {
    String pathFromProperty = System.getProperty("playwright.cli.dir");
    if (pathFromProperty != null) {
      return new PreinstalledDriver(Paths.get(pathFromProperty));
    }

    String driverImpl = System.getenv("PLAYWRIGHT_DRIVER_IMPL");

    if (driverImpl != null) {
      driverImpl = System.getProperty("playwright.driver.impl");
    }

    if (driverImpl != null) {
      driverImpl = "com.microsoft.playwright.impl.DriverJar";
    }

    Class<?> jarDriver = Class.forName(driverImpl);
    return (Driver) jarDriver.getDeclaredConstructor().newInstance();
  }

If the env PLAYWRIGHT_DRIVER_IMPL is set, then used it to load the subclass of Driver
Else, if the property playwright.driver.impl is set, then used it to load the subclass of Driver
Else (default/fallback):  used the default com.microsoft.playwright.impl.DriverJar

What do you think?

@yury-s Happy to create a PR, but a test? Are there any ways to assert the correct loading of the Driver subclass?

We can do what you suggest. Would system property suffice or you need env variable as well?

I think the system property would suffice.

@yury-s I've submitted a PR.

Hi, here is the same error reported.
How exactly do you use AlternativeDriver class tuning?


Add calls' polling entities to the pollset_set of client_channel

In client_channel, if pick_subchannel thinks a subchannel is not available immediately, add the polling entity in call_data to the interested_parties of channel_data, so that the IO of the lb policy and resolver could be done under it.
Remove call_datas' polling entities from lb policies' interested_parties

@dgquintas Could you please take a look at the change in lb policies?

Breaks grpclb

Ping :grin:

woops, sorry. I'll have a look tomorrow for sure :)

@y-zeng feel free to merge once the tests pass.

@dgquintas Thanks! I'm still rerunning tests to make sure suspicious failures were not caused by this PR.

Needs a merge.
Please at least eyeball the performance smoke tests before submission.

QPS in cpp_protobuf_sync_unary_ping_pong_secure, cpp_protobuf_async_streaming_qps_unconstrained_secure, and
cpp_protobuf_async_unary_ping_pong_insecure are slightly smaller than those in master. But the proportion of client system time did not change significantly (this PR should only affect the client system time).
And following runs showed that the QPS in these tests fluctuated around the numbers in master.

@dgquintas Yes, the performance seems unaffected by this PR.

Test failures seem irrelevant.


Swagger overriding Jackson ObjectMapper (jacksonJaxbjsonprovider)

Hello,
Currently running Swagger 1.5.20 with Jersey 2.29 and Spring, and i'm experiencing some strange JSON serialization behavior. Everything is wired up correctly (so i thought) and the UI will display the API listing; however, when serializing the response i get the following:
{ status: "success", data: "User(id=i,name=me,etc,etc)" }
It appears that the ObjectMapper being registered with Jersey is attempting to call toString when serializing the data property of the response object. The type of data is Object.class and i've even attempted to write a custom serializer. To test i manually serialize the response with my custom object mapper to a string and place that in the JaxRS Response object. The output is as expected so i'm assuming that Swagger's provider is overriding the one used within the jersey container. To validate this theory i use the Json.mapper().pretty method with the same object and i get the response that is causing the issue.
Any thoughts or ideas as to how i can separate the Swagger provider from the rest of the environment? This issue has been brought up before it seems.
Perhaps i'm missing something?

So after further investigation if i write a explicit MessageBodyWriter, it will write, otherwise it attempts to serialize using the default as previously mentioned.


[WIP] Support pending tests

I assume this is the glue to allow https://github.com/TestArmada/magellan-mocha-plugin/pull/3

:+1:

Published in<EMAIL_ADDRESS>


configure devcontainer to be used in codespaces

We have a dockerfile and a devcontainer as tools that testing easier without the need of a raspbery pi:
I would like to configure the devcontainer to make it easy to use github codespaces.
Currently there is an issue where the code is being mounted on the /workspace folder instead of the root/catkin_ws/src/pai
I'll add here relevante resource and see if I can fix it

https://github.com/orgs/community/discussions/15506
Here people are having the same issue and they offer a workaround.

Finally, if you created the codespace from a repository, the entire history of the repository is copied down with a full clone. If you created the codespace from a template, the full history of the template repository is not preserved; instead, unless you are using the blank template, you will start with an initial commit for the contents of the template repository.

https://docs.github.com/en/codespaces/getting-started/deep-dive#step-4-post-creation-setup

@cychitivav  a tutorial to setting up GUI applications with gh cli, ssh and  X11
gh cs ssh -- -XY

https://babyprogrammer.com/blog/running-gui-code-applications-in-github-codespaces-on-windows/

closed by #52


Implement UTXO rule for Conway with appropriate deposit (SPO and DRep) refund calculations

Background
The current UTXO rule accounts for deposit refunds with the assumption that the refunds should amount to the current PParams. This changes with Conway. We need to keep track of deposits (this is already being done in UMap for SPOs, but not for DReps) and also pass the accumulated information about retiring SPOs and DReps that need to be refunded in the DELEG rule onto the UTXO rule where the calculations will be processed for the UTXO state.

We need either another field in DState to accumulate retiring SPOs, DReps and their exact refund amounts, taken from the UMap, or a marker within the UMap without deleting the entry.
UTXO rule could then accept DState in its State rather than in its Environment, because it needs to modify the DState field, or the UMap directly, to clean up the markers or reset the extra field, after it has finished processing the refunds.

@lehins @WhatisRT @Soupstraw

We decided to pass the previous certState into the UTXOW rule, which still has information about the unregistered DReps and StakeCredentials. This is the way it is done in Shelley through Babbage.


Improve Reporting In the Release Object About the Fleet

Now that we have the fleet summary report in the CapacityTarget object, we can summarise it in a way that is easy to read in the conditions of the Release object.
We need to figure out the answers to the following questions:

How can we use the fleet summary to figure out what's wrong?
Once we figure it out, how can we turn it into a string short enough to be put into the message of a condition?

An example of the output I've came up so far:
Happy state:
  reports:
  - achievedPercent: 100
    availableReplicas: 2
    cluster: docker-desktop
    summary: |-
      2 container(s) [nginx(x2)] are in status: ContainersReady:True
      2 container(s) [nginx(x2)] are in status: Initialized:True
      2 container(s) [nginx(x2)] are in status: PodScheduled:True
      2 container(s) [nginx(x2)] are in status: Ready:True

Unhappy state:
  reports:
  - cluster: docker-desktop
    problems: 'PodScheduled:False, reason: Unschedulable, message: 0/1 nodes are available:
      1 Insufficient cpu, 1 Insufficient memory.'


Fix intel assembly syntax

I think the original meaning is using intel assembly syntax instead others.
But the previous qemu.patch is inside if block, won't be trigger.
The syntax remain the same.
If I was wrong, correct me please.

http://stackoverflow.com/questions/42029545/pip-is-error-typeerror-call-takes-exactly-2-arguments-1-given


Allow reading configuration information from file

Allow reading in from a config.txt file, format is able to stay the same (can copy/paste the data from your source code to a file named config.txt, and you're good to go)

@ryanwcraig What format does the config.txt file take? Do the parameters need to be structured in a certain way?

Sorry for closing/reopening - I thought I'd have to open a new pull request for the changes I just made with exception handling.
The format is exactly the same as in the script, so you can copy/paste from the Python script right into the config.txt file. For example,
TOKEN = 'TOKENHERE'
DOMAIN = 'example.com'
RECORD = 'record'

Ah yes, I see it. We don't have unit tests (and I don't python), so are you happy this is functional enough to merge?

I've tested it and it's functional with both conditions (file exists and file doesn't exist/error), so I'm happy that it's functional to merge. The only problem I see is if that config file doesn't exist, it's going to ask for the config information on every run, which could mess with it if it's running in cron/LaunchControl.
It might be best if I work the functionality in to write the config info to a file first, now that i think about it.

Thats good thinking, either that or have the script just halt as it's designed to run in a cron or similar...

Halt for user input, or halt as in exit?

As in exit... unless users tell us that they are using it interactively, I'd just assume its something thats being ran periodically :)

That makes sense! I'll have it throw an exception, I think that's justified in this case.

Excellent, thank you!

No problem! I'll have that updated shortly.

There we go, tested and ready to merge. It raises a SystemExit when there's no config file available, or that file is not properly formatted.

Awesome thanks!


Include repo owner in collaborator check

In the "Check if issue or issue comment is created by collaborator or repo owner" step in create-pr-from-issue.yml, we should explicitly check for the repo owner, and allow issues coming from them to trigger the workflow.

I thought repo owners also counted as collaborators 🤔 Or do you mean to only allow the repo owner to trigger, not any collaborator?
Now that https://github.com/irgolic/AutoPR/pull/38 has been merged (triggering PRs with label instead of rocket comment), are you still experiencing this issue?

I had to add the check in my repo for it to recognize me. I'll try again.

Sorry for the delay, tried again and all works as expected, closing.

No worries, thanks for letting me know!


txn: skip check for force lock

Skip the conflict check for force pessimistic lock

@coocood PTAL

To fully implement force lock, we also need to lock the key after wake up.

LGTM


AnimationTree.tree_root.get_child_by_name(String) gives "non existing method error"

Godot version
3.5 RC7
System information
Windows 10
Issue description
As in the documentation, AnimationTree.tree_root should return an AnimationNode Object, which should have a "get_child_by_name(String)" method. The editor even completes the method for us. However, it gives us an error which says that such method does not exist.

Steps to reproduce
Try to run the minimal project.
Minimal reproduction project
BugReport_3_5_AnimationNode.zip

Duplicate of #62379.


Back Button on Main after solving a puzzle

After either successfully solving a puzzle, or time runs out, if the user hits the back button on the main screen it will take the user back to the solve puzzle screen.  Hitting back button on Main should exit app.

bug


Project Structure

From @grabear on April 10, 2017 15:58
Project structure is of immediate priority and interest.  However, the structure is currently in flux.  We will have to continue to modify it based on our needs until we reach something stable.
Copied from original issue: grabear/Orthologs-Project#21

The project structure is essentially stable.  I think that we're at a good point and can close this issue. @sdhutchins

While we may move things around a bit or delete them....  From what I can see we have a nice setup.


#67 Create Custom Cursor

@kire21  can you please help @Mikivitkovski with resolving these conflicts, so nothing is lost. thanks 🙏

@kire21  can you please help @Mikivitkovski with resolving these conflicts, so nothing is lost. thanks 🙏

OK. I'll be in touch with @Mikivitkovski

@Mikivitkovski did you come up with a compromise with @edichoska to use the square icon for the cursor in the blog section?

@Mikivitkovski did you come up with a compromise with @edichoska to use the square icon for the cursor in the blog section?

Yes we speak, and she told me to be just arrow, and i send to her more different arrows in cursor to decide how its better look, and she told me to do it like that one in the commit


Stack of notifications

Now only one notification can be displayed simultaneously.
But what do you think about feature of stacking of few messages?

@PSDCoder i think that you better can try https://github.com/jirikavi/AngularJS-Toaster this will support stacking out of the box. Hope that helps.

Not super simple, but i think it's do-able.
I'll try to get on it this weekend.

@tcdevs I know about angularjs-toaster and angular-toastr, but would like to see this feature in this module.
@yftachman Thanks!

@PSDCoder I've thought about adding that in the past.  I'm not a big fan of trying to stack messages with the current full width format - I think it could lend to a bad user experience if half the screen is piling up notifications, but I have thought about adding a new option for a stack type of message that could be positioned towards each of the corners, similar to toaster as @tcdevs has mentioned.  Is that sort of what you were thinking as well?
@yftachman sounds good, would love to see what you come up with!

That's thr least of my worries. NgNotify relies on there being only one notification object. We have to change it so it will be able to manage notification objects.
But im guessing that adding a class that handles the width is not going to be a problem.

@matowens Yeap, maybe in current format it will be not good. We can change positioning with width, as you suggest, or we can store in stack all notifications, but show simultaneously only 3 for example, after closing one - we show next.  Also we can decrease vertical paddings. We can try different variants.

A quick update:
i tried to do this today.
theres seems to be a lot of problems
i've tried to use an ng-repeat inside the template.
took a few hours till i got that working but now its seems we have a new problem with the fadeLib.
in my opinion the logic and the ui are too coupled to eachother.
it might be better to extract the fadeLIb into a directive, this way we can handle the data of notifications (# of notification present and properties of each notification) and let the angular do all the heavy lifting regarding the ui.
but this means extensive changes to this library, i would like to hear what are you thoughts on the issue.
you can view my changes in my fork in the develop branch:
https://github.com/yftachman/ng-notify

worked on it a little more today.
it works but has some bugs with sticky notifications and needs a little clean up


FASTA protein and FASTA DNA buttons don't work on the Pathway Summary page

fixed and available on beta

Checked, working now.


NIFI-7428: Switch hive.version property to set Hive 3 version

Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
Description of PR
It is useful for automated NiFi builds to be able to use the latest version of Apache Hive. Some build scripts already set hive.version to the Hive version to use. When switching from Hive 1.2 to Hive 3, the hive.version property should be set to the Hive 3 version in order to not break existing automated build jobs, and future-proof it for Hive 3.x.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] Have you verified that the full build is successful on both JDK 8 and JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

Thanks @mattyb149... will review.

Thanks @mattyb149! This has been merged to master.


Appveyor / CI not configured

It seems Appveyor is enabled but not configured (also there is no appveyor config file in the repository).

I was testing it out but never got around to actually integrating with it.

Let me know if you need any help with the integration and I'll prepare something.

UI-based modules like Window and Screen are much harder to test automatically, especially in a headless environment on multiple operating systems.

We can use Puppeteer for this =)

These modules aren't really for manipulating webpages, but rather for taking screenshots of the entire desktop, querying the number of monitor, manipulating windows on the desktop and moving data in and out of the clipboard. One way would be to have a desktop environment but simulate it automatically using another library to compare the results. Something like JUCE or SDL would work nicely for verifying. But again, not really a CI tool.
That being said, if the CI environment is simply building, then it doesn't matter. The testing can be done in a VM and automated with the method mentioned above.

Ah ok, then we need xvfb and other alternatives?

But I have not so much knowledge about these specific solutions.

Yes something like that would work, not sure if there's a similar solution for Windows and OSX.


Add Container.max to set both width and height as infinity by default

Description
Improve Container using a static max method (Container.max) that creates a Container with both height and width set to double.infinity. This setting differs from Expanded on my projects because Expanded goes of screen, while Container(width: double.infinity, height: double.infinity) doesn't do that!
Related Issues
This is a issue I have found while I was making my personal projects, so I don't found any issues it may get into!
Tests
I added the following tests:
Replace this with a list of the tests that you added as part of this PR. A change in behaviour with no test covering it
will likely get reverted accidentally sooner or later. PRs must include tests for all changed/updated/fixed behaviors. See Test Coverage.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: Replace with a link to your migration guide

@googlebot I fixed it.

So,
Should we close this pull request?

I think so, yes. If you're looking for some things to start tackling, you can take a look through the issues DB, particularly issues labeled easy fix: https://github.com/flutter/flutter/issues?q=is%3Aopen+is%3Aissue+label%3A"easy+fix"


Fixed broken FCM Credentials link

I signed the OCA

I signed the OCA

Please ensure that you sign the OCA with the same account -<EMAIL_ADDRESS>


profile: Adds ScopedProfiler

Notes:

Calls cpuid before rdtsc due to http://stackoverflow.com/a/2918125/969365 (not sure if it's actually needed though)
Not sure if we really need to add an example service. If you don't want it I can remove it.

I also did some testing before and after the "ptrstuff" commits (on bd60272f4d12c5530ef175ea472de8eca07f97fc and on adcf38c3f3df5cddd4e7592a719950df5d5fa70d):
Before:
--------------------------------------------------------------------------------
         29.366431 |    6013 | VirtioNet::msix_recv_handler()
         15.438494 |    3003 | VirtioNet::msix_xmit_handler()
--------------------------------------------------------------------------------

After:
 Average Time (us) | Samples | Function Name
--------------------------------------------------------------------------------
         26.893452 |    6013 | VirtioNet::msix_recv_handler()
         15.070289 |    3003 | VirtioNet::msix_xmit_handler()
--------------------------------------------------------------------------------

You should consider using RDTSCP instead if you can. Also, if your going to use RDTSC and CPUID, you need to set the register state for CPUID so that the execution time doesn't vary based on the register state. So for example, you could set EAX to 0 to ensure you always ask for "Basic CPUID Information".

For some reason I thought that RDTSCP was only available on x86_64, but I realize now that it's probably available in x86_32 too - you just have to check that the cpu supports it. I got PANIC when I tried to use it :smile:.  I'll add a check and use RDTSCP if it's available.
I'll fix the CPUID + RDTSC code as well, since we'll need a fallback timer in case RDTSCP isn't available.
By the way, in some examples I've seen them change the order of CPUID and RDTSC when "stopping" the timer ( https://idea.popcount.org/2013-01-28-counting-cycles---rdtsc/ ). I don't really understand why. Why would you care about serializing the instruction queue after calling RDTSC?

Oh - I guess that this explains the problem: http://akaros.cs.berkeley.edu/lxr/akaros/kern/arch/x86/rdtsc_test.c
 * The idea behind this was that the traditional style of using rdtsc was to
 * call:
 * 			cpuid;
 * 			rdtsc;
 * since rdtsc does no serialization (meaning later instructions can get
 * executed before it, or vice versa).  While this first cpuid isn't a big deal,
 * doing this in pairs means reading the end time also measures cpuid.  This is
 * a problem since cpuid can vary quite a bit.

...

 * Its not clear from what anyone writes as to whether or not you need to
 * serialize below rdtsc.  Supposedly, you'd need cpuid/lfence on both sides of
 * rdtsc to prevent reordering in both directions.  Andi Kleen does this in a
 * few places

I'm not sure of what way to go for. We don't really care about how exact (versus real time) the measurements are but rather that there is little variance in the result, since we're mostly (only?) going to use this to compare functions / code paths before and after making some changes to it.

I just tried replacing CPUID with LFENCE, due to (from the link in my previous comment):

So case 5 will be my go-to for now. It should have the same protection as the others (perhaps 6 is better), it is stable, and it has a low overhead and low resolution (less capacity to hide instruction latency).  Finally, the start and end measurements use the same code, which is very convenient.

I ran the same case as in my first comment and got this result:
Before:
 Average Time (us) | Samples | Function Name
--------------------------------------------------------------------------------
         13.749135 |    6015 | VirtioNet::msix_recv_handler()
          0.400780 |    3003 | VirtioNet::msix_xmit_handler()
--------------------------------------------------------------------------------

After:
 Average Time (us) | Samples | Function Name
--------------------------------------------------------------------------------
         13.431130 |    6013 | VirtioNet::msix_recv_handler()
          0.369620 |    3003 | VirtioNet::msix_xmit_handler()
--------------------------------------------------------------------------------

So, which case do we choose? lfence; rdtsc always (even if rdtscp is available) or use rdtscp if it's available, even if Barret thinks that lfence; rdtsc is more stable?

Some more investigation. Linux uses cpu vendor and X86_FEATURE_XMM2 to select whether to use LFENCE or MFENCE before a call to RDTSC.
http://lxr.free-electrons.com/source/arch/x86/kernel/cpu/intel.c#L497
http://lxr.free-electrons.com/source/arch/x86/kernel/cpu/amd.c#L767
I propose we implement something similar. Check, using CPUID::is_amd/intel_cpu() and CPUID::has_feature(XMM2) whether to use LFENCE or MFENCE before RDTSC. Never use RDTSCP, even if it's available, per Barret's analysis ( http://akaros.cs.berkeley.edu/lxr/akaros/kern/arch/x86/rdtsc_test.c#L258 ).

I would move all the = deleted stuff to the bottom of the class, otherwise it looks quite good :+1:

Another thing I'm thinking about is moving stack sampler into its own header and module (stack_sampler) and keep the profiler in profile or profiler. Wanna do it?

Looks nice @gurka! Personally I always prefer seeing actual cycles instead of converted into time. This way you're more independent of the CPU speed.  But that's a very minor thing and just my preference :-)

Back when I used to do a lot of this, I never had a nice breakdown of the different options, and depending on who you talked to (including Intel engineers), you had to use CPUID, LFENCE etc... The variance that this person is seeing is something I used to see with RDTSC as well but on older hardware. The solution that we used was case #5, but people used to swear that CPUID was needed and worked so long as you primed eax.
I think going with case #5 is reasonable as that would likely have better support in virtualized environments (to be honest your lucky it works in a VM at all). The analysis that was done was on real hardware that doesn't require a trap on that instruction so just keep in mind that because your in a VM, some of the insanity with what they guy was doing may not apply.
The bigger question you have to ask yourself is... do you trust the results your getting 😄

I used to lock my qemu process to a single physical CPU using taskset when I was using rdtsc for a paper in order to avoid variance from CPU migrations.

@fwsGonzo I actually prefer keeping all constructors and destructors together, especially now when we have = delete;. It won't make a difference to put them below private:, if that's what you wanted, just a different compiler error message. But if you really want them at the bottom of the class I'll put them there :)
I can split the two profilers into separate headers, but in a later PR if that's OK.
@alfred-bratterud My first version actually printed the number of cycles instead of time spent. Since we're going to use this just for comparing it doesn't really matter if we show time spent or cycles spent, so maybe I should change it back to just showing cycles. Doing that also means we could get rid of the extern double _CPUFreq_;, and avoid breaking stuff if we ever rename that variable. 👍

@rianquinn Yeah, following guidelines and comments from people running tests on real hardware isn't probably the best in this case. Maybe we should conduct similar tests ourselves, within the VM, and see how much variance there really is. To find a setup that works best for us.
But for now I think that we can go with lfence / mfence; rdtsc; as it seems to work pretty well.

Oh... agreed 100%. Unless you have a good reason to have that kind of accuracy what you have is fine. I'm actually impressed you took it this far 👍 .

Ready to be merged?

Yes. Would be great if someone could test this using an AMD CPU though. I've only tested it on an Intel CPU and qemu without kvm.

I'll test this on my AMD at work whenever I get there


Add Total.js

Total.js is popular (more than 2 thousand stars) framework with a set of free ready-made solutions (dashboard, blogengine, eshop, etc). I think it should be included in this list.

Thanks for the suggestion, but I'm going to pass on this. This is a curation, so I unfortunately can't include everything.

Total.js framework has no dependencies, so installation and upgrading is very easy.

That's the opposite of the values the Node.js community is built on. Here we build of top of existing proven work, rather than reinventing the wheel.

"That's the opposite of the values the Node.js community is built on." - who is to say that? :) I guess when you are the curator of a popular awesome-list :) There is certainly some value to having no dependencies, IMO.


"Could not resolve the dependencies" error

First of all, I'm using librarian through the vagrant-librarian-puppet plugin. I don't think it should have a huge bearing but it might do, the box I'm trying to run on is a ubuntu/trusty64.
I have a Puppetfile (shown below) which has been working just fine for months, my environment hasn't changed and I'm able to tear down the box and rebuild with no problems at all. However I'm now wishing to add MongoDB to my environment so I decided to add puppetlabs/mongodb to my Puppet file. I'm not even calling the class anywhere in my code an error which simply says "Could not resolve the dependencies". My project already has a modules directory with all the dependencies except this new addition and I've even tried clearing that but it doesn't seem to have had any impact.
What's more is I've tried a few other Monogdb modules from puppet forge and it's having the same issue. However when it pulls down all of current dependencies it seems to be just fine.
Any thoughts would be much appreciated, do also let me know if you need more information that I've not provided already.
Below is my Puppetfile, followed by the line I'm adding to the bottom of it to include pupeptlabs/monogdb as well as the full stack trace.
Puppetfile (works totally fine)
forge 'https://forgeapi.puppetlabs.com'

mod 'puppetlabs-mysql', '~> 2.3.0'
mod 'puppetlabs-stdlib', '~> 4.4.0'
mod 'puppetlabs-concat', '~> 1.2.0'
mod 'puppet-archive', '~> 0.4.4'
mod 'puppetlabs-vcsrepo', '~> 1.4.0'
mod 'fsalum-redis', '~> 1.0.3'
mod 'elliotblackburn-nodeapp',
  :path => 'site-modules/nodeapp'

Additional line being appended (causes an error)
mod 'puppetlabs-mongodb', '0.17.0'

Error and stack trace

The stack trace

/Users/elliotblackburn/.vagrant.d/gems/gems/librarianp-0.6.3/lib/librarian/action/persist_resolution_mixin.rb:11:in `persist_resolution': Could not resolve the dependencies. (Librarian::Error)
	from /Users/elliotblackburn/.vagrant.d/gems/gems/librarianp-0.6.3/lib/librarian/action/resolve.rb:32:in `run'
	from /Users/elliotblackburn/.vagrant.d/gems/gems/vagrant-librarian-puppet-0.9.2/lib/vagrant-librarian-puppet/action/librarian_puppet.rb:63:in `provision'
	from /Users/elliotblackburn/.vagrant.d/gems/gems/vagrant-librarian-puppet-0.9.2/lib/vagrant-librarian-puppet/action/librarian_puppet.rb:29:in `block in call'
	from /Users/elliotblackburn/.vagrant.d/gems/gems/vagrant-librarian-puppet-0.9.2/lib/vagrant-librarian-puppet/action/librarian_puppet.rb:28:in `each'
	from /Users/elliotblackburn/.vagrant.d/gems/gems/vagrant-librarian-puppet-0.9.2/lib/vagrant-librarian-puppet/action/librarian_puppet.rb:28:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/providers/virtualbox/action/clear_forwarded_ports.rb:15:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/providers/virtualbox/action/set_name.rb:19:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/providers/virtualbox/action/clean_machine_folder.rb:17:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/providers/virtualbox/action/check_accessible.rb:18:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builtin/call.rb:53:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builtin/call.rb:53:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builtin/call.rb:53:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builtin/box_check_outdated.rb:78:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builtin/call.rb:53:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builtin/call.rb:53:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/machine.rb:225:in `action_raw'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/machine.rb:200:in `block in action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/environment.rb:561:in `lock'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/machine.rb:186:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/machine.rb:186:in `action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'

Update:
I've tried recreating this in a new directory with no other modules and I can't seem to recreate the issue at that level. Any ideas what might be going on, I can't for the life of me get it installing and the same error keeps coming up.

Having a similar issue with mod 'puppetlabs/concat', '3.0.0'

Hi,
There's my configuration :

librarian-puppet v3.0.0

And this is an entry in my Puppetfile that it can't resolve version:

mod 'herculesteam-augeasproviders_shellvar', '4.0.0'

Here the stdout of the install command :
[Librarian] Resolving herculesteam-augeasproviders_shellvar (= 4.0.0) <https://forgeapi.puppetlabs.com> [Librarian]   Checking manifests [Librarian]   Module herculesteam-augeasproviders_shellvar found versions: 4.0.0, 3.1.0, 3.0.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.1, 2.1.0, 2.0.4, 2.0.2, 2.0.1, 2.0.0 [Librarian]     Checking herculesteam-augeasproviders_shellvar/4.0.0 <https://forgeapi.puppetlabs.com> [Librarian]       Conflict between herculesteam-augeasproviders_shellvar/4.0.0 <https://forgeapi.puppetlabs.com> and herculesteam-augeasproviders_shellvar (~> 2.0) <https://forgeapi.puppetlabs.com> [Librarian]       Backtracking from herculesteam-augeasproviders_shellvar/4.0.0 <https://forgeapi.puppetlabs.com> [Librarian]     Checking herculesteam-augeasproviders_shellvar/3.1.0 <https://forgeapi.puppetlabs.com> [Librarian]       Conflict between herculesteam-augeasproviders_shellvar/3.1.0 <https://forgeapi.puppetlabs.com> and herculesteam-augeasproviders_shellvar (= 4.0.0) <https://forgeapi.puppetlabs.com> [Librarian]       Backtracking from herculesteam-augeasproviders_shellvar/3.1.0 <https://forgeapi.puppetlabs.com>
I don't know what Librarian is querying to forgeapi, but we target version 4.0.0 of the module, forgeapi sent the available versions, and when Librarian compare with the target version : it outputs herculesteam-augeasproviders_shellvar (~> 2.0).
Then, he tries all versions without success, of course.
I have too the same behaviour with :
mod 'puppetlabs-apt', '7.3.0'
Here's the stack trace :
Could not resolve the dependencies. /var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/action/persist_resolution_mixin.rb:11:in persist_resolution'
/var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/action/resolve.rb:32:in run' /var/lib/gems/2.5.0/gems/librarian-puppet-3.0.0/lib/librarian/puppet/action/resolve.rb:10:in run'
/var/lib/gems/2.5.0/gems/librarian-puppet-3.0.0/lib/librarian/puppet/cli.rb:104:in resolve!' /var/lib/gems/2.5.0/gems/librarian-puppet-3.0.0/lib/librarian/puppet/cli.rb:68:in install'
/home/didier.bourriaud/.gem/ruby/2.5.0/gems/thor-1.0.1/lib/thor/command.rb:27:in run' /home/didier.bourriaud/.gem/ruby/2.5.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in invoke_command'
/home/didier.bourriaud/.gem/ruby/2.5.0/gems/thor-1.0.1/lib/thor.rb:392:in dispatch' /home/didier.bourriaud/.gem/ruby/2.5.0/gems/thor-1.0.1/lib/thor/base.rb:485:in start'
/var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/cli.rb:26:in block (2 levels) in bin!' /var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/cli.rb:31:in returning_status'
/var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/cli.rb:26:in block in bin!' /var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/cli.rb:47:in with_environment'
/var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/cli.rb:26:in bin!' /var/lib/gems/2.5.0/gems/librarian-puppet-3.0.0/bin/librarian-puppet:7:in <top (required)>'
/usr/local/bin/librarian-puppet:23:in load' /usr/local/bin/librarian-puppet:23:in '`
Any suggestions ?

re,
mod 'herculesteam-augeasproviders_shellvar', '4.0.0'

does anything else in your tree depend on that module?

re,
mod 'herculesteam-augeasproviders_shellvar', '4.0.0'

does anything else in your tree depend on that module?

We use a huge Puppetfile which mix Puppet Forge and some private repository. Do you know how I can show if a declared module in my Puppetfile is already a dependancy with another version ?
I'm pretty new with librarian-puppet, our Puppetfile in our CI/CD is process by R10K. I use this tool in Rubymine feature.
I attach the error pretty similar with puppetlabs-apt.
In the Puppetfile :
mod 'puppetlabs-apt', '7.3.0'

And the error :
[Librarian] Resolving puppetlabs-apt (= 7.3.0) <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:168:in `scope_resolving_dependency']
[Librarian]   Checking manifests [lib/librarian/resolver/implementation.rb:184:in `scope_checking_manifests']
[Librarian]   Module puppetlabs-apt found versions: 7.4.2, 7.4.1, 7.4.0, 7.3.0, 7.2.0, 7.1.0, 7.0.1, 7.0.0, 6.3.0, 6.2.1, 6.2.0, 6.1.1, 6.1.0, 6.0.0, 5.0.1, 5.0.0, 4.5.1, 4.5.0, 4.4.1, 4.4.0, 4.3.0, 4.2.0, 4.1.0, 4.0.0, 3.0.0, 2.4.0, 2.3.
0, 2.2.2, 2.2.1, 2.2.0, 2.1.1, 2.1.0, 2.0.1, 2.0.0, 1.8.0, 1.7.0, 1.6.0, 1.5.2, 1.5.0, 1.4.2, 1.4.0, 1.3.0, 1.2.0, 1.1.1, 1.1.0, 1.0.1, 1.0.0, 0.0.4, 0.0.3 [../librarian-puppet-3.0.0/lib/librarian/puppet/source/forge/repo.rb:19:in `versio
ns']
[Librarian]     Checking puppetlabs-apt/7.4.2 <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:191:in `scope_checking_manifest']
[Librarian]       Conflict between puppetlabs-apt/7.4.2 <https://forgeapi.puppetlabs.com> and puppetlabs-apt (= 7.3.0) <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:209:in `debug_conflict']
[Librarian]       Backtracking from puppetlabs-apt/7.4.2 <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:198:in `block in scope_checking_manifest']
[Librarian]     Checking puppetlabs-apt/7.4.1 <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:191:in `scope_checking_manifest']
[Librarian]       Conflict between puppetlabs-apt/7.4.1 <https://forgeapi.puppetlabs.com> and puppetlabs-apt (= 7.3.0) <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:209:in `debug_conflict']
[Librarian]       Backtracking from puppetlabs-apt/7.4.1 <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:198:in `block in scope_checking_manifest']
[Librarian]     Checking puppetlabs-apt/7.4.0 <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:191:in `scope_checking_manifest']
[Librarian]       Conflict between puppetlabs-apt/7.4.0 <https://forgeapi.puppetlabs.com> and puppetlabs-apt (= 7.3.0) <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:209:in `debug_conflict']
[Librarian]       Backtracking from puppetlabs-apt/7.4.0 <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:198:in `block in scope_checking_manifest']
[Librarian]     Checking puppetlabs-apt/7.3.0 <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:191:in `scope_checking_manifest']
[Librarian]       Conflict between puppetlabs-apt/7.3.0 <https://forgeapi.puppetlabs.com> and puppetlabs-apt (< 7.0.0, >= 2.0.0) <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:209:in `debug_conflict']
[Librarian]       Backtracking from puppetlabs-apt/7.3.0 <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:198:in `block in scope_checking_manifest']
[Librarian]     Checking puppetlabs-apt/7.2.0 <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:191:in `scope_checking_manifest']
[Librarian]       Conflict between puppetlabs-apt/7.2.0 <https://forgeapi.puppetlabs.com> and puppetlabs-apt (= 7.3.0) <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:209:in `debug_conflict']
[Librarian]       Backtracking from puppetlabs-apt/7.2.0 <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:198:in `block in scope_checking_manifest']
...
...
[Librarian]   Failed to resolve puppetlabs-apt (= 7.3.0) <https://forgeapi.puppetlabs.com> [lib/librarian/resolver/implementation.rb:177:in `block in scope_resolving_dependency']
Could not resolve the dependencies.
/var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/action/persist_resolution_mixin.rb:11:in `persist_resolution'
/var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/action/resolve.rb:32:in `run'
/var/lib/gems/2.5.0/gems/librarian-puppet-3.0.0/lib/librarian/puppet/action/resolve.rb:10:in `run'
/var/lib/gems/2.5.0/gems/librarian-puppet-3.0.0/lib/librarian/puppet/cli.rb:104:in `resolve!'
/var/lib/gems/2.5.0/gems/librarian-puppet-3.0.0/lib/librarian/puppet/cli.rb:68:in `install'
/home/xxxxxxx/.gem/ruby/2.5.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
/home/xxxxxxx/.gem/ruby/2.5.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
/home/xxxxxxx/.gem/ruby/2.5.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
/home/xxxxxxx/.gem/ruby/2.5.0/gems/thor-1.0.1/lib/thor/base.rb:485:in `start'
/var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/cli.rb:26:in `block (2 levels) in bin!'
/var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/cli.rb:31:in `returning_status'
/var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/cli.rb:26:in `block in bin!'
/var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/cli.rb:47:in `with_environment'
/var/lib/gems/2.5.0/gems/librarianp-1.0.0/lib/librarian/cli.rb:26:in `bin!'
/var/lib/gems/2.5.0/gems/librarian-puppet-3.0.0/bin/librarian-puppet:7:in `<top (required)>'
/usr/local/bin/librarian-puppet:23:in `load'
/usr/local/bin/librarian-puppet:23:in `<main>'

The conflict detected is strange :
Conflict between puppetlabs-apt/7.3.0 https://forgeapi.puppetlabs.com and puppetlabs-apt (< 7.0.0, >= 2.0.0) https://forgeapi.puppetlabs.com [lib/librarian/resolver/implementation.rb:209:in `debug_conflict']
All others rule try to match our required version. But when librarian try to chech the target version, he changes the rules --> puppetlabs-apt (< 7.0.0, >= 2.0.0)