[BUG] frame set_type and frame set_label_type not working as expected

Describe the bug
I'm learning fltk and recreated the simple introduction Hello World app described here. The app should create a Hello World Box with a shadow on the text and a Frame around the label. I don't seem to get either.
To Reproduce
Here's the rust I was using.
use fltk::{
    app::*,
    dialog::*,
    frame::*,
    enums::Font::*,
    enums::LabelType::*,
    enums::FrameType::*,
    window::Window,
};

fn main() {
    let app = App::default();
    let  mut window:Window = Window::new(0,0,340,180,"Problem");
    let mut frame:Frame = Frame::new(20,40,300,100, "Hello, World!");
    frame.set_type(UpBox);
    frame.set_label_font(HelveticaBoldItalic);
    frame.set_label_size(36);
    frame.set_label_type(ShadowLabel);
    window.end();
    window.show();
    app.run().unwrap();
}

Expected behavior
I was expecting this

and I get

Desktop (please complete the following information):

OS: Windows 10 x64
Version ^0.5

Any assistance would be appreciated.

Hi
You'll need to use the set_frame method:
frame.set_frame(UpBox);
As for the ShadowLabel, some digging has shown that FLTK uses a macro to define FL_SHADOW_LABEL, it happens on first use of the macro. Unfortunately it's not being translated from the Rust side, so I'll have to see how I can fix this. Probably initialize all macros with the App::default() call.
I'll keep this open as a bug for now.

Update:
The following should work as expected on master.
I'll up the version this evening.
use fltk::{
    app::*,
    dialog::*,
    frame::*,
    enums::Font::*,
    enums::LabelType::*,
    enums::FrameType::*,
    window::Window,
};

fn main() {
    let app = App::default();
    let  mut window:Window = Window::new(0,0,340,180,"Problem");
    let mut frame:Frame = Frame::new(20,40,300,100, "Hello, World!");
    frame.set_frame(UpBox);
    frame.set_label_font(HelveticaBoldItalic);
    frame.set_label_size(36);
    frame.set_label_type(ShadowLabel);
    window.end();
    window.show();
    app.run().unwrap();
}


Demo: HLS Live seek is not possible

Using https://shaka-player-demo.appspot.com/demo/#asset=//storage.googleapis.com/shaka-live-assets/player-source.m3u8;lang=es-419;build=uncompiled
Seek is not possible with HLS Live
Shaka Player Demo.zip

This is intended, and is consistent with built-in HLS support in Safari.
Can you give us some details on how you expected it to work?

I expect that works the same way that DASH.
We want offer to the user the same experiencie with DASH and HLS. We offer to the users a n-timeshift over live stream ( the same as Youtube, eg: https://www.youtube.com/watch?v=0tek2aa8hAQ)
https://shaka-player-demo.appspot.com/demo/#asset=//storage.googleapis.com/shaka-live-assets/player-source.mpd;lang=es-419;build=uncompiled
Shaka Player Demo.zip

We can probably make this configurable, and make it apply to all live streams (DASH & HLS).  By default, we would allow seeking to any segment we know about.  The other option would be to disallow live stream seeking, as we do today for HLS live.

You should be able to seek in HLS live streams now. Just set the manifest.availabilityWindowOverride configuration to an appropriate value before loading the stream.

hi @theodab
it's not working as expected, how can you knowWindow by default in HLS? with the new configuration I can only set a value if the value it's know by the application, but the real availabilityWindow is already included in the stream
By default the behavior it's the same as in previous releases (eg 2.4.2) and the default behavior is different to DASH.

Well, in that case, you should wait on #999.
That issue is currently blocked, awaiting other refactors, but it's also in the 2.5 milestone so you won't be waiting forever.

Hi @joeyparrish,
I just tested with Infinity and I get more range than declared in the playlist. This does not work for an EVENT playlist (startover funcionality) because the start is a known value, but the duration change in each update.
I attach a video with the test.
Issue-1307.zip

I think this feature is not working correctly.  I will reopen and investigate.

The override set by the player after the initial manifest is parsed is wiped when a live manifest is updated.

@avelad, can you please try again with the latest code?  I believe we have fixed the issue.

I found thaht it's not possible configure availabilityWindowOverride = Infinity in Demo page, is it possible add Infinity value?

That's a limitation of <input type=number>.  You could use a sufficiently large number in the demo, such as<PHONE_NUMBER> (larger than the current Unix time in seconds).

@joeyparrish I would think there would be three distinct use cases for this setting:

Not setting anything: Non-seekable HLS and using timeShiftBufferDepth for DASH.
Setting availabilityWindowOverride: Using that value to indicate the time that segments remain alive for and determining the seek range.
Using #999: The segments that appear in the latest manifest determine the seek range.

So setting to Infinity would mean (to me) to be all segments are available forever, similar to not having a timeShiftBufferDepth in DASH.  If I am wrong, how do you see setting to Infinity being different than #999?

@TheModMaker, you are right.  For HLS, there is no difference between a window override of Infinity and my plans for #999.  For DASH, it is a bit different.  Until #999 is solved, the DASH live edge is based on availabilityStartTime, not the segment list.  For HLS, it is already based on the segment list.

Okay, with that change, setting availabilityWindowOverride to Infinity (or some other arbitrary large value) should now properly set the start time on an HLS livestream.

I just tested and everything works as expected. Thanks!!


[outline view] support a push model

Right now outline view only supports a pull model, i.e. invoking DocumentSymbolProvider.provideDocumentSymbol() when document content changed. However, for custom document symbol providers that prefer to update symbols with different events, such as onDidSaveTextDocument or other external events, there didn't seem to be a way to signal/push symbols to the outline view.
Suggest that DocumentSymbolProvider can follow the same push pattern, such as with TextDocumentContentProvider or CodeLensProvider, which utilizes the event model to signal/push changes  from custom providers.

it's a tradeoff between performance and accuracy. In our example, we are trying to provid the test names for the unnamed test blocks <function> (see #60641), which requires parsing the whole file on each provideDocumentSymbol call. During active editing, it can generate a lot of activities negatively impacts the responsiveness.
It is ligit to ask why is it ok to delay such update until the "save"? For our provider/extension, the rationales include:

our extension triggers background unit testing upon document save, it is reasonable for the users to assume the test info, as well as test status, will be updated at such time.
The name of the test is mainly information purpose, one can argue that a slight delay is probably ok.

which requires parsing the whole file on each provideDocumentSymbol call

That's what most of them do and that's ok. We debounce requests on the client so that it doesn't happen on each keystroke. If your computation is expensive make sure to move it into a separate process so that you don't block extensions (see LSP).
We are not planning to go to the push model here but you prevent updates if you want. Nothing prevents your provider from returning an "old" (cached) result and only compute a fresh result every so often.

the whole idea about this feature request is to address "what to do when the extension has the data but vscode is not calling..." Without push, we can only submit the updated symbols on the next provideDocumentSymbol call, which is only triggered when the user edit the document.
Here is a simple workflow to illustrate the user experience:

user edit the document => outline didn't change because we are returning the cached (old) symbols
user save the document, document is then updated (by the extension) with test status decorators, new code lense, and we now have the updated document symbols => but outline didn't change because vscode is not calling  the extension.
if the user wanted to see outline reflecting the latest document state, i.e. with the new symbols, he/she would have to "fake" an edit in order to trigger vscode issuing provideDocumentSymbol again...

IMHO, this is not an acceptable user experience.
In case I haven't made it clear, I wasn't suggesting to replace the current pull model with push, only to supplement it with an additional push mechanism that already supported by other vscode components. This is to allow extensions to properly contributing to outline view when they have off-cycle updates. Your early comments seem to imply that there is a simple workaround thus the push model is not needed, but I am not sure such workaround actually addressed the issue above...

In case I haven't made it clear, I wasn't suggesting to replace the current pull model with push, only to supplement it with an additional push mechanism that already supported by other vscode components

I understand that and I agree that this isn't an acceptable user experience. But that's also true for the push model extension you are proposing. As a user I expect the outline view to update as I type, not as the extension is taking it's time to recompute the outline. Computing the outline should be a fast and you should try to make your outline provider fast.

Computing the outline should be a fast and you should try to make your outline provider fast.

hmm... if I made it sound like we are asking this feature because our extension is slow, let me correct this misconception here. On the contrary, we are able to handle the pull updates just fine as you would have hoped. But just because we can doesn't mean we should, as a developer, I know I could be using user's resource unnecessarily. And as a user, I have been to the situtations too many times that when multiple processes are going at the same time or when I am using a less powerful host, the normally fast and unnoticeable operations suddently became untolerably slow... then you start to ask yourself, do I really need to do all these operations at this point...?

As a user I expect the outline view to update as I type, not as the extension is taking it's time to recompute the outline.

I would rephrase the question as such: As a user, do I need the outline view to update as I type even when I am short on CPU resource and can I live with less frequent update when needed...?
Every prodiver takes time to run, no matter how fast it is, it can't beat the peformance of not running, i.e. zero. Thanks to this discussion, I come to realize the perfect balance between performance vs. accuracy can not be decided by vscode nor extensions as a one-size-fits-all solution, since it is highly subjective and heavily depending on user's environment, it would only make sense to allow the users to decide for themselves. Like code formating, users should be able to say I want my test outline to be updated as I type or when I save. We are capable of supporting both today, if vscode provides a hook, which needs not be through push model, it can simply invoke provideDocumentSymbol when document is saved...
Having said all these, if typescript 3.2 release did address the unnamed function symbols (#58367), I am perfectly ok to walk away from this request and leave the battle to the next lucky extension... 😏


Exposure Logging is in false "active" state when Location is turned off

Describe the bug

After switching off Location app still displays that Exposure Logging is active, when in fact it is not. There is a notification displayed from Play Services to turn Location back on, but it can be dismissed (even accidentally, by dismissing all notifications), and user stays in a state with exposure logging not working, false "active" status displayed in the app, and no clue how to turn it back on.
Expected behaviour

App should always display correctly whether exposure logging is active, and guide user to turn Location back on if this is the reason for exposure logging not working. This is already handled correctly for the case when Bluetooth is off.
Steps to reproduce the issue

download the app
agree to exposure logging
turn location off
dismiss all notifications
check if you are in a false state of "active" exposure logging with no clue how to turn it back on

Technical details
Android 10
Possible Fix

I'd suggest to take a look how Immuni app from Italy handles this. If using "Location" word is not desired here app can simply display "Service inactive", and a button to activate it which brings up "Turn on COVID-19 Exposure Notifications?" prompt again and leaves it up to Exposure Notifications framework to handle turning on all required services.

Sorry about the moving back and forth. This issue is already being worked on, so it should stay in the android repo.

@aurisnoctis
sorry for the late answer ...

On my German Android version 6.0.1 it is:
Android Einstellungen > Standort > Modus > Nur GPS.

on my German Android 8.0.0 (Samsung Galaxy S7) the only hint for "Only GPS" is far down in tree:
Android Einstellungen > Verbindungen > Standort > Suchmethode > Nur Telefon
and on all higher levels it is called "Nur Telefon" which I find a bit misleading, but that is Googles fault.

Update to https://github.com/corona-warn-app/cwa-app-android/issues/881#issuecomment-648214790
Google seems to have fixed wrong ENF-Notifications about missing location and bluetooth as of ENF version<PHONE_NUMBER>3 (on Samsung S5 with stock Android 6.0.1), so I closed https://github.com/google/exposure-notifications-android/issues/35.
At least this helps to now correctly inform people that location has to be turned on. Happy that the CWA team is working on it as well.

Fixed for me (v1.2.0) - when switching off location, exposure logging is no longer displayed as "active" in the app


Modified command for getting Arc oid

Using single quotes around the number caused a failure with error message:  ')' or ',' expected at position 35 in 'servicePrincipalNames/any(c:c eq ''bc313c14-388c-4e7d-a58e-70017303ee3b'')
Removing single quote from the service id provided the expected outcome

@stevelatta : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"

#sign-off

@georgewallace: I'm sorry - only the author of this article, @JnHs, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#reassign jnhs

@georgewallace Thanks for the review; merging.


POINT M parsed as POINT Z

I'm writing a service that is an interface to pyproj, currently using Shapely to handle WKT de/serialisation. I need to support Z, M and ZM geometry types, e.g. POINT Z, POINT M and POINT ZM, because the service is expected to handle vertical datum transformations, and time-dependent datum shifts, so both Z (verical) and M (time) are important pieces of information.
I understand that Shapely does not support M and in fact will silently drop it and therefore does not produce M output; this is fine for my use-case. What I find particularly difficult to handle is that POINT M gets re-interpreted as POINT Z, so it's not just a matter of the measure being dropped, but actually re-interpreted as a vertical coordinate that is not present in the input.
Expected behavior and actual behavior
Expected
My ideal result is that M values are retained:
from shapely import wkt
g = wkt.loads('POINT M (0 0 5)')
g.wkt
# 'POINT M (0 0 5)'

Failing that, anticipating that's a lot of work to implement, I'd be happy with the following, since it's merely lossy rather than inventing new information.
from shapely import wkt
g = wkt.loads('POINT M (0 0 5)')
g.wkt
# 'POINT (0 0)'

Actual
from shapely import wkt
g = wkt.loads('POINT M (0 0 5)')
g.wkt
# 'POINT Z (0 0 5)'

Steps to reproduce the problem.
See above. These examples are for POINT, but the problem is present for other geometry types too.
Operating system
Docker (Debian bullseye-slim)
Shapely version and provenance
1.7.0 installed from PyPI using pip

I believe that this is an issue with GEOS's interpretation of WKT and not directly with Shapely. Shapely is pretty much passing WKT input directly to GEOS and loading the geometry object which is returned, which is not aware if the extra coordinate passed in was Z or M, so it defaults to Z. I believe that is a common issue across geospatial format converters.
That said, you can use the output_dimensions kwarg in wkt.dumps to explicitly truncate the extra dimension:
>>> from shapely import wkt
>>> geom = wkt.loads('POINT M (0 0 5)')
>>> wkt.dumps(geom, output_dimension=2)
'POINT (0.0000000000000000 0.0000000000000000)'

This is a known GEOS issue: https://trac.osgeo.org/geos/ticket/676.

That said, you can use the output_dimensions kwarg in wkt.dumps to explicitly truncate the extra dimension

Unfortunately I could expect POINT, POINT Z, POINT M, or POINT ZM and hoped that the WKT parser would identify the correct geometry type. I can't truncate the third dimension because Z is valid if genuinely supplied.
This seems like a rather important upstream bug, I'll see if I can shake some trees to get some bounty money put towards it.

Is there any headway on this issue? I was hoping to pass a LINESTRING ZM wkt geometry to shapely for some geoprocessing, but the measure gets removed, as described above.

@dalexander-trc nothing yet, and I wouldn't expect anything for a number of years, as GEOS development seems to move at glacial pace.
If M-dimensions are vital, use osgeo.ogr from GDAL 2.1+ (see GDAL RFC 61):
from osgeo import ogr

g = ogr.CreateGeometryFromWkt("POINT M (1 2 3)")

print(g.ExportToIsoWkt())  # POINT M (1 2 3)
print(g.GetPointZM())  # (1.0, 2.0, 0.0, 3.0)
print(g.GetPoint_2D())  # (1.0, 2.0)
print(g.GetM())  # 3.0
print(g.IsMeasured()) # 4

I wouldn't expect anything for a number of years, as GEOS development seems to move at glacial pace.

Unrelated to the actual issue, but just want to counter-balance this statement a bit ;)
It's not because they didn't fix the WKT parsing issue, that GEOS is moving only slowly. There have been many exciting new features and improvements in the last releases (eg robust overlays with big speed-ups and fixed precision).
(but, it's probably correct to say that there isn't much development around geometries with "M" coordinates, and which is generally not well supported by GEOS)

@mwtoews Thanks! I am using GDAL for a lot of the work already. The problem starts happening when I convert it to a shapely geometry so that I can interpolate some points and substring it. At present, I am comparing the substring (which has had its measure information lost) to the measured original. It's not very elegant, but it's working alright.

This is fixed on GEOS main branch:
>>> from shapely import wkt
>>> g = wkt.loads('POINT M (0 0 5)')
>>> g.wkt
'POINT M (0 0 5)'

(we don't yet have the APIs to access that M value (-> https://github.com/shapely/shapely/issues/1648), but at least the parsing works correctly)


Feature/3 random numbers

Can we add a documentation to explain the contract on a high level?
Seems all fields in the events are indexed. We need to design carefully which fields need to be indexed and which ones not.

Can we add a documentation to explain the contract on a high level?
Seems all fields in the events are indexed. We need to design carefully which fields need to be indexed and which ones not.

Will write a document after PR


Investigate Setup.Init being overriden in Rhino/Revit

It seems that hostApplication and other variables set during Setup.Init get overridden in Revit/Rhino when/if Dynamo/Grasshopper are started.
This means that logs and metrics belonging to a connector get erroneously tracked as another one.
This issue is to investigate if that's really the case and what could be a solution.

For mixpanel we could pass the host app as an argument instead of using the "global" one.

I think the issue currently is not that the Logger "is being overridden" but rather that "you can only have one logger at any given time, whoever initialises the logger first gets it's HostApp set, and the other just rolls with that.
i.e. If you initialise Grasshopper and then initialise Speckle Rhino, all events will be tracked as Grasshopper events.
If you already have streams in the Rhino file, DUI initialises automatically, causing Rhino to be the HostApp.
There are several ways to solve it:

Make the logger non-global. I.e. Each connector will register their own logger during setup. If no logger is set, no logging is done.
Assume all Rhino/Grasshopper events are Rhino events, and just attach some extra context metadata for anything coming from GH
I'd welcome other suggestions too...

Closing this ticket as we are moving to Jira to reduce noise. You can access it there.


Optimiser doesn't realize assignment can be skipped

This code correctly gets correctly unrolled. However there is an obvious optimization step missing. It does not realize when a temporary variable assignment is a constant and move that constant into later instructions instead.
Also, thanks for the great tool. I'm loving working in mindcode. Really appreciated ! ❤
Output subsection:
set __tmp0 SORT_1
set __tmp1 CONV_1
sensor item_type __tmp0 @config
sensor item_count CONTAINER item_type
op lessThan under_limit item_count QTY_LIMIT
control enabled __tmp1 under_limit 0 0 0

Expect
sensor item_type SORT_1 @config
sensor item_count CONTAINER item_type
op lessThan under_limit item_count QTY_LIMIT
control enabled CONV_1 under_limit 0 0 0

Full code:
QTY_LIMIT = 300 // How many to store in the container of each type
CONTAINER = vault1
SORT_1 = sorter1
CONV_1 = conveyor1
SORT_2 = sorter2
CONV_2 = conveyor2
SORT_3 = sorter3
CONV_3 = conveyor3

for n in 1 .. 3
    sort = case n
        when 1
            SORT_1
        when 2
            SORT_2
        when 3
            SORT_3
    end
    conv = case n
        when 1
            CONV_1
        when 2
            CONV_2
        when 3
            CONV_3
    end

    item_type = sort.config
    item_count = CONTAINER.sensor(item_type)
    under_limit = item_count < QTY_LIMIT
    conv.enabled = under_limit
end

Output is
set QTY_LIMIT 300
set CONTAINER vault1
set SORT_1 sorter1
set CONV_1 conveyor1
set SORT_2 sorter2
set CONV_2 conveyor2
set SORT_3 sorter3
set CONV_3 conveyor3
set __tmp0 SORT_1
set __tmp1 CONV_1
sensor item_type __tmp0 @config
sensor item_count CONTAINER item_type
op lessThan under_limit item_count QTY_LIMIT
control enabled __tmp1 under_limit 0 0 0
set __tmp0 SORT_2
set __tmp1 CONV_2
sensor item_type __tmp0 @config
sensor item_count CONTAINER item_type
op lessThan under_limit item_count QTY_LIMIT
control enabled __tmp1 under_limit 0 0 0
set __tmp0 SORT_3
set __tmp1 CONV_3
sensor item_type __tmp0 @config
sensor item_count CONTAINER item_type
op lessThan under_limit item_count QTY_LIMIT
control enabled __tmp1 under_limit 0 0 0
end

I tried adding
#set passes = 10 // Many passes to unroll and tidy this loop.
#set optimization = aggressive

To the start of the code, to no avail

Changing the variable names to lowercase (so not global) did not resolve this issue.

Wonderful! I'll try this workaround. Given your interested reply I'll post my compiler bug now.

A fix is ready. I'll wait with a new release for a while to see whether I'd be able to fix #135 as well.

Nice one! No rush :)

For future reference: the bug is caused by the Data Flow Optimizer processing the implicit else branch of the case statement. This branch is unreachable, but it is still processed by the DFO. This causes the __tmp0 variable to have multiple definitions and therefore makes it non-eligible for elimination. The unreachable code is removed by the respective optimizer, which is run after the Data Flow Optimizer, leaving the _tmp0 variable there.
As a fix, the DFO gets the information about unreachable code. Unreachable AST contexts do not contribute to variable states.

Potentially the DFO should run after you've eliminated all the code you can ... :)
It's hard to sequence these things. I can see why there is benefit to running them all twice.

Potentially the DFO should run after you've eliminated all the code you can ... :)

Unfortunately some of the the optimizations, including the DFO, rely on the structure of the code as generated by the compiler. Removing the unreachable code generally breaks that structure, which is why it has to run as one of the last optimizations steps. :(
(As this is a hobby project, I've cut a lot of corners and did a lot of things in a kind of unorthodox way. If the program size wasn't limited to 1000 instructions, I could run into serious performance issues with the optimizations :D)


Begin the readme with the quick start

I think many people might be discouraged when they see a long document with all the motivation, the about section etc. - putting the instructions to "just start" in the beginning might be a good idea.


rebase: update ceph to reef

Testing Reef and seeing everything works.

/test ci/centos/mini-e2e/k8s-1.27

/test ci/centos/mini-e2e/k8s-1.27

The CI job tries to pull this:
Trying to pull registry-ceph-csi.apps.ocp.cloud.ci.centos.org/ceph/ceph:v18...

The mirror contains this image:
going to copy docker://quay.io/ceph/ceph:v18 to docker://registry-ceph-csi.apps.ocp.cloud.ci.centos.org/quay.io/ceph/ceph:v18
Getting image source signatures
Copying blob sha256:66286c37fba202f94836d18ed3ea1efa02816e6db632ec78297328694bed0b94
Copying blob sha256:a20960ea1b02448618d7cdee5e657e6b83404689ca4ce4555251aeada11b5a7a
Copying config sha256:ff9c8d7de4ca37ca64a34818fa8d6e7b4e6be435e4f8f54ed2e00827f8fa3d31
Writing manifest to image destination
Storing signatures

The mirror contains quay.io in the image name, but it seems to have been stripped by the CI job.
PR #4031 should probably not include the quay.io/ part in the 2nd column with "short names".

#4032 has been created, the mirroring runs nightly, so after merging the PR, a new /test ... can be done to see if the Ceph Reef image can be used in the CI job.

/test ci/centos/mini-e2e/k8s-1.27

/test ci/centos/mini-e2e/k8s-1.27

  Aug  7 07:49:45.556: INFO: ExecWithOptions: execute(POST https://<IP_ADDRESS>:8443/api/v1/namespaces/rook-ceph/pods/rook-ceph-tools-757999d6c7-c4v5d/exec?command=%2Fbin%2Fsh&command=-c&command=ceph+osd+pool+create+.nfs+128&container=rook-ceph-tools&container=rook-ceph-tools&stderr=true&stdout=true)

  Aug  7 07:49:46.063: INFO: stdErr occurred: pool names beginning with . are not allowed

  Aug  7 07:49:46.068: INFO: ExecWithOptions {Command:[/bin/sh -c ceph osd pool set .nfs size 1 --yes-i-really-mean-it] Namespace:rook-ceph PodName:rook-ceph-tools-757999d6c7-c4v5d ContainerName:rook-ceph-tools Stdin:<nil> CaptureStdout:true CaptureStderr:true PreserveWhitespace:true Quiet:false}

  Aug  7 07:49:46.068: INFO: >>> kubeConfig: /root/.kube/config

  Aug  7 07:49:46.068: INFO: ExecWithOptions: Clientset creation

  Aug  7 07:49:46.068: INFO: ExecWithOptions: execute(POST https://<IP_ADDRESS>:8443/api/v1/namespaces/rook-ceph/pods/rook-ceph-tools-757999d6c7-c4v5d/exec?command=%2Fbin%2Fsh&command=-c&command=ceph+osd+pool+set+.nfs+size+1+--yes-i-really-mean-it&container=rook-ceph-tools&container=rook-ceph-tools&stderr=true&stdout=true)

  Aug  7 07:49:46.572: INFO: failed to execute command: command terminated with exit code 2

  Aug  7 07:49:46.572: INFO: stdErr occurred: Error ENOENT: unrecognized pool '.nfs'

@nixpanic NFS pool creation failing, anything changed in Ceph Reef version?

https://docs.ceph.com/en/reef/rados/operations/pools/#pool-names mentions its reserved and we should not use it

/test ci/centos/mini-e2e/k8s-1.27

@nixpanic NFS pool creation failing, anything changed in Ceph Reef version?

It seems like Reef has some changes with respect to pool creation... Rook usually creates the .nfs pool, I think. But it requires redundancy. I do not know how Rook creates the .nfs pool in Reef, maybe we need to pass an extra option to the ceph osd command?

@nixpanic NFS pool creation failing, anything changed in Ceph Reef version?

It seems like Reef has some changes with respect to pool creation... Rook usually creates the .nfs pool, I think. But it requires redundancy. I do not know how Rook creates the .nfs pool in Reef, maybe we need to pass an extra option to the ceph osd command?
https://github.com/rook/rook/blob/7aaf46e11243b21df4d4f088fc80b949019559b0/pkg/operator/ceph/nfs/nfs.go#L319

@nixpanic Yes you are correct we were missing extra flag to create pool in cephcsi e2e, added missing flag now.

/test ci/centos/mini-e2e/k8s-1.27

#7 45.98   Running scriptlet: nfs-ganesha-5.5-1.el8s.x86_64                        11/12
#7 45.99 error: nfs-ganesha-selinux-5.4-1.el8s.noarch: erase skipped
#7 45.99 /var/tmp/rpm-tmp.FjPzqW: line 2: /etc/selinux/config: No such file or directory
#7 45.99 warning: %posttrans(nfs-ganesha-5.5-1.el8s.x86_64) scriptlet failed, exit status 1
#7 45.99
#7 45.99 Error in POSTTRANS scriptlet in rpm package nfs-ganesha
#7 45.99   Running scriptlet: nfs-ganesha-5.4-1.el8s.x86_64                        11/12
#7 46.11   Verifying        : nfs-ganesha-5.5-1.el8s.x86_64                         1/12
#7 46.11   Verifying        : nfs-ganesha-5.4-1.el8s.x86_64                         2/12
#7 46.11   Verifying        : nfs-ganesha-ceph-5.5-1.el8s.x86_64                    3/12
#7 46.11   Verifying        : nfs-ganesha-ceph-5.4-1.el8s.x86_64                    4/12
#7 46.11   Verifying        : nfs-ganesha-rados-grace-5.5-1.el8s.x86_64             5/12
#7 46.11   Verifying        : nfs-ganesha-rados-grace-5.4-1.el8s.x86_64             6/12
#7 46.11   Verifying        : nfs-ganesha-rados-urls-5.5-1.el8s.x86_64              7/12
#7 46.11   Verifying        : nfs-ganesha-rados-urls-5.4-1.el8s.x86_64              8/12
#7 46.11   Verifying        : nfs-ganesha-rgw-5.5-1.el8s.x86_64                     9/12
#7 46.11   Verifying        : nfs-ganesha-rgw-5.4-1.el8s.x86_64                    10/12
#7 46.11   Verifying        : nfs-ganesha-selinux-5.5-1.el8s.noarch                11/12
#7 46.11   Verifying        : nfs-ganesha-selinux-5.4-1.el8s.noarch                12/12Error: Transaction failed
#7 46.51
#7 46.51
#7 46.51 Upgraded:
#7 46.51   nfs-ganesha-5.5-1.el8s.x86_64
#7 46.51   nfs-ganesha-ceph-5.5-1.el8s.x86_64
#7 46.51   nfs-ganesha-rados-grace-5.5-1.el8s.x86_64
#7 46.51   nfs-ganesha-rados-urls-5.5-1.el8s.x86_64
#7 46.51   nfs-ganesha-rgw-5.5-1.el8s.x86_64
#7 46.51 Failed:
#7 46.51   nfs-ganesha-selinux-5.4-1.el8s.noarch  nfs-ganesha-selinux-5.5-1.el8s.noarch
#7 46.51
#7 ERROR: process "/bin/sh -c dnf -y update        && dnf clean all        && rm -rf /var/cache/yum" did not complete successfully: exit code: 1
------
 > [updated_base 3/3] RUN dnf -y update        && dnf clean all        && rm -rf /var/cache/yum:
46.51
46.51 Upgraded:
46.51   nfs-ganesha-5.5-1.el8s.x86_64
46.51   nfs-ganesha-ceph-5.5-1.el8s.x86_64
46.51   nfs-ganesha-rados-grace-5.5-1.el8s.x86_64
46.51   nfs-ganesha-rados-urls-5.5-1.el8s.x86_64
46.51   nfs-ganesha-rgw-5.5-1.el8s.x86_64
46.51 Failed:
46.51   nfs-ganesha-selinux-5.4-1.el8s.noarch  nfs-ganesha-selinux-5.5-1.el8s.noarch
46.51

it looks like ceph v18 image is broken today and not able to build cephcsi image like yesterday 🤕

/test ci/centos/mini-e2e/k8s-1.27

/test ci/centos/mini-e2e/k8s-1.27

Looks good, but please fix the typos in the commit messages 🔍

Thanks @nixpanic done. PTAL

@mergifyio queue

/test ci/centos/k8s-e2e-external-storage/1.25

/test ci/centos/mini-e2e/k8s-1.25

/test ci/centos/mini-e2e-helm/k8s-1.25

/test ci/centos/mini-e2e/k8s-1.28

/test ci/centos/mini-e2e-helm/k8s-1.28

@mergifyio queue

Both CI jobs failed with:
  [FAILED] failed to resize filesystem PVC: context deadline exceeded
  In [It] at: /go/src/github.com/ceph/ceph-csi/e2e/rbd.go:852 @ 08/23/23 08:11:07.519

This isn't a test that I have seen sporadically fail, so it may point to a change related to the Ceph version.

CI passed on 1.25,1.26. and 1.27 not sure is it something to do with ceph version, let me check on that one

Other PRs seem to fail in the same way with RBD resizing on Kubernetes 1.28. It is not only this PR :cry:

@mergifyio rebase

/test ci/centos/mini-e2e-helm/k8s-1.25

/test ci/centos/k8s-e2e-external-storage/1.25


Does this include a download of Laravel?

Does this include a download of Laravel or do I have to do that afterwards?

No this is 100% framework agnostic.
--
Bruno Skvorc
PHP editor, SitePoint.com
Devangelist, Diffbot.com
Twitter: @bitfalls
G+: google.com/+BrunoSkvorc
On Mon, Feb 8, 2016, at 11:41, Ollie-w wrote:

Does this include a download of Laravel or do I have to do that
afterwards?

Reply to this email directly or view it on GitHub:
https://github.com/Swader/homestead_improved/issues/7


Hosted Azure DevOps Agents maintenance started failing with 2.161.1 with Value cannot be null. error on parameter name: extension

Have you tried troubleshooting?
I Ctrl+F'ed the troubleshooting stuff to see if I could find anything with respect to maintenance and did not find anything.
Agent Version and Platform
2.161.1
Azure DevOps Type and Version
https://dev.azure.com/DenverHealth-EpicCogito
What's not working?
Hosted Agent Maintenance in our default pool failed:

All of them threw this error
##[section]Starting: Maintenance
2019-12-05T11:00:41.5519125Z ##[error]Value cannot be null.
Parameter name: extension
2019-12-05T11:00:41.5536476Z ##[section]Finishing: Maintenance`

Agent and Worker's Diagnostic Logs
Maintenance log downloaded from dev.azure.com:
2019-12-05T11:00:41.0219919Z ##[section]Starting: Maintenance
2019-12-05T11:00:41.2536005Z ##[section]Starting: Initialize job
2019-12-05T11:00:41.2536279Z Agent name: 'AzureDevops.Default.x64.MachineName.05'
2019-12-05T11:00:41.2536370Z Agent machine name: 'MachineName'
2019-12-05T11:00:41.2536415Z Current agent version: '2.161.1'
2019-12-05T11:00:41.2549261Z Agent running as: 'serviceAccountName'
2019-12-05T11:00:41.2598358Z Download all required tasks.
2019-12-05T11:00:41.2711995Z Start tracking orphan processes.
2019-12-05T11:00:41.2765377Z ##[section]Finishing: Initialize job
2019-12-05T11:00:41.3226556Z ##[section]Starting: Maintenance
2019-12-05T11:00:41.5519125Z ##[error]Value cannot be null.
Parameter name: extension
2019-12-05T11:00:41.5536476Z ##[section]Finishing: Maintenance
2019-12-05T11:00:41.5618782Z ##[section]Starting: Finalize Job
2019-12-05T11:00:41.5662029Z Start cleaning up orphan processes.
2019-12-05T11:00:41.5676931Z ##[section]Finishing: Finalize Job
2019-12-05T11:00:41.5736105Z ##[section]Finishing: Maintenance

Worker log obtained from VM (exception appears on line 267):
[2019-12-05 11:00:39Z INFO Program] Version: 2.161.1
[2019-12-05 11:00:39Z INFO Program] Commit: fb6be36621208f01256b18a42efce58342298802
[2019-12-05 11:00:39Z INFO Program] Culture: en-US
[2019-12-05 11:00:39Z INFO Program] UI Culture: en-US
[2019-12-05 11:00:39Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:39Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:39Z INFO HostContext] Well known config file 'Proxy': 'C:\Source\AzureDevops.Default.x64.MachineName.05\.proxy'
[2019-12-05 11:00:39Z INFO VstsAgentWebProxy] No proxy setting found.
[2019-12-05 11:00:39Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:39Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:39Z INFO HostContext] Well known config file 'Certificates': 'C:\Source\AzureDevops.Default.x64.MachineName.05\.certificates'
[2019-12-05 11:00:39Z INFO AgentCertificateManager] No certificate setting found.
[2019-12-05 11:00:39Z INFO Worker] Waiting to receive the job message from the channel.
[2019-12-05 11:00:39Z INFO Worker] Message received.
[2019-12-05 11:00:40Z INFO Worker] Job message:
 {
  "mask": [
    {
      "type": "regex",
      "value": "***"
    },
    {
      "type": "regex",
      "value": "***"
    }
  ],
  "steps": [],
  "variables": {
    "maintenance.deleteworkingdirectory.daysthreshold": {
      "value": "30"
    },
    "maintenance.jobtimeoutinminutes": {
      "value": "60"
    },
    "system": {
      "value": "poolmaintenance"
    },
    "system.hosttype": {
      "value": "poolmaintenance"
    },
    "system.collectionId": {
      "value": "351719c0-6acf-407c-9d9a-dbf3d5374438"
    },
    "system.servertype": {
      "value": "Hosted"
    },
    "system.culture": {
      "value": "en-US"
    },
    "system.teamFoundationCollectionUri": {
      "value": "https://dev.azure.com/DenverHealth-EpicCogito/"
    },
    "system.taskDefinitionsUri": {
      "value": "https://dev.azure.com/DenverHealth-EpicCogito/"
    },
    "System.TargetAgent": {
      "value": "53"
    },
    "system.planId": {
      "value": "6b0c5c09-b229-4c5e-b902-b1b35b827ddf"
    },
    "system.jobId": {
      "value": "14295028-3d12-480d-a47c-417d533f6141"
    },
    "system.timelineId": {
      "value": "6b0c5c09-b229-4c5e-b902-b1b35b827ddf"
    },
    "agent.retainDefaultEncoding": {
      "value": "false"
    },
    "agent.disablelogplugin.TestResultLogPlugin": {
      "value": "true"
    },
    "agent.disablelogplugin.TestFilePublisherPlugin": {
      "value": "true"
    }
  },
  "messageType": "PipelineAgentJobRequest",
  "plan": {
    "scopeIdentifier": "00000000-0000-0000-0000-000000000000",
    "planType": "PoolMaintenance",
    "version": 12,
    "planId": "6b0c5c09-b229-4c5e-b902-b1b35b827ddf",
    "planGroup": "6b0c5c09-b229-4c5e-b902-b1b35b827ddf",
    "artifactUri": "vstfs:///DistributedTask/PoolMaintenance/1%2f91",
    "artifactLocation": null,
    "definition": {
      "_links": {
        "self": {
          "href": "https://dev.azure.com/DenverHealth-EpicCogito/_apis/distributedtask/pools/1"
        },
        "web": {
          "href": "https://dev.azure.com/DenverHealth-EpicCogito/_admin/_AgentPool?poolId=1&_a=poolsettings"
        }
      },
      "id": 1,
      "name": "PoolMaintenance"
    },
    "owner": {
      "_links": {
        "self": {
          "href": "https://dev.azure.com/DenverHealth-EpicCogito/_apis/distributedtask/pools/1/maintenancejobs/91"
        },
        "web": {
          "href": "https://dev.azure.com/DenverHealth-EpicCogito/_admin/_AgentPool?poolId=1&_a=maintenance"
        }
      },
      "id": 91,
      "name": "Requested by Microsoft.VisualStudio.Services.TFS"
    }
  },
  "timeline": {
    "id": "6b0c5c09-b229-4c5e-b902-b1b35b827ddf",
    "changeId": 6,
    "location": null
  },
  "jobId": "14295028-3d12-480d-a47c-417d533f6141",
  "jobDisplayName": "Maintenance",
  "jobName": "Maintenance",
  "jobContainer": null,
  "requestId": 0,
  "lockedUntil": "0001-01-01T00:00:00",
  "resources": {
    "endpoints": [
      {
        "data": {
          "ServerId": "351719c0-6acf-407c-9d9a-dbf3d5374438",
          "ServerName": "DenverHealth-EpicCogito"
        },
        "name": "SystemVssConnection",
        "url": "https://dev.azure.com/DenverHealth-EpicCogito/",
        "authorization": {
          "parameters": {
            "AccessToken": ***
          },
          "scheme": "OAuth"
        },
        "isShared": false,
        "isReady": false
      }
    ]
  },
  "workspace": {}
}
[2019-12-05 11:00:40Z INFO JobRunner] Job ID 14295028-3d12-480d-a47c-417d533f6141
[2019-12-05 11:00:40Z INFO JobRunner] Creating job server with URL: https://dev.azure.com/DenverHealth-EpicCogito/
[2019-12-05 11:00:40Z INFO VisualStudioServices] Starting operation Location.GetConnectionData
[2019-12-05 11:00:40Z INFO Worker] Listening for cancel message from the channel.
[2019-12-05 11:00:40Z INFO Worker] Waiting for the job to complete or for a cancel message from the channel.
[2019-12-05 11:00:40Z INFO VisualStudioServices] Finished operation Location.GetConnectionData
[2019-12-05 11:00:40Z INFO JobServerQueue] Start process web console line queue.
[2019-12-05 11:00:40Z INFO JobServerQueue] Start process file upload queue.
[2019-12-05 11:00:40Z INFO JobServerQueue] Start process timeline update queue.
[2019-12-05 11:00:40Z INFO ConfigurationStore] currentAssemblyLocation: C:\Source\AzureDevops.Default.x64.MachineName.05\bin\Agent.Worker.dll
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:40Z INFO ConfigurationStore] binPath: C:\Source\AzureDevops.Default.x64.MachineName.05\bin
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:40Z INFO ConfigurationStore] RootFolder: C:\Source\AzureDevops.Default.x64.MachineName.05
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:40Z INFO HostContext] Well known config file 'Agent': 'C:\Source\AzureDevops.Default.x64.MachineName.05\.agent'
[2019-12-05 11:00:40Z INFO ConfigurationStore] ConfigFilePath: C:\Source\AzureDevops.Default.x64.MachineName.05\.agent
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:40Z INFO HostContext] Well known config file 'Credentials': 'C:\Source\AzureDevops.Default.x64.MachineName.05\.credentials'
[2019-12-05 11:00:40Z INFO ConfigurationStore] CredFilePath: C:\Source\AzureDevops.Default.x64.MachineName.05\.credentials
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:40Z INFO HostContext] Well known config file 'Service': 'C:\Source\AzureDevops.Default.x64.MachineName.05\.service'
[2019-12-05 11:00:40Z INFO ConfigurationStore] ServiceConfigFilePath: C:\Source\AzureDevops.Default.x64.MachineName.05\.service
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:40Z INFO HostContext] Well known config file 'Autologon': 'C:\Source\AzureDevops.Default.x64.MachineName.05\.autologon'
[2019-12-05 11:00:40Z INFO ConfigurationStore] AutoLogonSettingsFilePath: C:\Source\AzureDevops.Default.x64.MachineName.05\.autologon
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:40Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:40Z INFO HostContext] Well known config file 'Options': 'C:\Source\AzureDevops.Default.x64.MachineName.05\.options'
[2019-12-05 11:00:40Z INFO ConfigurationStore] RuntimeOptionsFilePath: C:\Source\AzureDevops.Default.x64.MachineName.05\.options
[2019-12-05 11:00:41Z INFO ConfigurationStore] Read setting file: 189 chars
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Diag': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_diag'
[2019-12-05 11:00:41Z INFO JobRunner] Starting the job execution context.
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Work': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_work'
[2019-12-05 11:00:41Z INFO JobRunner] Validating directory permissions for: 'C:\Source\AzureDevops.Default.x64.MachineName.05\_work'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Work': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_work'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Externals': 'C:\Source\AzureDevops.Default.x64.MachineName.05\externals'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'ServerOM': 'C:\Source\AzureDevops.Default.x64.MachineName.05\externals\vstsom'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Work': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_work'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Work': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_work'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Work': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_work'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Tools': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_work\_tool'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Work': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_work'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Temp': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_work\_temp'
[2019-12-05 11:00:41Z INFO JobRunner] Creating task server with https://dev.azure.com/DenverHealth-EpicCogito/
[2019-12-05 11:00:41Z INFO VisualStudioServices] Starting operation Location.GetConnectionData
[2019-12-05 11:00:41Z INFO VisualStudioServices] Finished operation Location.GetConnectionData
[2019-12-05 11:00:41Z INFO JobRunner] Getting job extension.
[2019-12-05 11:00:41Z INFO ExtensionManager] Getting extensions for interface: 'Microsoft.VisualStudio.Services.Agent.Worker.IJobExtension'
[2019-12-05 11:00:41Z INFO ExtensionManager] Creating instance: Microsoft.VisualStudio.Services.Agent.Worker.Build.BuildJobExtension, Agent.Worker
[2019-12-05 11:00:41Z INFO ExtensionManager] Creating instance: Microsoft.VisualStudio.Services.Agent.Worker.Release.ReleaseJobExtension, Agent.Worker
[2019-12-05 11:00:41Z INFO ExtensionManager] Creating instance: Microsoft.VisualStudio.Services.Agent.Worker.Release.DeploymentJobExtension, Agent.Worker
[2019-12-05 11:00:41Z INFO ExtensionManager] Creating instance: Microsoft.VisualStudio.Services.Agent.Worker.Maintenance.MaintenanceJobExtension, Agent.Worker
[2019-12-05 11:00:41Z INFO JobRunner] Initialize job. Getting all job steps.
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Diag': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_diag'
[2019-12-05 11:00:41Z INFO MaintenanceJobExtension] Run initial step from extension MaintenanceJobExtension.
[2019-12-05 11:00:41Z INFO MaintenanceJobExtension] Downloading task definitions.
[2019-12-05 11:00:41Z INFO MaintenanceJobExtension] Parsing all task's condition inputs.
[2019-12-05 11:00:41Z INFO MaintenanceJobExtension] Adding pre-job step from extension.
[2019-12-05 11:00:41Z INFO MaintenanceJobExtension] Adding post-job step from extension.
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Diag': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_diag'
[2019-12-05 11:00:41Z INFO MaintenanceJobExtension] Adding post-job steps from tasks.
[2019-12-05 11:00:41Z INFO MaintenanceJobExtension] Total accessible running process: 88.
[2019-12-05 11:00:41Z INFO JobRunner] Total job steps: 1.
[2019-12-05 11:00:41Z INFO JobRunner] Run all job steps.
[2019-12-05 11:00:41Z INFO StepsRunner] Processing step: DisplayName='Maintenance', ContinueOnError=False, Enabled=True
[2019-12-05 11:00:41Z INFO ExpressionManager] Evaluating: SucceededNode()
[2019-12-05 11:00:41Z INFO ExpressionManager] Result: True
[2019-12-05 11:00:41Z INFO JobServerQueue] Try to append 1 batches web console lines for record '14295028-3d12-480d-a47c-417d533f6141', success rate: 1/1.
[2019-12-05 11:00:41Z INFO StepsRunner] Starting the step.
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Work': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_work'
[2019-12-05 11:00:41Z INFO StepsRunner] Which: 'chcp'
[2019-12-05 11:00:41Z INFO StepsRunner] Location: 'C:\Windows\system32\chcp.COM'
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper] Starting process:
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper]   File name: 'C:\Windows\system32\chcp.COM'
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper]   Arguments: '65001'
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper]   Working directory: 'C:\Source\AzureDevops.Default.x64.MachineName.05\_work'
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper]   Require exit code zero: 'False'
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper]   Encoding web name:  ; code page: ''
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper]   Force kill process on cancellation: 'False'
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper]   Redirected STDIN: 'False'
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper]   Persist current code page: 'True'
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper]   Keep redirected STDIN open: 'False'
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper]   High priority process: 'False'
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper] OOM score adjustment is Linux-only.
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper] Process started with process id 8020, waiting for process exit.
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper] Exited process 8020 with exit code 0
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper] STDOUT/STDERR stream read finished.
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper] STDOUT/STDERR stream read finished.
[2019-12-05 11:00:41Z INFO ProcessInvokerWrapper] Finished process 8020 with exit code 0, and elapsed time 00:00:00.0224282.
[2019-12-05 11:00:41Z INFO StepsRunner] Successfully returned to code page 65001 (UTF8)
[2019-12-05 11:00:41Z INFO ExtensionManager] Getting extensions for interface: 'Microsoft.VisualStudio.Services.Agent.Worker.Maintenance.IMaintenanceServiceProvider'
[2019-12-05 11:00:41Z INFO ExtensionManager] Creating instance: Microsoft.VisualStudio.Services.Agent.Worker.Build.BuildDirectoryManager, Agent.Worker
[2019-12-05 11:00:41Z ERR  StepsRunner] Caught exception from step: System.ArgumentNullException: Value cannot be null.
Parameter name: extension
   at Microsoft.VisualStudio.Services.Agent.ExtensionManager.Add[T](List`1 extensions, String assemblyQualifiedName)
   at Microsoft.VisualStudio.Services.Agent.ExtensionManager.LoadExtensions[T]()
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.VisualStudio.Services.Agent.ExtensionManager.GetExtensions[T]()
   at Microsoft.VisualStudio.Services.Agent.Worker.Maintenance.MaintenanceJobExtension.MaintainAsync(IExecutionContext executionContext, Object data)
   at Microsoft.VisualStudio.Services.Agent.Worker.JobExtensionRunner.RunAsync()
   at Microsoft.VisualStudio.Services.Agent.Worker.StepsRunner.RunStepAsync(IStep step, CancellationToken jobCancellationToken)
[2019-12-05 11:00:41Z INFO StepsRunner] Step result: Failed
[2019-12-05 11:00:41Z INFO StepsRunner] Update job result with current step result 'Failed'.
[2019-12-05 11:00:41Z INFO StepsRunner] Current state: job state = 'Failed'
[2019-12-05 11:00:41Z INFO JobRunner] Finalize job.
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Bin': 'C:\Source\AzureDevops.Default.x64.MachineName.05\bin'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Root': 'C:\Source\AzureDevops.Default.x64.MachineName.05'
[2019-12-05 11:00:41Z INFO HostContext] Well known directory 'Diag': 'C:\Source\AzureDevops.Default.x64.MachineName.05\_diag'
[2019-12-05 11:00:41Z INFO MaintenanceJobExtension] Total accessible running process: 88.
[2019-12-05 11:00:41Z INFO JobRunner] Job result after all job steps finish: Failed
[2019-12-05 11:00:41Z INFO JobRunner] Completing the job execution context.
[2019-12-05 11:00:41Z INFO JobRunner] Shutting down the job server queue.
[2019-12-05 11:00:41Z INFO JobServerQueue] Fire signal to shutdown all queues.
[2019-12-05 11:00:42Z INFO JobServerQueue] All queue process task stopped.
[2019-12-05 11:00:42Z INFO JobServerQueue] Try to append 1 batches web console lines for record '1c044240-d277-4a11-a219-ec79746c7b2e', success rate: 1/1.
[2019-12-05 11:00:42Z INFO JobServerQueue] Try to append 1 batches web console lines for record '66282d7f-b449-4f37-9bd0-966748dddc16', success rate: 1/1.
[2019-12-05 11:00:42Z INFO JobServerQueue] Try to append 1 batches web console lines for record '41b94241-687c-4b1d-bd13-ded0bdb37e25', success rate: 1/1.
[2019-12-05 11:00:42Z INFO JobServerQueue] Try to append 1 batches web console lines for record '14295028-3d12-480d-a47c-417d533f6141', success rate: 1/1.
[2019-12-05 11:00:42Z INFO JobServerQueue] Web console line queue drained.
[2019-12-05 11:00:42Z INFO JobServerQueue] Uploading 4 files in one shot.
[2019-12-05 11:00:42Z INFO JobServerQueue] Try to upload 4 log files or attachments, success rate: 4/4.
[2019-12-05 11:00:42Z INFO JobServerQueue] File upload queue drained.
[2019-12-05 11:00:42Z INFO JobServerQueue] Timeline update queue drained.
[2019-12-05 11:00:42Z INFO JobServerQueue] All queue process tasks have been stopped, and all queues are drained.
[2019-12-05 11:00:42Z INFO TempDirectoryManager] Cleaning agent temp folder: C:\Source\AzureDevops.Default.x64.MachineName.05\_work\_temp
[2019-12-05 11:00:42Z INFO JobRunner] Raising job completed event.
[2019-12-05 11:00:42Z INFO Worker] Job completed.

Microsoft folk, if you need to review our DevOps organization to figure this out, you have my permission (I am the admin of the organization) to do so.
We identified this issue because one of our VMs started running out of disk space and in the root cause analysis we identified this issue as contributing to the problem.

Assigning to @jpricket since this is related some refactoring done for multi-repo

Same error happens in combination with TFS 2017 (15.117.27024.0):
2019-12-11T03:00:34.6699533Z ##[section]Starting: Maintenance
2019-12-11T03:00:35.0462633Z ##[section]Starting: Initialize job
2019-12-11T03:00:35.0462915Z Agent name: 'XXXX'
2019-12-11T03:00:35.0463002Z Agent machine name: 'XXXX'
2019-12-11T03:00:35.0463052Z Current agent version: '2.162.0'
2019-12-11T03:00:35.0516387Z Agent running as: 'xxxx'
2019-12-11T03:00:35.0560870Z Download all required tasks.
2019-12-11T03:00:35.1588336Z Plugin: 'Test Result Parser plugin' is running in background.
2019-12-11T03:00:35.1588416Z Plugin: 'Test File Publisher plugin' is running in background.
2019-12-11T03:00:35.1588569Z Start tracking orphan processes.
2019-12-11T03:00:35.1643771Z ##[section]Finishing: Initialize job
2019-12-11T03:00:35.2200318Z ##[section]Starting: Maintenance
2019-12-11T03:00:35.6195332Z ##[error]Value cannot be null.
Parameter name: extension
2019-12-11T03:00:35.6213432Z ##[section]Finishing: Maintenance
2019-12-11T03:00:35.6363376Z ##[section]Starting: Finalize Job
2019-12-11T03:00:36.6925203Z Start cleaning up orphan processes.
2019-12-11T03:00:36.6936533Z ##[section]Finishing: Finalize Job
2019-12-11T03:00:36.7058985Z ##[section]Finishing: Maintenance
Cheers,
Frank

@frkmlr - Thank you for confirming. We have triaged and know where the problem is and are working on getting a fix out ASAP.


Some issues + possible fixes...

Hello,
First of all, thanks for this amazing code. I just want to mention a few issues I saw while working with this package. I am using Windows, so some of the issues might be because of it. (I believe the code is implemented for MAC)

The code is a bit old, so if you encounter the error "This browser or app may not be secure" in the first login process, just try an older version of FireFox (I made it work with version 77).

It misses a third click on the next button in the uploading process. Otherwise it will stuck at Checks dialogue and does not complete the uploading process. Just add another click on the next button in init.py file line 139:

self.browser.find(By.ID, Constant.NEXT_BUTTON).click()
self.logger.debug('Clicked another another {}'.format(Constant.NEXT_BUTTON))

(There is already a commit that fixes this issue + updates in the constant variables)

@linouk23 recently fixed an issue in filling the description field process, but I believe they forgot to add a __write_in_the_field in the process. In my tests, the description was not filled without it. (Also, I added a line of code to replace \n character with the button Enter to make a new line in description) the same init.py file line 106:

video_description = self.metadata_dict[Constant.VIDEO_DESCRIPTION]
video_description = video_description.replace("\n", Keys.ENTER);
if video_description:
	description_field = self.browser.find_all(By.ID, Constant.TEXTBOX)[1]
	self.__write_in_field(description_field, video_description, select_all=True)
	self.logger.debug('Set the description.')

This one is only an issue for the Windows users. The __write_in_the_field function has an select_all feature to delete the existing inputs in the field, but it only works on MAC. Because it uses "command+a" instead of "control+a". It could be a feature maybe? (same file, line 77)

field.send_keys(Keys.CONTROL + 'a')

Also, here is a sample of the json file if you want to add tags and do not want to go through the code on how to do it : )

{
    "title": "Test Title",
    "description": "Test Description.",
    "tags": ["test1", "test2", "test3"]
}

I believe these are the changes I made to make this work for me. Again, Thanks a lot to @linouk23 for making the code public.

Point 1. helped me a lot. I'll add one thing for other people. Don't bother turning off auto update in mozilla 77. Just delete updater in mozilla installation folder. (last post by rado84 https://support.mozilla.org/en-US/questions/1233924)

You shouldn't have to downgrade to an older version of Firefox to be able to use the app. I think that @linouk23 should take a look at it and implement the new geckodriver, because I am pretty sure that using such an old geckodriver may be causing the issue, Falling back to using old versions of a package/app is never a "solution" or a "fix". That should be just a temporary workaround.

Secure Connection Failed
@linouk23 @AlaFalaki  what can this caused by ?
firefox 77 with latest driver version


Introduce holiday snapshots

Proposed change

A holiday snapshot is just a json file containing a list of all possible holidays for an entity. This allows to see any changes in a big picture of supported holidays landscape. This resolves a need of some sort of a verification tool I experienced while I was working on https://github.com/vacanza/python-holidays/issues/1445 code refactoring.
The PR summary:

Add snapshot generator.
Fix category holidays non-deterministic handling issue.
Add supported countries snapshots for 1950-2050 years.

A couple of weird cases have been uncovered using the snapshots. I believe they were initially related to non-deterministic holidays category handling in combination with multiple holidays passing on a single date, e.g. Makha Bucha + National Artist Day in 2040 for Thailand, Christmas Eve + Washington's Birthday in 1971 for GA, USA. I'll file a separate issue if those are still a problem after https://github.com/vacanza/python-holidays/issues/1445 related refactoring.
Type of change

[ ] New country/market holidays support (thank you!)
[ ] Supported country/market holidays update (calendar discrepancy fix, localization)
[x] Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
[ ] Dependency update (version deprecation/upgrade)
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] Breaking change (a code change causing existing functionality to break)
[ ] New feature (new python-holidays functionality in general)

Checklist

[x] I've followed the contributing guidelines
[x] I've added references to all holidays information sources used in this PR
[x] This PR is filed against beta branch of the repository
[x] This PR doesn't contain any merge conflicts and has clean commit history
[x] The code style looks good: make pre-commit command generates no changes
[x] All tests pass locally: make test, make tox (we strongly encourage adding tests to your code)
[x] The related documentation has been added/updated (check off the box for free if no updates is required)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
9221

Relevant Lines:
9221

💛  - Coveralls


Uncaught TypeError: data.contentDetails (or data.items) is undefined : maybe script is too old

when clicking get user details

parsing error regarding  channelID variable

same when Get Playlists is clicked get parser got in trouble when i stumble across data.items

First of all I appreciate the time you spent filing this report, with screenshots and all.
However, the code is 5 years old and the YouTube API has likely changed. I'm going to archive this repository unless there's a compelling reason to fix these issues.

First of all I appreciate the time you spent filing this report, with screenshots and all.
However, the code is 5 years old and the YouTube API has likely changed. I'm going to archive this repository unless there's a compelling reason to fix these issues.


Erase JMonet

Hi Matt!
I'm developing a javafx application which contains a jmonet canvas. The application has several fxml pages and controllers.
The jMonetCanvas is contained in a javafx controller. When I call this controller, it creates a static jMonetCanvas. But I have a problem:
If I go to another controller, the jMonet object continues staying on memory. I'm trying to delete the jMonetObject, calling the dispose method, setting to null the jMonetObject, but it continues in memory with its bufferedImages, listeners,...
What can I do to erase this object completely?  I want to erase completely this object when I go to another controller, and I want to create a new jMonet object when I go to its controller.
Thanks.

Hi @Javier-Pazos ,
I think have this working now. I've published a new version (0.4.1) that address this.
There were two issues:

I was missing a .dispose() method on the JFXPaintCanvasNode object.
JavaFX is a little weird about cleaning things up. Simply removing the canvas from its parent Pane keeps a reference to the canvas (or at least, perhaps, the rendered image that was last painted to the screen). Seems that the parent must be garbage collected before all memory will be released.

See this example:
public class NewJFXTester extends Application {

    JFXPaintCanvasNode myCanvasNode;
    Pane pane = new Pane();

    public static long memoryInUseMb() {
        return (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1024 / 1024;
    }

    @Override
    public void start(Stage stage) throws InterruptedException {

        System.out.println("Initial memory in use: " + memoryInUseMb());

        // Create a pane for it
        myCanvasNode = new JFXPaintCanvasNode(new JMonetCanvas(new Dimension(5000, 5000)));
        pane.getChildren().add(myCanvasNode);
        Scene scene = new Scene(pane, 640, 480);
        stage.setScene(scene);
        stage.show();

        System.out.println("Memory in use after creating very large canvas: " + memoryInUseMb());

        Platform.runLater(() -> {

            // Dispose the canvas...
            myCanvasNode.dispose();
            myCanvasNode = null;

            // ... and remove it from the scene, and eliminate any reference to the parent Pane
            stage.setScene(new Scene(new Pane()));
            pane = null;
        });

        // May take a few GC cycles before everything is clean...
        Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                System.gc();
                System.runFinalization();
                System.out.println("Memory in use: " + memoryInUseMb());
            }
        }, 1, 1, TimeUnit.SECONDS);
    }
}

This should produce output similar to:
Initial memory in use: 21
Memory in use after creating very large canvas: 426
Memory in use: 296
Memory in use: 292
Memory in use: 4

Thank you very much, Matt.
El dom., 9 ago. 2020 a las 1:14, Matt DeFano<EMAIL_ADDRESS>escribió:

Hi @Javier-Pazos https://github.com/Javier-Pazos ,
I think have this working now. I've published a new version (0.4.1) that
address this.
There were two issues:

I was missing a .dispose() method on the JFXPaintCanvasNode object.
JavaFX is a little weird about cleaning things up. Simply removing
the canvas from its parent Pane keeps a reference to the canvas (or at
least, perhaps, the rendered image that was last painted to the screen).
Seems that the parent must be garbage collected before all memory will be
released.

See this example:
public class NewJFXTester extends Application {
JFXPaintCanvasNode myCanvasNode;
Pane pane = new Pane();

public static long memoryInUseMb() {
    return (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1024 / 1024;
}

@Override
public void start(Stage stage) throws InterruptedException {

    System.out.println("Initial memory in use: " + memoryInUseMb());

    // Create a pane for it
    myCanvasNode = new JFXPaintCanvasNode(new JMonetCanvas(new Dimension(5000, 5000)));
    pane.getChildren().add(myCanvasNode);
    Scene scene = new Scene(pane, 640, 480);
    stage.setScene(scene);
    stage.show();

    System.out.println("Memory in use after creating very large canvas: " + memoryInUseMb());

    Platform.runLater(() -> {

        // Dispose the canvas...
        myCanvasNode.dispose();
        myCanvasNode = null;

        // ... and remove it from the scene, and eliminate any reference to the parent Pane
        stage.setScene(new Scene(new Pane()));
        pane = null;
    });

    // May take a few GC cycles before everything is clean...
    Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
            System.gc();
            System.runFinalization();
            System.out.println("Memory in use: " + memoryInUseMb());
        }
    }, 1, 1, TimeUnit.SECONDS);
}

}
This should produce output similar to:
Initial memory in use: 21
Memory in use after creating very large canvas: 426
Memory in use: 296
Memory in use: 292
Memory in use: 4
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/defano/jmonet/issues/41#issuecomment-670983743, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AQGYRW6YK5H47XFPHQULPI3R7XL37ANCNFSM4OUGRRPQ
.


feat(button): Buttons need to be able to work with undefined values

Now that the credit is available and we cant use color with credit we need to be able to support undefined values in the style properties.
var buttonConfig = [
            {
                id: '#paypal-button1',
                size: 'tiny',
                color: 'silver',
                shape: 'pill'
            },
            {
                id: '#paypal-button2',
                size: 'medium',
                label: 'credit'
            }
        ];

        buttonConfig.forEach(function (button) {
            paypal.Button.render({
                env: 'sandbox',
                client: {
                    sandbox:    'AQzwHJt9jZAyQbf-DnaqZefvbTCMammV7ZFsnW23thr9qUQX9RGMgSVbzRjxXTAODKjh2W0k6Ei4Q2m9'
                },
                onError: onError,
                onCancel: onCancel,
                payment: createPayment,
                onAuthorize: executePayment,
                commit: true,
                style: {

                    size: button.size,
                    shape: button.shape,
                    label: button.label,
                    color: button.color
                }
            }, button.id);
        });

Yeah good callout.

@bluepnume I kinda need this fixed for the demandware plugin.  I have it narrowed down to:
https://github.com/krakenjs/xcomponent/blob/baee42d1152dccb8db1d2da8b24bafa9ae03f422/src/lib/dom.js#L372
But if I check for undefined and return [] or set obj[key] to '' I get odd regression errors.  Wondering what your thoughts are on this.


additionalHeaders and rejectUnauthorized are not respected by the extension

Both additionalHeaders and rejectUnauthorized options are not respected by the extension.
Steps to reproduce:

Set redmine.additionalHeaders to {"Authorization": "Anything"}
Set redmine.url to any webserver address, which can intercept headers (e.g. Burp Suite)
Run Redmine: List open issues assigned to me

Expected results
Request headers should include Authorization: Anything.
Actual results
No header Authorization is found in the request headers.
Note for new-commers
Creating new instance of RedmineServer does not include additionalHeaders and rejectUnauthorized from configuration. One needs to additionally parse and pass these options into the new instances. These are created in src/extension.ts, src/trees/my-issues-tree.ts and src/trees/projects-tree.ts:
https://github.com/rozpuszczalny/vscode-redmine/blob/cbf738d673453cd367ff440860790711476393c6/src/trees/projects-tree.ts#L11-L18
https://github.com/rozpuszczalny/vscode-redmine/blob/cbf738d673453cd367ff440860790711476393c6/src/trees/my-issues-tree.ts#L9-L15
https://github.com/rozpuszczalny/vscode-redmine/blob/cbf738d673453cd367ff440860790711476393c6/src/extension.ts#L57-L64
Thanks to @saiballo for spotting that!

any news about this issue? :-)

@saiballo I was hoping that some newcomer will pick the issue and solve it ;) Anyway, since no one is interested in it, I'll fix it soon then

thank you very much!!!


Workaround hardcoded OS names in fixtures

Some text fixtures have a hardcoded OS macOS. This of course makes these tests only work on this platform.
This PR overwrites the fields with the actual OS the test is running in while the test is running, at runtime.

Damn, turns out this method to replace a string was a bad idea:
My branch that I used to test this on non-Mac was missing a commit that added an entry to the .json fixture file that is used to test here, so it now fails. This means that any test to these files, would require a change in this code as well - which is not a good idea.
I will create another PR removing this code and implementing the other method that mocks the operating system value.


TLSv1.3 Not Supported

TestSSLServer does not currently report support for the draft spec for TLS1.3.
Creating this issue as a feature request for when the draft is finalized.

if im not mistaken TLS1.3 final spec was released in August 2018 https://tools.ietf.org/html/rfc8446
Will TLSv1.3 be supported by this tool soon?


Does the package require react-script as peer dependency?.

 Could not resolve dependency:
npm ERR! peerOptional<EMAIL_ADDRESS>|| ^4" from<EMAIL_ADDRESS>npm ERR! node_modules/react-scripts
npm ERR!   peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>
I am getting this error when using typescript version 5.0. I see the package is compatible with typescript v5. Just a question, does this package really needs react-scripts as peer dependency.

I see there are some open PRs / Issuess with react-scripts. May be i will just wait for a new release of react-scripts.


[GHA] Update sonar.login to sonar.token

coverage: 93.75%. remained the same
when pulling db86e2a2c804c2b2ea57c09775a16a51235694c1 on hazendaz:master
into 90e569ec8b7d7775356a7fb9db2c13c57513b34f on mybatis:master.


Weird results

I try to train a paired style transfer with custom dataset. But results are weird.

@zhiqiaoprc Did you manage to solve this problem?

I have the same issue. Can you please help @zhiqiaoprc ?

I have the same problem. How to solve this?

I have the same problem. Was this issue solved, and why is this issue closed?


ChaCha20 as a possible addition to examples area

I wrote a portable-simd enabled implementation of the chacha20 stream cipher, as a partial rewrite of Rust-Crypto to play around with portable simd and const generic techniques. It might be a useful base for a short example; the cipher is extremely simple, but also documents an application of bit-rotation, for if and when #216 is resolved.
My implementation: https://github.com/thor314/tkcrypto/blob/main/src/chacha.rs#L217
Ported from: https://github.com/RustCrypto/stream-ciphers/tree/master/chacha20/src/backends
If this seems a worthwhile example, I'll repackage the example with further comments and submit a PR.

but also documents an application of bit-rotation, for if and when https://github.com/rust-lang/portable-simd/issues/216 is resolved

I believe that issue isn't about bit rotation, but lane rotation.

Bit rotation would be reasonable — AFAIK it's only really supported by the AMD's XOP instruction set extension (admittedly that's a deprecated), but it is a method integers have, so I'm honestly a little surprised we don't already have something here.

Bit rotation for integers (as is needed for chacha) would be reasonable — AFAIK it's only really supported by the AMD's XOP instruction set extension (admittedly that's a deprecated), but it is a method integers have, so I'm honestly a little surprised we don't already have something here.

bit rotation of vectors can be done using vprolw on avx512, or by shifting and or-ing.
bit rotation of vectors is also supported in PowerISA (both in VMX/AltiVec and in SimpleV).

Are bits generally rotated independently in each lane, or all together by the same amount? Just curious--I'm not sure this actually matters for the API, since independent rotation can be emulated with select.

Are bits generally rotated independently in each lane, or all together by the same amount? Just curious--I'm not sure this actually matters for the API, since independent rotation can be emulated with select.

independent rotation amounts are common in cryptography

All lanes are rotated by the same amount for chacha.

yep that's correct. I didn't see an api for bit-rotation, so I converted back into an array for that operation, though as programmerjake mentioned, there are specific instructions for bit rotation on architectures like AVX. The RustCrypto library uses a different trick though, involving _mm256_shuffle_epi8. https://github.com/RustCrypto/stream-ciphers/blob/master/chacha20/src/backends/avx2.rs#L227

Yes, the shuffle works for the part of the algorithm that needs rotation by a 16 and by 8, but other parts require rotation by 12 bits, and by 7 bits (it's 16, 12, 8, 7). In those cases, the RustCrypto implementation uses shift and or (well, xor).
In any case, as to the comment about this being a potential addition to our examples: while it's a simple algorithm (and one I've implemented myself multiple times), I don't think we want to maintain any cryptography in our examples.

bitwise rotation is tracked by #14


Unclack.app initial commit.

Thanks @a-vogel for preparing the recipe with recipe robot.
This is a recipe for Unclack.app, an app that suppresses clicking and clacking sounds during video conferences. Especially those of a MacBook built-in keyboard.

Is having an app icon next to the recipe a common practice? Haven't seen it before...

I have added the automated generation of minimum_os_version for the Munki recipe.

Override was created and is working (installation/uninstallation). PNG has been removed.


lyrics command for searching up song lyrics

This command should work with either a currently playing song or via a searchable query
This suggestion was created by a user and sent by the bot:
jukebox-botto#8602

tried to implement it but solution didn't work with api maybe in the future but closed for now


Support resource request/response body schema

Imo best added under example.
Spec: http://raml.org/spec.html#schemas and http://raml.org/spec.html#schema.

Oops, schemas do render ok above example, the schema definition was missing in traits. Closing the issue.


Question about link prediction

Hi,
I find that there maybe data leakage of link predicion experiments.
As shown in the following example, the test  link is [35140, 42213], but this test edge has been leaked in your input neighbor information.

Since the four datasets are not officially designated for link prediction tasks, we adopt the approach used by GraphGPT for conducting link prediction.
GraphGPT does not exclude test links from their graphs, aligning with a transductive setting. Our GNN baselines similarly employ this transductive approach for consistency.

Removing the test link might be a better experimental design. We may consider adding this kind of setting  in the future.
Currently, to allow you to experience the results under this setting on LLaGA, you can ad hoc remove the src or dst nodes on the template if they appear in  the other sequence for ND template during testing.
I just did a simple test on the cora dataset and classification expert projector and found that the accuracy still reached 0.97+. You can also try it on other datasets.

unreasonable

Hi, I am one of authors of GraphGPT. Actually, we have discussed this question before releasing GraphGPT. And finally, we follow the most common settings in the graph learning domain, an example of processing link prediction data could be found in https://colab.research.google.com/drive/1xpzn1Nvai1ygd_P5Yambc_oe4VBPK_ZT?usp=sharing (Official tutorial of PyG).

I just recheck the Link prediction data of GraphGPT, it seems to be my fault, I just found node1 appears in the graph of node2, but ignore that it may be 2-hop neighbor, so I  misunderstand their settings.  Very sorry about that.
I will redo my link prediction experiments systematically as soon as possible (get several main results before the end of next week) and update the results to you.
Before getting the results, you can following the simple setting I mentioned before,  remove the link just in test stage. I test this setting on cora dataset and found the results do not change too much.

Hi all,
I re-evaluated LLaGA under the new link prediction setting. In this setting, we exclude the test link prior to neighbor sampling. I conducted tests on LLaGA in both the classification expert and task expert setting to assess its versatility, as well as in a zero-shot setting to examine its generalizability. The key findings are as follows:

In this new setting, LLaGA continues to demonstrate superior versatility and generalizability when compared to baseline models.
LLaGA  outperforms baselines even more compared with the original setting on zero-shot tasks . This is likely because baseline models struggle to adapt to unseen data within this new setting.

Overall,  the outcomes are consistent with those observed in the original setting. On smaller datasets, both baseline and LLaGA performance may experience a slight decline. This can be attributed to the potential scarcity of node neighbors in smaller datasets. Removing these links along with their 2-hop neighbors, tends to have a more pronounced impact. (Different from the naive method I previously said, which involved replacing the node in the sequence with [PAD]. Instead, here we eliminate the node along with the 2-hop neighbors it introduces)
Thank you all for the discussion which make LLaGA better!

Yes, I will update  arXiv as soon as possible after I finished re-evaluating all experiments related to link prediction task.

Firstly, you are training in a single focus setting, while 91.2 is the task expert setting (but I  think you may also get a result close to 91.2 in this setting).
Secondly, you may be using the first version of my code,  which contains an error in the eval_lp  function in eval_res.py due to a typo made during code formatting.  I have fixed it several days ago, please pull the newest master. (don't worry, you don't need to re evaluate, just change the function for computing metrics)


New checker: alf/sweet.

This looks highly specialised.  Please consider maintaining an external checker instead.

Thanks for the helpfull comments.
The language/tool is indeed highly specialised so i suppose you are right and maintaining an external checker is the way to go.
I will close the pull request.

https://github.com/rveens/alf-vim repository now contains the external ALF checker plugin.

For what it's worth, this is still less than perfect.  First you need a load guard for plugin/sweet.vim, i.e. something like this near the top of the file:
if exists('g:loaded_sweet_plugin')
    finish
endif
let g:loaded_sweet_plugin = 1

Otherwise if for whatever reason the file is loaded more than once, you end up with g:syntastic_extra_filetypes = ['alf', 'alf', 'alf', ...].
Second, 'exe': self.getExec() in makeprgBuild() is actually harmful, because it doesn't do proper quoting of shell special characters.  It's highly unlikely to cause any harm (since nobody in his right mind has, say, ' in the name of the directories in their $PATH), but it's still wrong.  The default value does the right thing, so just leave out that line.


Release Docker image

Describe your suggested feature
In PR #32 (related #27) a Dockerfile was added, allowing a Docker image to be created.
In a GitHub Action workflow, there should be steps to create a Docker image on a release tag and release it to either GitHub Packages or Docker Hub. PR #32 did have instructions on how to add this to the workflow. But the steps for the workflow are covered on this page: https://docs.github.com/en/actions/publishing-packages/publishing-docker-images
Other details
This released image can then be used in a docker-compose.yml file
version: '3.9'
services:
  tankobon:
    image: ghcr.io/alessandrojean/tankobon:latest
    ports:
      - "10101:8080"
    volumes:
      - /path/to/user_home/.tankobon:/root/.tankobon

Ports:
10101 is the port that can be accessed outside of the container.
8080 is the port for the server inside the container.
Volumes:
/path/to/user_home/.tankobon would be the path on the user machine.
/root/.tankobon path inside the container.
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] I have written a short but informative title.
[X] I have updated the app to the latest version.
[X] I filled out all of the requested information in this form.

I plan to add to DockerHub when the first release is done, but I didn't know about the GitHub Packages thing, it can be used during unstable development to be easily tested by users.
I will soon likely implement a scheduled once a week action to release the preview 👍🏻

Added to GitHub Packages for now 👍🏻. The release is done by a manual trigger, but I plan to make it weekly at some point, I just need to resolve some issues such as skipping the workflow if there wasn't any new commits on the week it's running.
https://github.com/alessandrojean/tankobon/pkgs/container/tankobon


Comment on marked text

In Azure Devops it is possible to highlight a specific word and write a comment that will be attached to the highlighted text. If it would be possible to add a comment through the extention in VSCode it would make the comments much more readable.

Commenting is feature of VS Code itself. The only way I know to comment is to press the + icon to comment on that line. I don' think there is any feature to comment on highlighted text. Check with the https://github.com/microsoft/vscode team and raise the feature request there.

Thanks!


Add Ubiqod by Skiply v2 connector

When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)
If this is your first time submitting to GitHub and you need some help, please sign up for this session.

[x] I attest that the connector doesn't exist on the Power Platform today. I've verified by checking the pull requests in GitHub and by searching for the connector on the platform or in the documentation.
[x] I attest that the connector works and I verified by deploying and testing all the operations.
[x] I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
[x] I attest that I have added response schemas to my actions, unless the response schema is dynamic.
[x] I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
[x] If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

This pull request adds a new Ubiqod By Skiply v2 connector. With version 1 being deprecated, we are creating another one with a brand new API and lots of new features.

@microsoft-github-policy-service agree company="Skiply"

Hello @Sylvain-Chu
Your merge commit has an issue, it has not merged properly, please refer the Swagger validation checker errors, and apiProperties.json file cannot be picked by validator. Please recommit or close this PR and open a new PR. Please don't merge it until the review is completed.

Hello @Sylvain-Chu
Your merge commit has an issue, it has not merged properly, please refer the Swagger validation checker errors, and apiProperties.json file cannot be picked by validator. Please recommit or close this PR and open a new PR. Please don't merge it until the review is completed.

Hello @vmanoharas,
Thank you for the feedback. I have checked the Swagger validator on my side with paconn and it only returns warnings, no errors. Could you please provide more details on the issues ?
Thank you for your assistance.

Hello @Sylvain-Chu,
Thank you for validating again, however you have merged the branch before the review, kindly recommit the PR and don't merge it until the review.

A new pull request has been created to address the issues in this one. Please refer to #3509


Ability to download data to CSV / Excel

Provide the ability to download the current view / table into CSV file.

This is similar to https://github.com/implydata/pivot/issues/57 . This is in the works but not super high priority, focusing on finishing some core features first.

:+1: even better to have PDF

+1

+1 !

Is there any timeline for this feature?

Export to CSV was added in Pivot 0.8.15.


Rust ring still fails to build

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
When the ring dependency is being used, it now fails to compile.
#10 246.4   running "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "include" "-Wall" "-Wextra" "-std=c1x" "-Wbad-function-cast" "-Wnested-externs" "-Wstrict-prototypes" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-g3" "-DNDEBUG" "-c" "-o/app/target/release/build/ring-8d77a268a77db620/out/gfp_p384.o" "crypto/fipsmodule/ec/gfp_p384.c"
#10 246.4   running "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "include" "-Wall" "-Wextra" "-std=c1x" "-Wbad-function-cast" "-Wnested-externs" "-Wstrict-prototypes" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-g3" "-DNDEBUG" "-c" "-o/app/target/release/build/ring-8d77a268a77db620/out/cpu-intel.o" "crypto/cpu-intel.c"
#10 246.4   running "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "include" "-Wall" "-Wextra" "-std=c1x" "-Wbad-function-cast" "-Wnested-externs" "-Wstrict-prototypes" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-g3" "-DNDEBUG" "-c" "-o/app/target/release/build/ring-8d77a268a77db620/out/poly1305_vec.o" "crypto/poly1305/poly1305_vec.c"
#10 246.4
#10 246.4
#10 246.4   error occurred: Failed to find tool. Is `ar` installed?
#10 246.4
#10 246.4

#10 299.3 The following warnings were emitted during compilation:
#10 299.3
#10 299.3 warning: sqlite3/sqlite3.c: In function 'sqlite3Fts5IndexQuery':
#10 299.3 warning: sqlite3/sqlite3.c:225285:18: warning: 'memcpy' specified bound<PHONE_NUMBER>3709551615 exceeds maximum object size<PHONE_NUMBER>854775807 [-Wstringop-overflow=]
#10 299.3 warning: 225285 |     if( nToken ) memcpy(&buf.p[1], pToken, nToken);
#10 299.3 warning:        |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#10 299.3
#10 299.3 error: failed to run custom build command for `libsqlite3-sys v0.22.2`
#10 299.3
#10 299.3 Caused by:
#10 299.3   process didn't exit successfully: `/app/target/release/build/libsqlite3-sys-ebf66ecf8271228a/build-script-build` (exit status: 1)

Also happens with libsqllite3-sys. Seems like it wants ar, but I'm not sure what that is.
cc @coffee-cup
To reproduce

Have a rust crate with the ring dependency.

Expected behavior
It shouldn't spaz out
Environment
railway

Duplicate of https://github.com/railwayapp/nixpacks/issues/258

Oh right, saw that issue but thought that one was platform specific.


pipenv can't install sonora

Now that aiohttp 3.8.0 came out, pipenv can't install sonora.
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
aiohttp = "3.7.4"
sonora = "0.2.1"

[dev-packages]

[requires]
python_version = "3.9"

Resolving dependencies...
✘ Locking Failed!
[ResolutionFailure]:   File "/usr/local/lib/python3.9/site-packages/pipenv/resolver.py", line 741, in _main
[ResolutionFailure]:       resolve_packages(pre, clear, verbose, system, write, requirements_dir, packages, dev)
[ResolutionFailure]:   File "/usr/local/lib/python3.9/site-packages/pipenv/resolver.py", line 702, in resolve_packages
[ResolutionFailure]:       results, resolver = resolve(
[ResolutionFailure]:   File "/usr/local/lib/python3.9/site-packages/pipenv/resolver.py", line 684, in resolve
[ResolutionFailure]:       return resolve_deps(
[ResolutionFailure]:   File "/usr/local/lib/python3.9/site-packages/pipenv/utils.py", line 1397, in resolve_deps
[ResolutionFailure]:       results, hashes, markers_lookup, resolver, skipped = actually_resolve_deps(
[ResolutionFailure]:   File "/usr/local/lib/python3.9/site-packages/pipenv/utils.py", line 1110, in actually_resolve_deps
[ResolutionFailure]:       resolver.resolve()
[ResolutionFailure]:   File "/usr/local/lib/python3.9/site-packages/pipenv/utils.py", line 835, in resolve
[ResolutionFailure]:       raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  First try clearing your dependency cache with $ pipenv lock --clear, then try the original command again.
 Alternatively, you can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: Could not find a version that matches async-timeout<4.0.0,<5.0,>=3.0.1,>=4.0.0a3 (from sonora==0.2.1->-r /tmp/pipenvtyzqg5alrequirements/pipenv-7zxeuvmq-constraints.txt (line 3))
Tried: 1.0.0, 1.0.0, 1.1.0, 1.1.0, 1.2.0, 1.2.0, 1.2.1, 1.2.1, 1.3.0, 1.3.0, 1.4.0, 1.4.0, 2.0.0, 2.0.0, 2.0.1, 2.0.1, 3.0.0, 3.0.0, 3.0.1, 3.0.1, 4.0.0, 4.0.0
Skipped pre-versions: 4.0.0a0, 4.0.0a0, 4.0.0a1, 4.0.0a1, 4.0.0a2, 4.0.0a2, 4.0.0a3, 4.0.0a3
There are incompatible versions in the resolved dependencies:
  async-timeout<4.0.0,>=3.0.1 (from sonora==0.2.1->-r /tmp/pipenvtyzqg5alrequirements/pipenv-7zxeuvmq-constraints.txt (line 3))
  async-timeout<5.0,>=4.0.0a3 (from aiohttp==3.8.0->-r /tmp/pipenvtyzqg5alrequirements/pipenv-7zxeuvmq-constraints.txt (line 2))

Not really sure what's going on here. Even forcing exact versions, it doesn't seem to honor them.

Well, you're not pinning:
--- Pipfile.orig	2021-11-06 06:59:54.000000000 +0100
+++ Pipfile	2021-11-06 06:58:56.000000000 +0100
@@ -4,8 +4,8 @@
 name = "pypi"

 [packages]
-aiohttp = "3.7.4"
-sonora = "0.2.1"
+aiohttp = "==3.7.4"
+sonora = "==0.2.1"

 [dev-packages]

If I pin exact versions, it's fine, but I don't see why ~= versions shouldn't work here.

This works with 2021.11.5.post0 now. Thank you!


Changes to add/invoke content provider for broker interaction

MSAL PR : https://github.com/AzureAD/microsoft-authentication-library-for-android/pull/1053
Broker PR : https://github.com/AzureAD/ad-accounts-for-android/pull/1298
Change Doc : https://identitydivision.visualstudio.com/DefaultCollection/DevEx/_git/AuthLibrariesApiReview/pullrequest/1554

Left some comments for ACK on binary compat changes, documenting meaning/intent of null return value with getCurrentActiveBrokerPackageName

Thanks @iambmelt , addressed your comments

Thanks @iambmelt and @AdamBJohnsonx  for the reviews. Addressed your comments

Taking a look

@iambmelt  : Thanks, I was not aware about it. Addressed the comments


feat(p2p): activate gossipsub tx validators

Please read contributing guidelines and remove this line.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#10695  👈 (View in Graphite)
#10694
master

This stack of pull requests is managed by Graphite. Learn more about stacking.


Cannot link to quickstarts for quantum computing

The "Quantum computing ‣ Azure Quantum ‣ Quickstarts" heading under the TOC does not have a root page that can be linked to independent of a particular quickstart:

This makes it hard to direct users from outside the docs to where they can find options for working with various languages and platforms.

Since we have recently added new quickstarts, we should create an index for this section.  I have created a work item in DevOps User Story #1882101.

@cgranade  - it's important we don't create pages that act as "middle-ware." They hurt the performance of the overall doc set and add upkeep with little value. You can see the results of the index strategy in the SQL Server docs which are bloated and hard to maintain.
Let's take a look at the organic search experience, and not focus on the TOC.

I recommend to Sonia that she add x-links to this article: https://docs.microsoft.com/en-us/azure/quantum/concepts-circuits
And then link to the circuits concept article from the individual circuit quickstarts.


Change from coveralls.io to codecov.io

Current coverage is 95.29%

Branch #102 has no coverage reports uploaded yet.

No diff could be generated. No reports for master found.

Powered by Codecov. Updated on successful CI builds.