Fix format for error responses

Description
On this PR, the format for the error media review bots responses was updated to accept nil as a response, and formating the array from the fetch bot to a hash object.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

8 of 8 (100.0%)  changed or added relevant lines in 7 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.612%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2309

Relevant Lines:
2318

💛  - Coveralls


Setting up rviz

Hello,
I've set up the project according to the instructions in the README. However I've not been able to find a launch script which creates an rviz node with the correct configuration. I tried launching 'carla ros bridge with rviz' from within the carla autoware but rviz doesn't show any data.
Can I get a guideline on how to setup rviz with this project?
Thanks,
Ishaan

I was able to run the visualizer by launching it from the autoware runtime manager. (Link). However, the car still doesn't move. I'm stuck at the same point as (This issue).

For visualization, please use the rviz-configurations that autoware provides or simply add all the topics manually.
Please keep in mind. In this repo only the bridging functionality and some example launch files are provided. Those launch-files + Autoware 1.12.0 should lead to a ego vehicle, that follows waypoints.
If this is not working, I would suggest, that you use rqt_graph+rostopic to analyze the data flow in order to identify the issue.

Thank you for the response. I was able to run rviz from the runtime manager. I'm assuming that the default rviz config for autoware was used. However, the ego-vehicle is not moving. I have a some questions regarding this -

Should the ego-vehicle be autonomously driving by default (right after running devel.launch)?
After setting nav goal using rviz as shown on the README (which is not working for me right now), should we run the roslaunch script (devel.launch) again since this is how the waypoint publisher launch script is called.

I'm getting the following error from the waypoint pubisher python script (while running devel.launch)-
exit_waypoint=self._graph.edges[next_segment[0], next_segment[1]]['entry_waypoint'] with the error message as - TypeError: 'instancemethod' object has no attribute 'getitem'
How do I check if all the waypoints are loaded correctly and if the car will move after running the launch script?
My current status is very similar to #76 and #51. It would be great if a guideline is added to the README with details about this.
Thank you,
Ishaan

I used the .default  from the quickstart tutorial.

pip install simple-pid and retry it.


Shared autocomplete value no duplicate on multiple input tags

I'm submitting a ...  (check one with "x")
[ ] bug report => search github for a similar issue or PR before submitting
[x] feature request
[ ] support request/question

Current behavior

Current feature checks only against parent tag inputs for duplicates. The is to feature that checks the autocomplete against multiple tag inputs for duplicates.
Expected behavior

an attribute that checks for the same "autocomplete zone"? It would be similar to dragzone.
Minimal reproduction of the problem with instructions (if applicable)

What is the motivation / use case for changing the behavior? (if applicable)

An item can belong in no group or one group but not multiple groups.
What do you use to build your app? (SystemJS, Webpack, angular-cli, etc.). Please specify the version

angular-cli: 1.0.0
windows 10
phpStorm
Angular version:

angular: 4.0.2
ng2-tag-input version:

1.0.2
Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Chrome

Sorry this seems out of scope. You could achieve this functionality by playing witht he events anf adjusting the models passed to the components accordingly. Happy to merge a PR if you want though.


Implement WIS2 node (Italy)

[ ] Design and develop WIS2 node
[ ] Define datasets and topics
[ ] Define Center identifier
[ ] Implement software for the WIS2 node
[ ] Register WIS2 node
[ ] Develop metadata
[ ] Publish notifications through the GBs
[ ] Provide access to GBs and GCs
[ ] Start WIS2 data sharing through the Global Services

Italy upgrade its IBL system to be compliant with WIS 2.0
The web component is accessible at https://wis.meteoam.it/pilot/wis2
The broker at mqtts://wis.meteoam.it:8883 supports MQTT 5.0 and also the older 3.1.1
Access to the node is limited for source IP
Notifications are in WIS 2.0 v04 aka "a" format
The web server uses TLS with a valid server certificate


fix(ingest/powerbi): Allow old parser to parse [db].[schema].[table] table references

Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

@asikowitz also there's a mypy failure on 3.7
tests/unit/test_powerbi_parser.py:15: error: Missing named argument "modified_since" for "PowerBiDashboardSourceConfig"  [call-arg]


Merge new features

Thank you very much, sintech!

Fixes #3

Woaw lots of new stuff ! thanks @ptwz


Console.write() not showing up in terminal

I'm doing a console.write but do not see it in the mocha test results
        it('we should have an application available', function(done){
            console.write("I cannot see this in the terminal");
            server.app.should.be.a('object');
            done();
        });

I think you want console.log :)

omg please delete the entire thread.  I'm embarrassed lol duh.  Not like I haven't used log before, been a long day.

haha no worries, I def have those kinds of moments all the time


Roaring bitmaps for matrix operations

Hi, I apologize if this isn't the right venue for asking this question?
But I was wondering if it wouldn't be ridiculous to implement a SparseMatrix using a collection of RoaringBitmaps as its rows?
What do you think?
Cheers,
David

A bitmap/bitset can be thought of as a set of integers. The rows of a matrix are more like arrays. So there is no obvious match in my mind. Care to elaorate?

Hi Daniel, thank you for responding so quickly, I'm a big fan of your work!
The idea would be to have a Matrix with bits instead of integers (in my case). Each row would be a Roaring Bitmap which would save on memory? For my project, I'm using int[]s as the payload that gets passed around, and the integers are only either 1 or 0; the arrays in the usual case are 2048 bits wide with 2% sparsity (typically == 40 on bits).
I'm thinking about a way to minimize memory consumption without losing performance. Using 32 bits to represent a zero or one, you can see, is kind of a waste - however I did read somewhere that the JVM is more efficient using integers (having something to do with register sizes or something?) Here is one place where I saw some discussion of this, though I can't find the original source.

Oh! Yes, if it is a matrix of bits, then yes, it could work.
If you are using int[] to store 0s and 1s, you could reduce your memory usage by nearly a factor of 4 by using boolean[] arrays instead as a boolean in an array use as little as 1 byte in Java.
It is entirely possible that you might do even better with Roaring bitmaps. In the abstract, it is a bit difficult to tell. Have tried it?

Not yet tried it... Right now I'm in the middle of looking for adequate Linear Algebra libraries, though what I have to do is not too complex (some dot products, right vector sums) - but then I have to have a SVD implementation - my project is reverse engineering the human neo cortex and we model columns of cells in a matrix as one of the data structures (neural nets with real neurons).
Anyway, I need to get an idea of how it might be to manipulate the bits of a Roaring Bitmap, either by extracting out to a 2D integer array doing my computations; and then putting it back in, or manipulating the bitmaps via a wrapper - in place? Just thinking about what would be most efficient...

@cogmission
Oh. No, you don't want to extract stuff. You'd want to operate directly on the compressed data.
You could start cataloguing the operations you need to have supported.
Possibly, one might need to design a custom data structure, maybe inspired by Roaring bitmaps. Maybe Roaring bit matrices or something. I could help, possibly.

@lemire Really? Your help would be unbelievably serendipitous! :-)
But yes, I think it could work! I will start to write down the operations as you suggest, I believe they won't be that many in number... But a Roaring Matrix (maybe RoaringBinaryMatrix) would be pretty cool! The community might enjoy its existence too!
Do you have any intuition (I know we're speaking with no details), as to whether its performance would be compromised at all as opposed to using int[]s? (outside of the fact that it would save 4x memory)?

@cogmission
We are possibly talking about a lot more than 4x memory savings. But memory is a secondary issue... it is often possible to just throw more RAM at the machine... this is easy with distributed systems. So RAM is rarely a hard limit. The problem I see in practice are systems that get so bogged down moving bits around that they have less and less time for actual computations.
So without knowing anything about your application, what I'd hope is that you would be able to significantly improve the performance, irrespective of the memory usage.

Basically I do dot products, unions, outer vector sums, and mostly flipping bits from 1 to 0 - and a lot of 2048 bit int[] compositions as return values from various methods... So I would experience a lot of RBM creation (I would have to overhaul the code to transition from int[]s to RRbitmaps)... How are they for construction?

I'll create a branch and give it a try - implement one of the algorithms using RRBMs (not implement the Matrix just yet) and then get a jmh comparison going...

A dot product between two bit arrays is just the cardinality of the intersection:
http://static.javadoc.io/org.roaringbitmap/RoaringBitmap/0.5.18/org/roaringbitmap/RoaringBitmap.html#andCardinality-org.roaringbitmap.RoaringBitmap-org.roaringbitmap.RoaringBitmap-
We have unions, of course. We have bit flipping. To avoid creating new objects, we can often using in-place computations.
Best thing is to try it out at a prototype level and see where the problems are.

@lemire Thank you so much! (and thank you for the encouragement & link) I will do some leg work and see how things look... I'll circle back around and see if you have the time to get involved on the Matrix Impl if/when things look promising?
I created this issue here if you'd like to track its progress and continue discussing this possibility...https://github.com/numenta/htm.java/issues/382
Thanks again!

I subscribed to the issue.

@lemire Awesome. Please stay in touch when you find time and I'll leave comments as to the status...
Thanks again! :-)
Feel free to delete this if you don't want it hanging around, I made a note of your helpful comments already... :+1:

It is fine to let this issue open for now as it may interest others.

@cogmission did this go anywhere?

Hi
I'm using a RoaringBitmap to represent 50+ million users as a dimension like this (one bit = 1 user) :

dimension
user

country=KR
01001001

gender=male
11010011

and using it like this :
How many are KR & male unique users? = 01001001 & 10110011 = 01000001 = 2 users.

Now, I'd like to express relationships between 50+ million "user"s and 40+ million "user group"s (such as chat room) as a bit-matrix.

group ➡
1
2
3
4
5
6 ...

user 1
1
0
1
1
0
0

user 2
0
1
0
1
1
0

user 3
1
0
1
1
0
0

user 4
0
1
0
0
1
1

user 5
0
1
0
1
1
0

user 6
1
1
0
1
1
1

user 7
1
0
0
0
0
1

user 8
0
1
0
1
1
0

...

(Actually it's very sparse because each group has 5-10 members only(avg.))
After filtering users by some conditions, I have a user bitset(user 1, 3, 5 = 10101000). Now, I want to get a "user group" bitset which contains a user which I filtered. (group 1, 2, 3, 4, 5 = 111110)
Without compressing, we need 227TB memory to represent relationships.
50000000 bit * 40000000 bit / 8 (to byte) / 1024 ( to KB) / 1024 ( to MB) / 1024 (GB) / 1024 (TB) = 227TB

Could it be compressed in RoaringBitmap way? It would be very cool.
Interface like this would be good..
RoaringBitmap groups = bitMatrix.someManipulation(userRoaringBitmap)

Then we can answer this
How many unique groups which contains a KR & male user? =

Sorry for my bad english
I'm not sure it's right place to talk
Thanks

@ChoeYoonSeop
Your English is probably just fine.
Why can't you represent each column of your bit-matrix as a bitmap?
Can you represent your idea using Java code?

Hi. I'm ChoeYoonSeop(company changed so email invalidated..) and I implemented my requires in kotlin code here:
https://github.com/rolandblain/relationmatrix
Thank you and your library and I hope you always stay healthy and happy.

I am going to close the issue and refer interested users to https://github.com/rolandblain/relationmatrix


release: Clear Containers 3.0.1

Version bump for Clear Containers 3.0.1
Fixes: #128
Signed-off-by: Jose Carlos Venegas Munoz<EMAIL_ADDRESS>

Jekinks just failed in unit tests, pasting here for reference.
00:09:04.240 === RUN   TestShimUsr1SignalProcessNotStarted
00:09:04.267 panic: test timed out after 2s
00:09:04.267
00:09:04.267 goroutine 246 [running]:
00:09:04.267 testing.startAlarm.func1()
00:09:04.267 	/usr/local/go/src/testing/testing.go:1023 +0x139
00:09:04.267 created by time.goFunc
00:09:04.267 	/usr/local/go/src/time/sleep.go:170 +0x52
00:09:04.267
00:09:04.267 goroutine 1 [chan receive]:
00:09:04.267 testing.(*T).Run(0xc42016a270, 0x9b909f, 0x23, 0x9c16c0, 0xc4200f5b01)
00:09:04.267 	/usr/local/go/src/testing/testing.go:698 +0x582
00:09:04.267 testing.runTests.func1(0xc42016a270)
00:09:04.267 	/usr/local/go/src/testing/testing.go:882 +0xab
00:09:04.267 testing.tRunner(0xc42016a270, 0xc4200f5c40)
00:09:04.267 	/usr/local/go/src/testing/testing.go:657 +0x108
00:09:04.267 testing.runTests(0xc42016e340, 0xbf3de0, 0x35, 0x35, 0x16)
00:09:04.267 	/usr/local/go/src/testing/testing.go:888 +0x4e1
00:09:04.267 testing.(*M).Run(0xc4200f5f28, 0x0)
00:09:04.267 	/usr/local/go/src/testing/testing.go:822 +0x1c4
00:09:04.267 github.com/clearcontainers/proxy.TestMain(0xc4200f5f28)
00:09:04.267 	/home/jenkins/go/src/github.com/clearcontainers/proxy/main_test.go:39 +0x1a4
00:09:04.267 main.main()
00:09:04.267 	github.com/clearcontainers/proxy/_test/_testmain.go:208 +0x341
00:09:04.268
00:09:04.268 goroutine 17 [syscall, locked to thread]:
00:09:04.268 runtime.goexit()
00:09:04.268 	/usr/local/go/src/runtime/asm_amd64.s:2197 +0x1
00:09:04.268
00:09:04.268 goroutine 35 [syscall]:
00:09:04.268 os/signal.signal_recv(0x4857e1)
00:09:04.268 	/usr/local/go/src/runtime/sigqueue.go:116 +0x104
00:09:04.268 os/signal.loop()
00:09:04.268 	/usr/local/go/src/os/signal/signal_unix.go:22 +0x30
00:09:04.268 created by os/signal.init.1
00:09:04.268 	/usr/local/go/src/os/signal/signal_unix.go:28 +0x4f
00:09:04.268
00:09:04.268 goroutine 68 [select, locked to thread]:
00:09:04.268 runtime.gopark(0x9c21d8, 0x0, 0x9a97b8, 0x6, 0x18, 0x2)
00:09:04.268 	/usr/local/go/src/runtime/proc.go:271 +0xfd
00:09:04.268 runtime.selectgoImpl(0xc42009d750, 0xc42009d738, 0x0)
00:09:04.268 	/usr/local/go/src/runtime/select.go:423 +0x138a
00:09:04.268 runtime.selectgo(0xc42009d750)
00:09:04.268 	/usr/local/go/src/runtime/select.go:238 +0x1c
00:09:04.268 runtime.ensureSigM.func1()
00:09:04.268 	/usr/local/go/src/runtime/signal_unix.go:434 +0x1ea
00:09:04.268 runtime.goexit()
00:09:04.268 	/usr/local/go/src/runtime/asm_amd64.s:2197 +0x1
00:09:04.268
00:09:04.268 goroutine 52 [chan receive]:
00:09:04.268 github.com/clearcontainers/proxy.startKSM.func1(0xc4201dc240, 0xc4201ce180)
00:09:04.268 	github.com/clearcontainers/proxy/_test/_obj_test/ksm.go:383 +0x6a
00:09:04.268 created by github.com/clearcontainers/proxy.startKSM
00:09:04.268 	github.com/clearcontainers/proxy/_test/_obj_test/ksm.go:386 +0x200
00:09:04.268
00:09:04.268 goroutine 6 [select]:
00:09:04.268 github.com/clearcontainers/proxy.(*ksm).throttle.func1(0xc4201b0600)
00:09:04.268 	github.com/clearcontainers/proxy/_test/_obj_test/ksm.go:589 +0xb15
00:09:04.268 created by github.com/clearcontainers/proxy.(*ksm).throttle
00:09:04.268 	github.com/clearcontainers/proxy/_test/_obj_test/ksm.go:644 +0x14d
00:09:04.268
00:09:04.268 goroutine 53 [select]:
00:09:04.268 github.com/clearcontainers/proxy.(*ksm).throttle.func1(0xc4201ce180)
00:09:04.268 	github.com/clearcontainers/proxy/_test/_obj_test/ksm.go:589 +0xb15
00:09:04.268 created by github.com/clearcontainers/proxy.(*ksm).throttle
00:09:04.268 	github.com/clearcontainers/proxy/_test/_obj_test/ksm.go:644 +0x14d
00:09:04.268
00:09:04.268 goroutine 8 [chan receive]:
00:09:04.268 github.com/clearcontainers/proxy.startKSM.func1(0xc420010600, 0xc4201b0780)
00:09:04.268 	github.com/clearcontainers/proxy/_test/_obj_test/ksm.go:383 +0x6a
00:09:04.268 created by github.com/clearcontainers/proxy.startKSM
00:09:04.268 	github.com/clearcontainers/proxy/_test/_obj_test/ksm.go:386 +0x200
00:09:04.268
00:09:04.268 goroutine 10 [chan receive]:
00:09:04.268 github.com/clearcontainers/proxy.startKSM.func1(0xc420010780, 0xc4201b0900)
00:09:04.268 	github.com/clearcontainers/proxy/_test/_obj_test/ksm.go:383 +0x6a
00:09:04.268 created by github.com/clearcontainers/proxy.startKSM
00:09:04.268 	github.com/clearcontainers/proxy/_test/_obj_test/ksm.go:386 +0x200
00:09:04.268
00:09:04.268 goroutine 228 [IO wait]:
00:09:04.268 net.runtime_pollWait(0x7f034b5f7f78, 0x72, 0x4acc4a)
00:09:04.268 	/usr/local/go/src/runtime/netpoll.go:164 +0x5e
00:09:04.268 net.(*pollDesc).wait(0xc42034d568, 0x72, 0xbbc628, 0xffffffffffffffff)
00:09:04.268 	/usr/local/go/src/net/fd_poll_runtime.go:75 +0x5b
00:09:04.268 net.(*pollDesc).waitRead(0xc42034d568, 0xc4203c32f4, 0xc)
00:09:04.268 	/usr/local/go/src/net/fd_poll_runtime.go:80 +0x42
00:09:04.269 net.(*netFD).Read(0xc42034d500, 0xc4203c32f4, 0xc, 0xc, 0x0, 0xbbfbc0, 0xbbc628)
00:09:04.269 	/usr/local/go/src/net/fd_unix.go:250 +0x22b
00:09:04.269 net.(*conn).Read(0xc42015c3a8, 0xc4203c32f4, 0xc, 0xc, 0x1, 0xc4203c32f4, 0x0)
00:09:04.269 	/usr/local/go/src/net/net.go:181 +0x97
00:09:04.269 net.(*UnixConn).Read(0xc42015c3a8, 0xc4203c32f4, 0xc, 0xc, 0xc, 0xc, 0xc4201fdae0)
00:09:04.269 	<autogenerated>:143 +0x73
00:09:04.269 github.com/clearcontainers/proxy/api.ReadFrame(0x7f034b5f8060, 0xc42015c3a8, 0xc42015c3a8, 0x7f034b5f8060, 0xc42015c3a8)
00:09:04.269 	/home/jenkins/go/src/github.com/clearcontainers/proxy/api/protocol.go:94 +0xaf
00:09:04.269 github.com/clearcontainers/proxy/client.(*Client).sendCommandFull(0xc4203c3310, 0x0, 0x90aa40, 0xc4203ea320, 0x1, 0xc4201fdcd0, 0x436aa8, 0x50)
00:09:04.269 	github.com/clearcontainers/proxy/client/_obj/client.go:73 +0x1cf
00:09:04.269 github.com/clearcontainers/proxy/client.(*Client).sendCommand(0xc4203c3310, 0x0, 0x90aa40, 0xc4203ea320, 0x0, 0x0, 0xc4203c3310)
00:09:04.269 	github.com/clearcontainers/proxy/client/_obj/client.go:122 +0x7b
00:09:04.269 github.com/clearcontainers/proxy/client.(*Client).RegisterVM(0xc4203c3310, 0x9ac324, 0xa, 0xc4203439a0, 0x20, 0xc4203439e0, 0x20, 0xc4201fdea8, 0xc40000001a, 0xc4203c3310, ...)
00:09:04.269 	github.com/clearcontainers/proxy/client/_obj/client.go:196 +0x1a7
00:09:04.269 github.com/clearcontainers/proxy.(*testRig).RegisterVM(0xc42034d340, 0xc42034d340, 0xc420025300)
00:09:04.269 	/home/jenkins/go/src/github.com/clearcontainers/proxy/proxy_test.go:148 +0x1b9
00:09:04.269 github.com/clearcontainers/proxy.testShimSignalProcessNotStarted(0xc42033bc70, 0xa, 0x1)
00:09:04.269 	/home/jenkins/go/src/github.com/clearcontainers/proxy/proxy_test.go:783 +0x72
00:09:04.269 github.com/clearcontainers/proxy.TestShimUsr1SignalProcessNotStarted(0xc42033bc70)
00:09:04.269 	/home/jenkins/go/src/github.com/clearcontainers/proxy/proxy_test.go:816 +0x47
00:09:04.269 testing.tRunner(0xc42033bc70, 0x9c16c0)
00:09:04.269 	/usr/local/go/src/testing/testing.go:657 +0x108
00:09:04.269 created by testing.(*T).Run
00:09:04.269 	/usr/local/go/src/testing/testing.go:697 +0x544
00:09:04.269
00:09:04.269 goroutine 224 [IO wait]:
00:09:04.269 net.runtime_pollWait(0x7f034b5f7738, 0x72, 0x4acc4a)
00:09:04.269 	/usr/local/go/src/runtime/netpoll.go:164 +0x5e
00:09:04.269 net.(*pollDesc).wait(0xc4203c8618, 0x72, 0xbbc628, 0xffffffffffffffff)
00:09:04.269 	/usr/local/go/src/net/fd_poll_runtime.go:75 +0x5b
00:09:04.269 net.(*pollDesc).waitRead(0xc4203c8618, 0xc4203ad200, 0x8)
00:09:04.269 	/usr/local/go/src/net/fd_poll_runtime.go:80 +0x42
00:09:04.269 net.(*netFD).Read(0xc4203c85b0, 0xc4203ad200, 0x8, 0x200, 0x0, 0xbbfbc0, 0xbbc628)
00:09:04.269 	/usr/local/go/src/net/fd_unix.go:250 +0x22b
00:09:04.269 net.(*conn).Read(0xc4200948a8, 0xc4203ad200, 0x8, 0x200, 0xc42021ee78, 0x436aa8, 0x0)
00:09:04.269 	/usr/local/go/src/net/net.go:181 +0x97
00:09:04.269 net.(*UnixConn).Read(0xc4200948a8, 0xc4203ad200, 0x8, 0x200, 0x200, 0x200, 0x1)
00:09:04.269 	<autogenerated>:143 +0x73
00:09:04.269 github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart.ReadCtlMessage(0xbc5340, 0xc4200948a8, 0x0, 0x0, 0x0)
00:09:04.269 	/home/jenkins/go/src/github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/hyperstart.go:311 +0x120
00:09:04.269 github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart.startCtlMonitor.func1(0xc4203c4820, 0xc42032d3e0)
00:09:04.269 	/home/jenkins/go/src/github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/multicast.go:55 +0x5c
00:09:04.269 created by github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart.startCtlMonitor
00:09:04.269 	/home/jenkins/go/src/github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/multicast.go:69 +0x1f4
00:09:04.269
00:09:04.269 goroutine 233 [IO wait]:
00:09:04.269 net.runtime_pollWait(0x7f034b5f7678, 0x72, 0x4acc4a)
00:09:04.269 	/usr/local/go/src/runtime/netpoll.go:164 +0x5e
00:09:04.269 net.(*pollDesc).wait(0xc42034d648, 0x72, 0xbbc628, 0xffffffffffffffff)
00:09:04.269 	/usr/local/go/src/net/fd_poll_runtime.go:75 +0x5b
00:09:04.270 net.(*pollDesc).waitRead(0xc42034d648, 0xc4203a0470, 0x8)
00:09:04.270 	/usr/local/go/src/net/fd_poll_runtime.go:80 +0x42
00:09:04.270 net.(*netFD).Read(0xc42034d5e0, 0xc4203a0470, 0x8, 0x8, 0x0, 0xbbfbc0, 0xbbc628)
00:09:04.270 	/usr/local/go/src/net/fd_unix.go:250 +0x22b
00:09:04.270 net.(*conn).Read(0xc42015c3c8, 0xc4203a0470, 0x8, 0x8, 0x100000002, 0x100000000000001, 0x100000001)
00:09:04.270 	/usr/local/go/src/net/net.go:181 +0x97
00:09:04.270 net.(*UnixConn).Read(0xc42015c3c8, 0xc4203a0470, 0x8, 0x8, 0x0, 0x0, 0x0)
00:09:04.270 	<autogenerated>:143 +0x73
00:09:04.270 github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/mock.(*Hyperstart).readCtl(0xc420214d80, 0xc4203a0470, 0x8, 0x8, 0x8, 0x8)
00:09:04.270 	/home/jenkins/go/src/github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/mock/hyperstart.go:185 +0xad
00:09:04.270 github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/mock.(*Hyperstart).readMessage(0xc420214d80, 0xc4203366e0, 0x46273c, 0xc4202ff128, 0xc4203366f8, 0xc420336728, 0x42880d)
00:09:04.270 	/home/jenkins/go/src/github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/mock/hyperstart.go:202 +0xa3
00:09:04.270 github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/mock.(*Hyperstart).handleCtl(0xc420214d80)
00:09:04.270 	/home/jenkins/go/src/github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/mock/hyperstart.go:237 +0x54
00:09:04.270 created by github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/mock.(*Hyperstart).Start.func1
00:09:04.270 	/home/jenkins/go/src/github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/mock/hyperstart.go:374 +0xb5
00:09:04.270
00:09:04.270 goroutine 225 [runnable]:
00:09:04.270 github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart.(*multicast).processBufferedReply(0xc4203c4820, 0xc42032d440)
00:09:04.270 	/home/jenkins/go/src/github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/multicast.go:120
00:09:04.270 created by github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart.(*multicast).listen
00:09:04.270 	/home/jenkins/go/src/github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/multicast.go:158 +0x1f9
00:09:04.270
00:09:04.270 goroutine 232 [runnable]:
00:09:04.270 github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart.(*Hyperstart).WaitForReady(0xc4203d9d80, 0x1, 0x11)
00:09:04.270 	/home/jenkins/go/src/github.com/clearcontainers/proxy/vendor/github.com/containers/virtcontainers/pkg/hyperstart/hyperstart.go:462 +0x11e
00:09:04.270 github.com/clearcontainers/proxy.(*vm).Connect(0xc4202ae690, 0x1, 0x11)
00:09:04.270 	github.com/clearcontainers/proxy/_test/_obj_test/vm.go:296 +0x138
00:09:04.270 github.com/clearcontainers/proxy.registerVM(0xc4200d9050, 0x8a, 0x8a, 0x90a580, 0xc4203c4640, 0xc4203f2240)
00:09:04.270 	github.com/clearcontainers/proxy/_test/_obj_test/proxy.go:244 +0x6f6
00:09:04.270 github.com/clearcontainers/proxy.(*protocol).handleCommand(0xc4202eb680, 0xc4202c7e98, 0xc4203c4690, 0x0)
00:09:04.270 	github.com/clearcontainers/proxy/_test/_obj_test/protocol.go:129 +0x1fb
00:09:04.270 github.com/clearcontainers/proxy.(*protocol).Serve(0xc4202eb680, 0xbc5340, 0xc42015c3b8, 0x90a580, 0xc4203c4640, 0xc4203c2370, 0xc42021ef88)
00:09:04.270 	github.com/clearcontainers/proxy/_test/_obj_test/protocol.go:200 +0x390
00:09:04.270 github.com/clearcontainers/proxy.(*proxy).serveNewClient(0xc4203ea280, 0xc4202eb680, 0xbc5340, 0xc42015c3b8)
00:09:04.270 	github.com/clearcontainers/proxy/_test/_obj_test/proxy.go:749 +0x1a8
00:09:04.270 github.com/clearcontainers/proxy.(*testRig).ServeNewClient.func1(0xc42034d340, 0xc42015c3b8)
00:09:04.270 	/home/jenkins/go/src/github.com/clearcontainers/proxy/proxy_test.go:162 +0x84
00:09:04.270 created by github.com/clearcontainers/proxy.(*testRig).ServeNewClient
00:09:04.270 	/home/jenkins/go/src/github.com/clearcontainers/proxy/proxy_test.go:164 +0x218
00:09:04.272 exit status 2
00:09:04.272 FAIL	github.com/clearcontainers/proxy	2.087s

This sounds similar to https://github.com/clearcontainers/runtime/pull/618 where we had to increase the runtime's unit-test timeout under Jenkins.

@jodh-intel let me give it a try

hit https://github.com/clearcontainers/runtime/issues/622
00:16:40.497 not ok 16 ctr execsync std{out,err}
00:16:40.501 # (in test file crio.bats, line 622)
00:16:40.506 #   `[ "$status" -eq 0 ]' failed
00:16:40.508 # 0
00:16:40.508 # time="2017-09-27 15:39:45.084800437Z" level=debug msg="[graphdriver] trying provided driver "aufs""
00:16:40.508 # time="2017-09-27 15:39:45.090753103Z" level=info msg="CNI network crionet (type=bridge) is used from /tmp/tmp.iNYRWFWnaY/cni/net.d/10-crio.conf"
00:16:40.508 # time="2017-09-27 15:39:45.090944302Z" level=info msg="CNI network crionet (type=bridge) is used from /tmp/tmp.iNYRWFWnaY/cni/net.d/10-crio.conf"
00:16:40.508 # time="2017-09-27 15:39:45.099257353Z" level=debug msg="Golang's threads limit set to 115110"
00:16:40.508 # time="2017-09-27 15:39:45.100341747Z" level=debug msg="sandboxes: []"
00:16:40.509 # time="2017-09-27 15:39:45.100676045Z" level=error msg="Failed to start streaming server: listen tcp <IP_ADDRESS>:10010: bind: address already in use"
00:16:40.509 # time="2017-09-27 15:39:46.230187199Z" level=debug msg="ImageStatusRequest: &ImageStatusRequest{Image:&ImageSpec{Image:redis:alpine,},}"
00:16:40.509 # time="2017-09-27 15:39:46.230356899Z" level=debug msg="parsed reference into "[aufs@/tmp/tmp.iNYRWFWnaY/crio+/tmp/tmp.iNYRWFWnaY/crio-run]docker.io/library/redis:alpine""
00:16:40.509 # time="2017-09-27 15:39:46.231719691Z" level=debug msg="ImageStatusResponse: &ImageStatusResponse{Image:&Image{Id:dd6245165e9b82aa39a453472158405e95c91da16db62757f8d1fb4e43118a96,RepoTags:[docker.io/library/redis:alpine redis:alpine],RepoDigests:[],Size_:27500208,Uid:nil,Username:,},}"
00:16:40.509 # time="2017-09-27 15:39:46.304956666Z" level=debug msg="ImageStatusRequest: &ImageStatusRequest{Image:&ImageSpec{Image:redis:alpine,},}"
00:16:40.509 # time="2017-09-27 15:39:46.305052166Z" level=debug msg="parsed reference into "[aufs@/tmp/tmp.iNYRWFWnaY/crio+/tmp/tmp.iNYRWFWnaY/crio-run]docker.io/library/redis:alpine""
00:16:40.509 # time="2017-09-27 15:39:46.305361064Z" level=debug msg="ImageStatusResponse: &ImageStatusResponse{Image:&Image{Id:dd6245165e9b82aa39a453472158405e95c91da16db62757f8d1fb4e43118a96,RepoTags:[docker.io/library/redis:alpine redis:alpine],RepoDigests:[],Size_:27500208,Uid:nil,Username:,},}"
00:16:40.509 # time="2017-09-27 15:39:46.365127918Z" level=debug msg="ImageStatusRequest: &ImageStatusRequest{Image:&ImageSpec{Image:mrunalp/oom,},}"
00:16:40.509 # time="2017-09-27 15:39:46.365293817Z" level=debug msg="parsed reference into "[aufs@/tmp/tmp.iNYRWFWnaY/crio+/tmp/tmp.iNYRWFWnaY/crio-run]docker.io/mrunalp/oom:latest""
00:16:40.509 # time="2017-09-27 15:39:46.365532015Z" level=debug msg="ImageStatusResponse: &ImageStatusResponse{Image:&Image{Id:38f60bbb34b0193f258cae850c962c74c4160be587b61c548672ee6caae12a24,RepoTags:[docker.io/mrunalp/oom:latest mrunalp/oom docker.io/library/mrunalp/oom],RepoDigests:[],Size_:5719481,Uid:nil,Username:,},}"
00:16:40.509 # time="2017-09-27 15:39:46.429641844Z" level=debug msg="ImageStatusRequest: &ImageStatusRequest{Image:&ImageSpec{Image:redis@sha256:03789f402b2ecfb98184bf128d180f398f81c63364948ff1454583b02442f73b,},}"
00:16:40.509 # time="2017-09-27 15:39:46.429749443Z" level=debug msg="parsed reference into "[aufs@/tmp/tmp.iNYRWFWnaY/crio+/tmp/tmp.iNYRWFWnaY/crio-run]docker.io/library/redis:latest@03789f402b2ecfb98184bf128d180f398f81c63364948ff1454583b02442f73b""
00:16:40.509 # time="2017-09-27 15:39:46.430104841Z" level=debug msg="ImageStatusResponse: &ImageStatusResponse{Image:&Image{Id:03789f402b2ecfb98184bf128d180f398f81c63364948ff1454583b02442f73b,RepoTags:[docker.io/library/redis:latest redis@sha256:03789f402b2ecfb98184bf128d180f398f81c63364948ff1454583b02442f73b docker.io/library/redis@sha256:03789f402b2ecfb98184bf128d180f398f81c63364948ff1454583b02442f73b],RepoDigests:[],Size_:19826844,Uid:nil,Username:,},}"
00:16:40.509 # time="2017-09-27 15:39:46.493388174Z" level=debug msg="ImageStatusRequest: &ImageStatusRequest{Image:&ImageSpec{Image:runcom/stderr-test,},}"
00:16:40.509 # time="2017-09-27 15:39:46.493491674Z" level=debug msg="parsed reference into "[aufs@/tmp/tmp.iNYRWFWnaY/crio+/tmp/tmp.iNYRWFWnaY/crio-run]docker.io/runcom/stderr-test:latest""


boards: qemu_x86_64: enable icount for CONFIG_MP_NUM_CPUS=1

QEMU icount does not work correctly when more than 1 CPU is used,
but works fine with only 1 CPU enabled. So we can enable icount
on qemu_x86_64 when CONFIG_MP_NUM_CPUS=1. Sanitycheck goes from
~158 seconds to ~113 seconds on my dev machine.
Signed-off-by: Daniel Leung<EMAIL_ADDRESS>

ultimately, I'd like to learn why the round-robin CPU scheduling in icount-enabled QEMU (all on a single host emulator thread) breaks stuff.

@andrewboie look at this case, qemu(with icount enabled) just has one vCPU thread working just like one core system, but the main thread just busy loop to wait other core's thread to run and never gives up CPU before checking test result, so qemu most likely doesn't run the spawned threads. From qemu TCG perspective, when translate target code to intermediate code, there is possibility that the checking result code is located at different TB with previous code so that other CPU thread can have chance to run and there may be a success result but there is no mechanism to make sure that. I think this can explain why it doesn't work with icount enabled on qemu for smp.
void test_coop_resched_threads(void)
{
        /* Spawn threads equal to number of cores,
         * since we don't give up current CPU, last thread
         * will not get scheduled
         */
        spawn_threads(K_PRIO_COOP(10), THREADS_NUM, !EQUAL_PRIORITY,
                      &thread_entry, THREAD_DELAY);

        /* Wait for some time to let other core's thread run */
        k_busy_wait(DELAY_US);

        /* Reassure that cooperative thread's are not preempted
         * by checking last thread's execution
         * status. We know that all threads got rescheduled on
         * other cores except the last one
         */
        for (int i = 0; i < THREADS_NUM - 1; i++) {
                zassert_true(tinfo[i].executed == 1,
                             "cooperative thread %d didn't run", i);
        }
        zassert_true(tinfo[THREADS_NUM - 1].executed == 0,
                     "cooperative thread is preempted");

        /* Abort threads created */
        abort_threads(THREADS_NUM);
        cleanup_resources();
}

but the main thread just busy loop to wait other core's thread to run and never gives up CPU before checking test result,

@wentongwu but isn't "giving up the CPU" fundamentally an OS abstraction? I would expect the CPU emulator to emulate instructions on each CPU round-robin, regardless of what the OS is doing.
In other words, it doesn't make sense to me that if we call k_busy_wait() on CPU 0, that nothing happens on CPU 1 the entire time. That seems like broken behavior. Is that really what's happening? We might want to talk to the QEMU devs, Peter has been very responsive and helpful in the past.

I didn't see a bug open on this so I opened https://github.com/zephyrproject-rtos/zephyr/issues/26868
This is a merged PR, let's conduct further discussion there.


Update jline, jline-terminal to 3.25.0

About this PR
📦 Updates

org.jline:jline
org.jline:jline-terminal

from 3.23.0 to 3.25.0
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

🔍 Files still referring to the old version number
The following files still refer to the old version number (3.23.0).
You might want to review and update them manually.
pom.xml

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.jline" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.jline" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, old-version-remains, commit-count:1

Superseded by #145.


fix: various calculator fixes and tweaks

Description :sparkles:
I'm about to make big changes on how the application is handled when moving towards Ahjo. Handling to accepted or rejected state will have three steps instead of just one. The calculator has been buggy and I have to make sure that it's ok before moving further from step 1.

Handle calculator error 500 instead of crashing the app
Raise error instead of fatally assert crash in Django
Do not show certain calculator elements if calculator state is not 💯  ✅

API branch is deployed to platta: https://helsinkilisa-pr2872.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

TestCafe result is success for https://helsinkilisa-ui-pr2872.dev.hel.ninja :laughing::tada::tada::tada:

TestCafe result is success for https://helsinkilisa-ui-handler-pr2872.dev.hel.ninja :laughing::tada::tada::tada:

API branch is deployed to platta: https://helsinkilisa-pr2872.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

APPLICANT branch is deployed to platta: https://helsinkilisa-ui-pr2872.dev.hel.ninja :rocket::rocket::rocket:

TestCafe result is success for https://helsinkilisa-ui-pr2872.dev.hel.ninja :laughing::tada::tada::tada:

HANDLER branch is deployed to platta: https://helsinkilisa-ui-handler-pr2872.dev.hel.ninja :rocket::rocket::rocket:

TestCafe result is success for https://helsinkilisa-ui-handler-pr2872.dev.hel.ninja :laughing::tada::tada::tada:

API branch is deployed to platta: https://helsinkilisa-pr2872.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

TestCafe result is success for https://helsinkilisa-ui-pr2872.dev.hel.ninja :laughing::tada::tada::tada:

HANDLER branch is deployed to platta: https://helsinkilisa-ui-handler-pr2872.dev.hel.ninja :rocket::rocket::rocket:


Update invitation.yml

Fixes #113

@sanjay-kv This was a unique workflow contributed by me and it's just contributed to only one repo i.e., your repo and it took us 2-3 days to build this so doesn't it make a 'level2/level3' contribution

I commented regarding this on the main repo, I will add all removed score back later June . Once all the program normalised score ready 2000. At this point if I publish it will count as spam.


current version of mapclassify in docs?

The docs list the current version of mapclassify as v2.1.1. The current (pre) released version is v2.3.0. Should the docs be rebuilt now or after the official release of v2.3.0? If the docs should be rebuilt now, I'll go ahead and make a PR.

I think we should wait for the release of 2.3. I have a start on updating the docs in #66.

resolved via #78


Can we show Pie chart Value out of slice instead showing inside the slice ?

Self explanatory question.
Can we show slice values of pie chart out side the slice and not in the slice ?
Thanks.

I think we'll be implementing that soon

Ok thanks.

I've written an algorithm to spread out labels on pie charts in a rather reasonable layout. It works by pushing out labels from each other but still trying to keep them aligned to their respective slice. I could push the feature in few days if needed (it's actually working on top of the original algorithm so I would prefer to add a property in 'somewhere' (haven't yet think about it) to control the application of the algorithm before pushing to master)

@danielgindi ,  does this feature have supported ? i check document , but not found .

@danielgindi  :+1:  for this feature.

@danielgindi :+1:  When can we expect this feature?

@BurhanMughal @yuercl  @kexoth @NSri  maybe you can try this pr:  #869 :)

This is now implemented in master


Code Quality: Fixed references to update service

Resolved / Related Issues
Items resolved / related issues by this PR.

Fixed references to update service

Validation
How did you test these changes?

[x] Built and ran the app
[x] Tested the changes for accessibility

Screenshots (optional)
Add screenshots here.

Nice!


tweak long line wrappings in 2 docs

Tweak long lines to keep consistent style, and easily recognizing PR changes if any update later
Other minor changes about consistency and grammar

content/en/docs/_index.md
content/en/docs/contribution-guidelines.md
content/en/registry/collector-extension-healthcheck.md

@windsonsea thanks! Question: did you run prettier to accomplish that or did you use a different tool/create the line breaks manually?

Hi, I manually create the line breaks now by following the current style. Do you have any suggestions about tools?

@windsonsea thanks! Question: did you run prettier to accomplish that or did you use a different tool/create the line breaks manually?

Hi, I manually create the line breaks now by following the current style. Do you have any suggestions about tools?

Manually is still good, but you can speed up the process by running npx prettier -w filename and then review the results. We are not doing this automatically right now, because some files might break, so what you can do is, that if you see a file with line wraps > 80 that you apply it, check the file and commit it.
cc @chalin

Yes, running Prettier is the way to go, as long as the markdown file doesn't use shortcodes (because Prettier doesn't understand shortcode syntax).


hibernate.default_schema don't work for sequences

When saving with session.persist(entity) I get an error saying the sequence (that set the serial PK for PostgreSQL DB) does not exists.
If I have this sequence in the public schema it does find it, so I know the issue is that selecting a sequence does not consider the schema configured by hibernate.default_schema.
If I update a record it will update correctly in the right schema.
@Entity
@Table(name = "tenants")
public class Tenant extends AbstractAdminOLTPEntity {

    @Id
    @SequenceGenerator(name="tenants_id_seq" , allocationSize=1)
    @GeneratedValue(strategy= GenerationType.SEQUENCE, generator="tenants_id_seq")
    @Column(name = "id")
    private Long id;

Can you show us how you've mapped the entity property that uses the sequence, please?

I don't know how but it is working after playing around with all kinds of things in the local PostgreSQL.
But the problem was there as I describe it.

@Entity
@Table(name = "tenants")
public class Tenant extends AbstractAdminOLTPEntity {

    @Id
    @SequenceGenerator(name="tenants_id_seq" , allocationSize=1)
    @GeneratedValue(strategy= GenerationType.SEQUENCE, generator="tenants_id_seq")
    @Column(name = "id")
    private Long id;

@DavideD Did you find a bug or did you just throw it to the next milestone and investigate later?
Do you have idea for workaround?

I've just label it and assigned it to myself so that I don't forget about it, but I haven't had time to look into this yet.
I will try to create a test this week.
As a workaround, you can try to set the attribute schema or catalog in @SquenceGenerator:
@SequenceGenerator(schema = "your_schema", ...)

Fixed.

Hey @gavinking @DavideD, FYI we have a claim in Quarkus here that this wasn't fixed. It would seem that calls to nextval do not mention the default schema in Quarkus.
Note that in order for default schema/catalog to work in Quarkus, they need to be generated late (basically at SessionFactory initialization), using a SqlStringGenerationContext , which would be a good practice for all generated SQL anyway. For ID generators in Hibernate ORM (don't know about reactive), that would mean generating SQL in org.hibernate.id.IdentifierGenerator#initialize (and definitely not in org.hibernate.id.IdentifierGenerator#configure).

Everything seems to work fine to me.
We test this via SequenceGeneratorDefaultSchemaTest and this is the log:
[Hibernate] create schema hr
[Hibernate] create sequence hr.test_id_seq start with 5 increment by 1
[Hibernate] create table hr.SequenceId (id integer not null, version integer, string varchar(255), primary key (id))

[Hibernate] select nextval('hr.test_id_seq')

[Hibernate] insert into hr.SequenceId (string,version,id) values ($1,$2,$3)
[Hibernate] select s1_0.id,s1_0.string,s1_0.version from hr.SequenceId s1_0 where s1_0.id=$1
[Hibernate] update hr.SequenceId set string=$1,version=$2 where id=$3 and version=$4
[Hibernate] select s1_0.id,s1_0.string,s1_0.version from hr.SequenceId s1_0 where s1_0.id=$1
[Hibernate] select s1_0.id,s1_0.string,s1_0.version from hr.SequenceId s1_0
[Hibernate] delete from hr.SequenceId where id=$1 and version=$2

This is the entity:
        @Entity(name = "SequenceId")
	@SequenceGenerator(name = "seq", sequenceName = "test_id_seq", initialValue = 5, allocationSize = 1)
	@Table(name = "SequenceId")
	public static class SequenceId {
		@Id
		@GeneratedValue(generator = "seq")
		Integer id;
       ...
       }

It seems to work fine to me.

I've tested it with the quarkus quickstart, isn't it enough?

It is, but I only ready that you did (in the Quarkus issue) after posting this.
Anyway, adding those tests would be nice, but is not urgent since this issue was apparently solved (again) in Reactive 2.0.
Thanks for looking into this.


Cannot use containers.Sequential() inside TimeDistributed()

Hi,
I am currently experiencing the issue that I cannot use a Sequential() container as the argument to the TimeDistributed() layer. See the dummy script below:
 1: input_size = 2
 2: dense_size = 10
 3:
 4: model = Graph()
 5: model.add_input(name="input_sequence", input_shape=(0, input_size))
 6:
 7: scorer = containers.Sequential()
 8: scorer.add(Dense(dense_size, input_dim=input_size, activation="relu"))
 9:
10: distributed = TimeDistributed(scorer)
11:
12: model.add_node(distributed, name="dense", input="input_sequence")
13: ...

An error is thrown when adding the TimeDistributed layer to the model (line 12 in this example):
Using Theano backend.
Traceback (most recent call last):
  File ".../src/KerasError.py", line 21, in <module>
    model.add_node(distributed, name="dense", input="input_sequence")
  File ".../keras/layers/containers.py", line 444, in add_node
    layer.set_previous(self.inputs[input])
  File ".../keras/layers/core.py", line 151, in set_previous
    self.build()
  File ".../keras/layers/wrappers.py", line 47, in build
    self.layer.set_input_shape(child_input_shape)
  File ".../keras/layers/core.py", line 222, in set_input_shape
    self.input = K.placeholder(shape=self._input_shape)
AttributeError: can't set attribute

However, it does work when I put the Dense() layer directly into the TimeDistributed Layer.
I guess the error has something to do with self.input of the Layer already being assigned (?!).
I have to note that I use a forked Keras repository with a few changes for my work but none at the relevant locations.
Simply switching to TimeDistributedDense() is not an option since I want to distribute more complicated combinations of layers than a simple Dense() layer.
Am I missing something about the order in which to add the models or about providing dimensionalities?

You could try:
 1: input_size = 2
 2: dense_size = 10
 3:
 4: model = Graph()
 5: model.add_input(name="input_sequence", input_shape=(0, input_size))
 6:
 7: scorer = containers.Sequential()
 8: dense = Dense(dense_size, input_dim=input_size, activation="relu")
 9:
10: scorer.add(TimeDistributed(dense))
11:
12: model.add_node(scorer, name="dense", input="input_sequence")

Thanks for your reply.
Unfortunately, I don't think this addresses the issue the way I hoped.
Your solution makes the use of the Sequential container redundant, while only allowing a single layer being passed to the TimeDistributed layer.
However, I intended to add several layers to the distributed layer like so:
 1: input_size = 2
 2: dense_size = 10
 3:
 4: model = Graph()
 5: model.add_input(name="input_sequence", input_shape=(0, input_size))
 6:
 7: scorer = containers.Sequential()
 8: scorer.add(Dense(dense_size, input_dim=input_size, activation="relu"))
 8: scorer.add(Dense(100, activation="relu"))
 9:
10: distributed = TimeDistributed(scorer)
11:
12: model.add_node(distributed, name="dense", input="input_sequence")
13: ...

I know that I can work around this problem by using multiple TimeDistributed layers, each containing a single (e.g. Dense) layer. However, I want to point out this issue as being a potential Bug in the Keras Framework, right?

Sorry I didn't noticed that you used Sequential from container. You should use Sequential from models.
So first, you can't add this container to a model. Then, wrappers are intended to be used around layers and not models.
You could take a look at the docstring for more informations.
You could use something like this:
def TimeDistributedSequential(model):
    for i, l in enumerate(model.layers):
        model.layers[i] = TimeDistributed(l)
    return model # not necessary but could be handy

input_size = 2
dense_size = 10

model = Graph()
model.add_input(name="input_sequence", input_shape=(0, input_size))
scorer = Sequential()
scorer.add(Dense(dense_size, input_dim=input_size, activation="relu"))
TimeDistributedSequential(scorer)

model.add_node(scorer, name="dense", input="input_sequence")
model.add_output(name='output', input='dense')
model.compile(optimizer='rmsprop', loss={'output': 'mse'})

The model compiles but I didn't test it.

Are you sure about the Sequential part?
I thought the whole point of having classes like container.Sequential is to wrap several layers in a single object that acts as a layer itself. containers.Sequential actually inherits from Layer.
Also, the documentation of the TimeDistributed Layer says that

it can be used with arbitrary layers

Since containers.Sequential is a Layer, I would expect it to work here, too.
But, I am a bit surprised that it works with model.Sequential, when it does not with its super class. Yet, adding a model to a graph as a node seems a bit counter intuitive to me.
Maybe @fchollet can clarify this?

Sorry again, I didn't thought about encapsulating a combination of layers when I first read your comment. You should be able to add it to a model.
Did you try to replace input_dim by input_shape?
One thing is that you have to define an input shape and Dense accepts only 2 dims. Since your input has 3 dims in your Graph I'm not sure how you could handle this part.


build(autoware_overlay_rviz_plugin): add missing ament_cmake_auto dependency

Description

This PR adds a missing dependency to ament_cmake_auto
Tests performed

Not applicable.
Effects on system behavior

Not applicable.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@xmfcx thanks for the quick review


Cannot deploy container

Hi everyone!
I just installed the LXDone on a new Opennebula installation following the installation tutorial, but when I tried to deploy the VM provided in the marketplace (ID: 7dd50db7-33c4-4b39-940c-f6a55432622f) it failed. Can any one help me, please.
The opennebula is configured as an stand alone server. The kvm driver is working and deploying VMs normally, and the 'lxc launch' command either.
VM log:
Mon Sep 25 18:11:28 2017 [Z0][VM][I]: New state is ACTIVE
Mon Sep 25 18:11:28 2017 [Z0][VM][I]: New LCM state is PROLOG
Mon Sep 25 18:11:29 2017 [Z0][VM][I]: New LCM state is BOOT
Mon Sep 25 18:11:29 2017 [Z0][VMM][I]: Generating deployment file: /var/lib/one/vms/14/deployment.0
Mon Sep 25 18:11:30 2017 [Z0][VMM][I]: Successfully execute transfer manager driver operation: tm_context.
Mon Sep 25 18:11:30 2017 [Z0][VMM][I]: Successfully execute network driver operation: pre.
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: Command execution fail: cat << EOT | /var/tmp/one/vmm/lxd/deploy '/var/lib/one//datastores/0/14/deployment.0' 'localhost' 14 localhost
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: deploy.py: ########################################
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: losetup: /var/lib/one/datastores/0/14/disk.0: Warning: file does not fit into a 512-byte sector; the end of the file will be ignored.
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: mount: wrong fs type, bad option, bad superblock on /dev/loop0,
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: missing codepage or helper program, or other error
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]:
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: In some cases useful info is found in syslog - try
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: dmesg | tail or so.
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: Traceback (most recent call last):
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: File "/var/tmp/one/vmm/lxd/deploy.py", line 154, in
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: apply_profile(profile, container)
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: File "/var/tmp/one/vmm/lxd/deploy.py", line 114, in apply_profile
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: lc.storage_context(container, contextiso)
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: File "/var/tmp/one/vmm/lxd/lxd_common.py", line 187, in storage_context
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: container.files.put('/mnt/' + i.name, i.content)
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: File "/usr/lib/python2.7/dist-packages/pylxd/container.py", line 78, in put
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: params={'path': filepath}, data=data)
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: File "/usr/lib/python2.7/dist-packages/pylxd/client.py", line 94, in post
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: self._assert_response(response, allowed_status_codes=(200, 201, 202))
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: File "/usr/lib/python2.7/dist-packages/pylxd/client.py", line 66, in _assert_response
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: raise exceptions.LXDAPIException(response)
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: pylxd.exceptions.LXDAPIException: file does not exist
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: ExitCode: 1
Mon Sep 25 18:11:31 2017 [Z0][VMM][I]: Failed to execute virtualization driver operation: deploy.
Mon Sep 25 18:11:31 2017 [Z0][VMM][E]: Error deploying virtual machine
Mon Sep 25 18:11:31 2017 [Z0][VM][I]: New LCM state is BOOT_FAILURE

oneadmin@max:~$ ll datastores/0/14
total 243076
drwxrwxr-x 2 oneadmin oneadmin        54 Sep 25 18:11 ./
drwxr-xr-x 3 oneadmin oneadmin        16 Sep 25 18:11 ../
-rw-rw-r-- 1 oneadmin oneadmin      3305 Sep 25 18:11 deployment.0
-rw-r--r-- 1 oneadmin oneadmin 248529635 Sep 25 18:11 disk.0
-rw-r--r-- 1 oneadmin oneadmin    372736 Sep 25 18:11 disk.1

lxc info:
config:
  core.https_address: <IP_ADDRESS>:8443
  core.trust_password: true
api_extensions:
- id_map
api_status: stable
api_version: "1.0"
auth: trusted
public: false
environment:
  addresses:
  - <IP_ADDRESS>:8443
  - <IP_ADDRESS>:8443
  architectures:
  - x86_64
  - i686
  certificate: |
    -----BEGIN CERTIFICATE-----
    MIIFPTCCAyWgAwIBAgIQVu8i4gpyY...
    -----END CERTIFICATE-----
  certificate_fingerprint: e6a7dd45....
  driver: lxc
  driver_version: 2.0.8
  kernel: Linux
  kernel_architecture: x86_64
  kernel_version: 4.4.0-96-generic
  server: lxd
  server_pid: 460
  server_version: 2.0.10
  storage: dir
  storage_version: ""

oneadmin@max:~$ lxc list
+--------+---------+------+------+------------+-----------+
|  NAME  |  STATE  | IPV4 | IPV6 |    TYPE    | SNAPSHOTS |
+--------+---------+------+------+------------+-----------+
| one-14 | STOPPED |      |      | PERSISTENT | 0         |
+--------+---------+------+------+------------+-----------+

oneadmin@max:~$ losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /vmfs/datastores/0/14/disk.0

root@max:~# mount /dev/loop0 /mnt/
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

root@max:~# dmesg | tail
[13435.322510] audit: type=1400 audit(1506372931.308:42): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="lxc-container-default" pid=63940 comm="apparmor_parser"
[13435.322520] audit: type=1400 audit(1506372931.308:43): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="lxc-container-default-cgns" pid=63940 comm="apparmor_parser"
[13435.322526] audit: type=1400 audit(1506372931.308:44): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="lxc-container-default-with-mounting" pid=63940 comm="apparmor_parser"
[13435.322532] audit: type=1400 audit(1506372931.308:45): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="lxc-container-default-with-nesting" pid=63940 comm="apparmor_parser"
[13574.967436] audit: type=1400 audit(1506373070.948:46): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/bin/lxc-start" pid=453 comm="apparmor_parser"
[13574.980193] audit: type=1400 audit(1506373070.960:47): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="lxc-container-default" pid=458 comm="apparmor_parser"
[13574.980205] audit: type=1400 audit(1506373070.960:48): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="lxc-container-default-cgns" pid=458 comm="apparmor_parser"
[13574.980213] audit: type=1400 audit(1506373070.960:49): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="lxc-container-default-with-mounting" pid=458 comm="apparmor_parser"
[13574.980220] audit: type=1400 audit(1506373070.960:50): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="lxc-container-default-with-nesting" pid=458 comm="apparmor_parser"
[15595.453903] audit: type=1400 audit(1506375091.368:51): apparmor="STATUS" operation="profile_load" profile="unconfined" name="lxd-one-14_</var/lib/lxd>" pid=24195 comm="apparmor_parser"

lsee@max:~$ sudo mkfs.ext4 /dev/loop0
mke2fs 1.42.13 (17-May-2015)
Discarding device blocks: done
Creating filesystem with 242704 1k blocks and 60720 inodes
Filesystem UUID: 997a0a16-69de-4b2c-b4bd-c56feb56d011
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

lsee@max:~$ sudo mount /dev/loop0 /mnt/
lsee@max:~$ ls -la /mnt/
total 13
drwxr-xr-x  3 root root  1024 Sep 25 19:27 .
drwxr-xr-x 23 root root   322 Sep 24 06:53 ..
drwx------  2 root root 12288 Sep 25 19:27 lost+found
lsee@max:~$ sudo ls -la /mnt/lost+found/
total 13
drwx------ 2 root root 12288 Sep 25 19:27 .
drwxr-xr-x 3 root root  1024 Sep 25 19:27 ..

I don't know if the following command should work, but anyway I tried:
oneadmin@max:~$ lxc start one-14
error: Error calling 'lxd forkstart one-14 /var/lib/lxd/containers /var/log/lxd/one-14/lxc.conf': err='Failed to run: /usr/bin/lxd forkstart one-14 /var/lib/lxd/containers /var/log/lxd/one-14/lxc.conf: '
  lxc<PHONE_NUMBER>3131.423 ERROR lxc_conf - conf.c:mount_rootfs:798 - No such file or directory - Failed to get real path for "/var/lib/lxd/containers/one-14/rootfs".
  lxc<PHONE_NUMBER>3131.423 ERROR lxc_conf - conf.c:setup_rootfs:1220 - Failed to mount rootfs "/var/lib/lxd/containers/one-14/rootfs" onto "/usr/lib/x86_64-linux-gnu/lxc" with options "(null)".
  lxc<PHONE_NUMBER>3131.423 ERROR lxc_conf - conf.c:do_rootfs_setup:3899 - failed to setup rootfs for 'one-14'
  lxc<PHONE_NUMBER>3131.423 ERROR lxc_conf - conf.c:lxc_setup:3981 - Error setting up rootfs mount after spawn
  lxc<PHONE_NUMBER>3131.423 ERROR lxc_start - start.c:do_start:811 - Failed to setup container "one-14".
  lxc<PHONE_NUMBER>3131.423 ERROR lxc_sync - sync.c:__sync_wait:57 - An error occurred in another process (expected sequence number 3)
  lxc<PHONE_NUMBER>3131.424 ERROR lxc_start - start.c:__lxc_start:1358 - Failed to spawn container "one-14".
  lxc<PHONE_NUMBER>3131.998 ERROR lxc_conf - conf.c:run_buffer:416 - Script exited with status 1.
  lxc<PHONE_NUMBER>3131.998 ERROR lxc_start - start.c:lxc_fini:546 - Failed to run lxc.hook.post-stop for container "one-14".

Any Idea why I' m getting this problem?
Thanks!

It seems a problem with the image in marketplace. It's compressed and the driver it's trying to mount a .gz file. As a workaround you can download the image from marketplace, decompress it and upload the .img file to OpenNebula datastore. This will work just fine :)
We will fix this problem as soon as possible.

[SOLVED]
It was a problem with the image indeed.
I downloaded the @jmdelafe image  and tried to mount as a loop device and it worked. So I upload it as path to opennebula and it work just fine.
Thank you @jmdelafe I will try with the marketplace image too as you said.


GCS parsing issue on Linux when using special characters

I use both Foundry VTT and GCS on Linux (Ubuntu 20.04.4)
When importing .gcs files directly into foundry (without exporting them as .xml), all special characters from my language, Portuguese, become other symbols (usually two symbols). Characters such as á, à, ã, â, ç, õ, etc. Changing the module's settings to use UTF-8 made no difference.

It should say "parça"

Here it should say "Português"

Many others here like "Japão","não", "lá", "até", "organização". (some are correct because I started to fix them manually, then I gave up, knowing that I'd lose it with the next import),
Chris tried to recreate the issue, but his import worked on Windows, which makes this likely to be a Linux thing.
I can still use the "old way" of exporting to XML and importing, but I lose much of the usefulness of being able to update the sheet on GCS quickly and import it immediately.
The problem mas also reported to Rich on the GCS Discord server, but the apparent conclusion is that it's a problem in the parsing on the GURPS Game Aid Side. Here is a screenshot of the discussion:

I've also attached my GCS files for testing.
BrazilianGCSfiles.zip

This may have been fixed by this update: https://github.com/crnormand/gurps/pull/1456

LOL, we aim to please.    You might try deleting the token, and creating a new one by dragging it from the Actor tab.   Sometimes the tokens become corrupted.


chargen fields not submitting

we're still seeing development information in the bottom of the page, and certain dropdowns just do not update (or the submit button isn't working), none of which is a priority issue, but if we could update the JSP to not link to the chargen page and just allow base character "creation" (name + troupe) that should be enough.

All of the fields should be updating in the next release.
Also, I disagree with the idea of removing the character management link.  For the first round of UAT testing, we need to emphasize that flushing out defects and improvements in the admin management is priority, but I don't want to discourage people from poking at stuff.

Checked against UAT 18c38f6 - appears to have been resolved.


Bug Report - Enable DDoS Std policy requires permissions on the central plan for workload owners

Describe the bug
When a workload owner of an Online LZ subscription wants to create a new Virtual Network, they get an error similar to this:

(LinkedAuthorizationFailed) The client 'XX' with object id 'c0602d84-4705-405c-a897-0c4718407f9b' has permission to perform action 'Microsoft.Network/virtualNetworks/write' on scope '/subscriptions/{guid}/resourceGroups/bug25903-test-rg/providers/Microsoft.Network/virtualNetworks/dapazd-vnet'; however, it does not have permission to perform action 'Microsoft.Network/ddosProtectionPlans/join/action' on the linked scope(s) '/subscriptions/{guid}/resourceGroups/eacp-ddos/providers/Microsoft.Network/ddosProtectionPlans/eacp-ddos-norwayeast' or the linked scope(s) are invalid.
  Code: LinkedAuthorizationFailed
  Message: The client 'X' with object id 'c0602d84-4705-405c-a897-0c4718407f9b' has permission to perform action 'Microsoft.Network/virtualNetworks/write' on scope '/subscriptions/{guid}/resourceGroups/bug25903-test-rg/providers/Microsoft.Network/virtualNetworks/dapazd-vnet'; however, it does not have permission to perform action 'Microsoft.Network/ddosProtectionPlans/join/action' on the linked scope(s) '/subscriptions/{guid}/resourceGroups/eacp-ddos/providers/Microsoft.Network/ddosProtectionPlans/eacp-ddos-norwayeast' or the linked scope(s) are invalid.

I assume this error is caused by the fact that ALZ reference implementation (accelerators) is using a centralized DDoS protection plan deployed to the Connectivity subscription, where a regular workload owner doesn't have any access. The requirement for such permission is documented here.
How can this issue be addressed? The obvious option is to grant Microsoft.Network/ddosProtectionPlans/join/action permission (e.g., by creating a custom role) for the central DDoS Plan to all workload owners / users but this might not scale well, since people will come and go.
Screenshots

Hey @pazdedav,
Thanks for raising.
Couple of questions if you don't mind

Can you confirm the object ID of: c0602d84-4705-405c-a897-0c4718407f9b is the user trying to create the VNET and would be the app/workload owner for example?
Do you think creating a custom role definition with the below actions and assigning it over the DDoS Plan in the Connectivity Subscription is something customers would be okay with as the fix from a security standpoint?

Microsoft.Network/ddosProtectionPlans/read - so they can see it at least and create support tickets against it if required?
Microsoft.Network/ddosProtectionPlans/join/action - so they can perform the join action for their VNETs?

Alternatives

Discuss with the DDoS PG (who own the policy) about making this a DINE policy instead so its always triggered after the VNET is created and therefore the Managed Identity assigned to the DINE policy assignment can have the required permissions only and not giving RBAC to other users as per suggestions above

We could also make it an ALZ custom DINE policy in the gap if PG conversation takes too long

Let me know your thoughts
Cheers
Jack

Thanks @pazdedav
On the DINE side as it's a post deployment operation rather than part of the initial create operations (which happens as the user making the request) then the managed identity associated to the DINE policy would be the only identity that needs permissions.
You could also do the same for modify as a remediation task as they work the same as DINE. But the issue here is that modify is trying to modify the PUT request as the user makes it which means it's seen as the user making the PUT rather than a managed identity (as would be used if it was a remediation task).
Hence my suggestion around DINE as would always happen post VNET creation as the managed identity which could be granted permissions.
On the custom RBAC though I think this could be easily done with groups to assign all LZ owners too. One would likely already exist for potential communications around the companies azure platform for example.
Thoughts with these pieces of additional information?

Thanks for additional input.
I misunderstood you first, but I got it now. You would like the PG to create a new built-in DINE policy that would enable a centralized DDoS plan, so we could remove the assignment of current Modify policy that is blocking users from even creating VNets. I wonder if we are dependent on the PG here or if this could be done by the ALZ team in the same way that all other ALZ policies were created ;)
Our subscription vending process is creating new AAD groups and assigns the requestor as owner (to manage group membership), so we would either need to do an extra role assignment of that custom role for the plan as part of the workflow or we would need to add this group to some top-level group that would have that role assignment done in advance. We (the platform team) don't know our customers/users in advance, unless we want to create some dynamic AAD group for essentially all (Azure) users in the company.
I thought for a while that alternatively, we could have an event-driven automation that would add each new VNet to the plan asynchronously (not by using a policy but with Event Grid + Functions), but this wouldn't work, since every change of VNet properties done by the user would still require the join permission on that plan. Just thinking about it, wouldn't this requirement mean that the DINE policy alone won't work? Even if it adds the DDoS plan property after the initial request passes, any subsequent VNet modification by a user would fail due to the lack of that join permission?

The DINE policy would run all its activities as its own identity so as long as that identity alone is granted the join action on the DDoS plan and has permissions on the VNETs we are all good. Nothing would run as the user with DINE.
And you are right, we could investigate doing it ourselves in ALZ, but we try to avoid where possible as built-in makes life easier for all involved (us, customers, etc.) - (I hinted towards this in my first reply 😁)

Thank you @jtracey93. I am however still struggling to see, how the "DINE route" alone would work without assigning a custom role with join permissions to users.
This is how I envision this workflow would work (or not):

A user in a landing zone (without any permissions on the DDoS plan) would create a new VNet. Let's say in the Portal. Since we would remove the current Modify policy for DDoS, this request would be accepted and processed.
A DINE policy would kick in with a Managed Identity (and permissions to both the landing zone and the DDoS plan) and update the VNet with DDoS plan property (join operation). So far so good.
When a user wants to modify properties of that VNet later, this operation/request would, IMO, fail, because Once a DDoS Protection Plan has been enabled on a Virtual Network, subsequent operations on that Virtual Network still require the Microsoft.Network/ddosProtectionPlans/join/action action permission. as documented here. The user trying to make that change does not have that permission and the DINE policy would not be applied (since the DDoS property already exist on the VNet resource).

Perhaps I misunderstood that requirement from the DDoS documentation, but I guess we would know for sure once we have that DINE policy in a test environment :)

Ah that is a very important point i glazed over @pazdedav. You are indeed correct about the note of:

Therefore, DINE would work initially but subsequent updates to the VNET would be an issue I suspect from that note (something to test though)
It'll all depend on how the VNET RP handles a partial put of just the DDoS plan property.
As you say one to test. Do you fancy testing this out and reporting back? (fine if not, but thought you may be interested?)

I could try to test a scenario (without having a DINE policy in place), where I would have two users:

One with rights on both the LZ and DDoS plan to create the VNet and "join" it to the plan.
Another user with e.g. Contributor rights in the LZ but not on the DDoS plan. I would modify some properties of the VNet to see what happens.

What do you think about my last comment, @jtracey93 ?

Another interesting question is, what would that DINE policy deploy? Both the DDoS plan and the VNet would already exist.

Even if we decide to create a new DINE policy, it is not clear to me what resource it would deploy, since both components would be in place already.

If you can test my suggestion 2 (that I shared above here: https://github.com/Azure/Enterprise-Scale/issues/1053#issuecomment-1254131060) around RBAC that would be great.
At least thats a workaround validated 👍
As for the DINE stuff it will be the VNET that we would do a PUT on to add the DDoS plan to the VNET. But this would also need testing. Hence my comment around the VNET RP and wondering how it would behave. We can test that next 👍

@pazdedav How did the testing go?

Hi @jtracey93
I was able to test this policy today and here are my findings:

As described in the above comments, assigning the policy in Modify mode only works if the user creating the VNet has atleast  Microsoft.Network/ddosProtectionPlans/join/action permission on the DDOS plan.
For existing VNets, one needs to create the remediation task to add DDOS Plan to existing VNets. This works as the Managed Identity created during the policy assignment is added with Network Contributor role on the scope.
I was able to create a custom role with just Microsoft.Network/ddosProtectionPlans/join/action permission with Modify policy enabled and Vnet creation  by the user (network contributor role on just the test resource group)succeeded. Although I did not try the cli/powershell, however via portal disabling the DDOS plan from Vnet errored out with the message that user doesnot have join permission on DDOS Plan ( I guess the error message needs to be updated with correct permission )
After adding the VNet to the DDOS Plan either manually or using the remediation task, the user (with network contributor role to the ResourceGroup/vnet & no access to DDOS Plan)  was unable to add a new address space to the existing VNET, however adding a new subnet/modify subnet/ adding bastion host (public IP for the bastion was added to the DDOS Plan) succeeded.

So, we can:

Enable DINE (DeployifnotExists) mode for the policy definition with option of automatically creating the remediation task for non-complaint resources to add existing VNETs to the DDOS Plan, however, this would create a limitation for users with no access to the plan to not able to do certain tasks on the VNET ( e.g adding new address space). I am not sure if there are other tasks that would fail.  So we will need to add in the documentation that users managing VNETs will need the join permission on the DDOS Plan unless there is a way to work around it.

For customers, that have a central team managing the VNETs adding DDOS Plan might not be an issue, however for customer going with subscription democratisation, they would not want to give this access to application users.

Story created for policy refresh planning AB#30269

We have confirmed that using DINE is destructive and potentially dangerous to use to apply changes to a virtual network, (e.g. enabling only a DDOS plan on a virtual network, will reset all other parameters incl. address space, subnets, etc). We have escalated the issue to PG, but have no updates as yet.

We've tried multiple paths to ask engineering to improve this experience and provide additional features/mechanisms to enable the scenario you've highlighted, but unfortunately our feedback is not being prioritized. We'll keep up the pressure, but in the short term we are dependent on engineering enhancements.
As ALZ team cannot improve the experience directly, will be closing the issue. Feel free to reopen or open a new one should you have further input.


Switch to new download links where possible

Can we update the other links too? Or I guess we can condense them?

I think I resolved this in another commit, closing. Please re-open if anything was missed


add performance analysis docker-compose setup and script

motivation: prepare to run performance tests in ci
changes:

add performance-test docker-compose task
add script that can parse the performance test suite results and compare between two result-sets
add generic shell docker-compose task

https://ci.swiftnio.io/job/swift-nio2-performance/plot/

@swift-nio-bot test this please

@weissi @Lukasa this is ready for review

@Lukasa / @tomerd happy with this too but Tom asked me to not merge yet yesterday.

ok actually, Tom said it's ready for review


Proposal: get rid of license

The license stanza was thought out in the context of fonts and is nothing but a curiosity for apps (especially we not being about discoverability, and all).
license is (at the time of this writing) missing from just 284 casks in the main repo (from a total of 2937).
Rationally, though, there’s no context in which we currently use its information, nor is any real context really planned, nor is anyone eager to do it. license is just there, it exists. However, I argue the license stanza is worse than useless, it’s actively harmful. For one, it is required, which makes absolutely no sense for user taps (which I believe we should encourage and have many times been vocal in thinking it is one of the best features of homebrew), but it also delays submissions, as users not filling it up/filling it up wrongly it’s a frequent point of friction for contributions.
Pinging @caskroom/maintainers, and I’ll specifically ping @victorpopkov and @Amorymeltzer as they both did a bunch of these.

No strong opinion on the matter - we could compromise by just making it optional, but that leads quickly to the path of decay and uselessness, so a firm decision one way or another is better.

I actually really like the idea of removing the license stanza. Having those just makes the cask maintainment more complicated and there is no gain of having those. So I'm good with proposal of removing them.

Came here to defend the stanza but couldn't come up with a reasonable use case.[1]  I agree wholeheartedly that it was weird for it to be required, especially with the unknown and todo workarounds.  I'll miss it — a curiosity is of course interesting, plus I like the information — but there's probably not the utility so I'm fine with the removal.  Some follow-up musings (since I seem to be into lists these days):

Going off the idea of not removing functionality, wouldn't the actual result here amount to not making them required, removing it from all casks, but allowing the functionality to remain?
I suppose one idea would be to revamp the concept of license to merely gratis, freemium, commercial and the like[2]; that would allow users to audit software know what they're getting into with a cask without being too onerous.[3]
One potential advantage I suppose, since we blindly accept licensing agreements, was offering some auditable idea of what you would be agreeing to by installing.  If licenses are to be done away with entirely (i.e. not item 2 above) we would likely be making available much the same information, but in a very different manner and only after you'd gone through the process of downloading and attempting an install (aka failing late rather than early).

1: It's helpful for users auditing casks and likely very beneficial for users maintaining large systems with specific requirements, but the former doesn't really happen and the latter is really specific and not something they'd rely 100% on hbc for.
2: Fairly certain I've argued against this in the past.
3: That leans the way of discoverability, but as a side effect and not a goal, which is okay; arguably discontinued, depends_on, and MacOS.release allow for discoverability.  Auditing is useful, see point 3 above.

@Amorymeltzer To address your points:

Not quite. We would yes not make it required and remove it from all casks, but not allow functionality to remain. Instead, it should actively inform the user the option is deprecated.
gratis, freemium, commercial would still be too much (even with those I see confusion). If they were just closed, oss, other, then perhaps it’d be manageable. They wouldn’t be that much useful, though. And again, since the stanza was introduced because of fonts, limiting it would make it useless in that sense as well. As for footnote 3, those options do indeed allow for discoverability, but as an unavoidable side-effect to something else useful. Not so with license.
We don’t want to blindly accept those, though, and to consider this it’s useful to think of the system as how we want it to work, not how it currently does (“skate where the puck is going to be” and all that razzmatazz). Either way, the licenses you’d need to know about the most (closed), are the ones we actually can tell you about the least just by giving you a symbol, as they will all be specific to their own software.

What about fonts, though?  I don't bother with them, but is this something that never really materialized to an issue on that front, or...?

Since license isn’t really usable anywhere, it never really made a difference there as well. To submissions there, they’re usually just the same amount of hassle. Sometimes even more, since it’s not uncommon for fonts to have no license other than the author mentioning in passing on the website “you can use it in personal and commercial projects”, or many times having nothing at all.
That’s another big issue of license. In some places it defines the code, the innards of what you’re getting (software), how you can modify it, while in others it defines usage (fonts), in which context you can use it.
We also were always straightforward about licenses being simply a guideline (i.e. “we’re not lawyers and make no promises to the accuracy of these, you should still check them for yourself”), and not intended to be accurate to the point of minutia (different GPL licenses, despite having so widely different versions they fiercely divide proponents in different camps, are all bundled in :gpl).

(i.e. “we’re not lawyers and make no promises to the accuracy of these, you should still check them for yourself”)
Indeed.  Much as I may enjoy license, after zap it's probably the most likely stanza to be erroneous, and at least zap is still useful in a partial form.

Going to change my stance on this - license is nice, and it doesn't really kill us to have in terms of overhead. I would propose making it optional, though, to account for user taps, and then just encourage it to be filled out in Casks submitted to the main repo (as is already done with the comment, no need for more changes there).

it doesn't really kill us to have in terms of overhead.

Speaking strictly for myself, yes it does. To me personally, it is a major pain. And I do mean major. It’s not fun going to a repo of something I’ve never heard of and have interest in using to grill the developer on the license. Or asking a user “is this a free app that works indefinitely but with limitations that can be removed by paying?” (freemium apps are frequently only gratis), or having to check a :oss license to make it more specific.
As for making it optional and encourage it on the main repo, I’m strongly against that. It’d be akin to making name optional, except the stanza would be even more useless. Why would anyone ever fill a field that has no real use and isn’t mandatory? It’d fall in disuse, and having it half-assed is the worse possible outcome. That’s what :unknown is for.
I say we either keep it as is, or get rid of it. Compromising is not a good solution in this case.

#17155, #17156, #17157, #17158 have examples of the (as I see it, useless and harmful) back and forth license causes. @jawshooah had to check the actual license, initiate a discussion with @SirDap to confirm why that license was picked, ask for it to be rectified, and explain our reasoning (that is on the documentation, even).

Another point against license, it being wrong or outdated and being likely the last stanza to ever be fixed (since it doesn’t affect usage at all).
@jawshooah Do you have an opinion on this issue as a whole?

Sorry, haven't responded so far as I have no strong feelings one way or the other. I do see the value in removing them though, and not much in keeping them around. We can just deprecate the core DSL methods associated with it.

Closing in favour of https://github.com/caskroom/homebrew-cask/issues/17437.


Fix check pod gated logic

The pod-gated logic takes a boolean as input and later performs a check with the thought not to enter the method when not required.  With changes in design, such logic is unnecessary and needs to be simplified so as not to take boolean input.

solved by #89


Added TF Module CookieCutter by DualSpark

I am not the owner of the original repo, however after stumbling around for a Terraform Module I found this one by DualSpark. https://github.com/DualSpark/cookiecutter-tf-module I'd love to include it in the Docs.

Failure on the Nightly Build, Green on the rest.

Current coverage is 100% (diff: 100%)

Merging #843 into master will not change coverage

@@           master   #843   diff @@
====================================
  Files          17     16     -1
  Lines         685    657    -28
  Methods         0      0
  Messages        0      0
  Branches        0      0
====================================
- Hits          685    657    -28
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last update b0d6469...86d75a8

Thanks @VDuda :)


Alternative to dynamically build a new cluster and deploy to it

We need to spin up new clusters on-demand and deploy builds there to run as a one-time deal. The cluster and worker nodes will tear down after it is completed. The reason is, it requires super huge nodes (GPU level) to run for hours for each run. We do not want to keep the clusters running with huge nodes as wasteful resources with preset clusters.
Currently, we have an automation to build a cluster with new nodes and join to the cluster dynamically using Rancher API and automation.
The problem is rancher CLI is used to run the rancher kubernetes deployment.

First of all, rancher CLI requires preset context using "rancher context switch" to deploy with "rancher kubectl". Switching context would switch all pipelines concurrent on the CI runners. Only the on-demand cluster needs to go to a new context.
There is no clean way to switch context cleanly from rancher CLI. "rancher context switch" is an interactive command. To lookup the new context as a script would require and interactive mode. A simple context list option would be helpful. I also tried "rancher project ls" which only list current context, and "rancher clusters" which does not provide project_id to switch context.

What would be the best alternative to create new clusters on demand, deploy application to new cluster, run, and then tear down?
Result:
Other details that may be helpful:
None
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):

rancher version v2.0.2
rancher/rancher version 2

Installation option (single install/HA):

Both singleton and HA

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported):
Machine type (cloud/VM/metal) and specifications (CPU/memory):

Cloud

Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.5", GitCommit:"32ac1c9073b132b8ba18aa830f46b77dcceb0723", GitTreeState:"clean", BuildDate:"2018-06-21T11:46:00Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:08:19Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

Docker (use docker info):

Docker version 17.12.1-ce
Containers: 20
 Running: 0
 Paused: 0
 Stopped: 20
Images: 66
Server Version: 17.12.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9b55aab90508bd389d7654c4baf173a981477d55
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.27-14.33.amzn1.x86_64
Operating System: Amazon Linux AMI 2017.03
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.798GiB
Name: ip-10-101-1-15
ID: VCQW:5ZDI:3ZZZ:7CJV:7CIF:QO6R:JOW2:CSZN:RQBS:ENMX:CF5D:5RE2
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 18
 Goroutines: 32
 System Time: 2018-10-29T23:12:24.7121145Z
 EventsListeners: 0
HTTP Proxy: http://proxy.ext.ray.com:80
HTTPS Proxy: http://proxy.ext.ray.com:80
No Proxy: rancher4-singleton,<IP_ADDRESS>
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 <IP_ADDRESS>:5000
 <IP_ADDRESS>/8
Live Restore Enabled: false

Thanks for the report. I believe both issues are addressed in https://github.com/rancher/rancher/issues/15692

Can I run the "rancher context switch" just to grab the list w/out the prompt? I am doing everything from a fully automated aspect, hoping to not require to be in interactive mode to select a context manually.


Python 3.10 compatibility for 1.3.x branch

What do these changes do?
This is a workaround for a bug in Python 3.10: https://bugs.python.org/issue45416. Plus minor updates in CI.
The target branch is obviously wrong since I found no active branch for 1.3.x releases. I hope is not means that 1.3.x is not maintained anymore :)
I see there are a lot of checks are failed. I guess we'll see meaningful results once a correct target branch is created.
Are there changes in behavior for the user?
No
Related issue number
None
Checklist

[x] I think the code is well written
[x] Unit tests for the changes exist (current tests are OK I think)
[ ] Documentation reflects the changes
[x] If you provide code modification, please add yourself to CONTRIBUTORS.txt

The format is <Name> <Surname>.
Please keep alphabetical order, the file is sorted by names.

[x] Add a new news fragment into the CHANGES/ folder

name it <issue_id>.<type> (e.g. 588.bugfix)
if you don't have an issue_id change it to the pr id after creating the PR
ensure type is one of the following:

.feature: Signifying a new feature.
.bugfix: Signifying a bug fix.
.doc: Signifying a documentation improvement.
.removal: Signifying a deprecation or removal of public API.
.misc: A ticket has been closed, but it is not of interest to users.

Make sure to use full sentences with correct case and punctuation, for example:
Fix issue with non-ascii contents in doctest text files.

we don't support major version 1 anymore; just a note, if we did, I don't think it'd be worth the PR (which is still neat regardless!) since Python 3.10.0 was just released and hopefully the patch comes in 3.10.1


'Go to Definition' for relative imports not resolving directly to the appropriate module

Let's say I have pkg and pkg.subpkg, both packages. I also have pkg.mod and pkg.subpkg.submod, both modules. If I do from .. import mod from within pkg.subpkg.submode I get asked which package to resolve to -- pkg/__init__.py or pkg/mod.py -- even though pkg.__init__ is empty. I would expect the lack of ambiguity to not ask me which package to resolve to.
Attached are the test files I was using.
pkg.zip

To verify with https://github.com/Microsoft/python-language-server/pull/546


Fix #3090: Better default settings for custom sbt configurations.

Previously, some settings involving in Compile or in Test were defined in the project-level settings. We now define them from scalaJSCompileSettings and scalaJSTestSettings, so that they are automatically and accurately applied when those sets of settings are reused on custom sbt configurations (e.g., IntegrationTest).
We also make sure that those settings do not hard-code the -test suffix, but rather derive it from the current configuration name.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/4209/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/5612/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://scala-webapps.epfl.ch/jenkins/job/scalajs-pr/4210/
https://scala-webapps.epfl.ch/jenkins/job/scalajs-matrix-build/5613/
Test PASSed.


Update research section on character count component

Mention the updates made in 2022, and link out to David's excellent blog post a GitHub issue comment which has more detail. Clarify that previous research (mentioned in the wiki link) was from 2017.

It’ll need a review and approval from @calvin-lau-sig7 (or someone else on the team) now.


Fix mixed display styles for the breadcrumb bar

The breadcrumb bar had varying vertical padding in different places after removal of the logo. This is now fixed and the displaying of the breadcrumb bar simplified.

Codecov Report

Merging #750 (3394e5e) into main (0a9525e) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main     #750   +/-   ##
=======================================
  Coverage   79.41%   79.41%
=======================================
  Files          28       28
  Lines        1064     1064
  Branches       41       41
=======================================
  Hits          845      845
  Misses        212      212
  Partials        7        7

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


waveguide_evolution for time-dependent Hamiltonian

Hi,
(This is just a minor suggestion)
It seems that waveguide_evolution does not work for the time-dependent Hamiltonian. I figured out that we can use timeevolution.schroedinger_dynamic to do the simulation.
Is it possible to make waveguide_evolution supporting the time-dependent Hamiltonian, so that the interface could be unified?
Thank you very much!

Hi,
Thanks for the suggestion and pointing this out. Perhaps this should be addressed in the documentation. Schroedinger_dynamic is the way one would add time-dependency, and in fact, waveguide_evolution is just a wrapper for calling the solver, so its perfectly possible to do so.
I also want to add, that one can utilize TimeDependentSum from the QuantumOptics.jl package which is a very neat and efficient way to include time dependency with waveguide operators. If you are interested in an immediate solution, then you can see how it could be implemented in the following (here I use time dependency to simulate the system considered in: https://www.nature.com/articles/s41534-022-00604-5 )

using WaveguideQED
using QuantumOptics
using PyPlot

#parameters are the same as in fig. 4
Ωg =1
τg = 4 * log(2)/Ωg
g = 0.4 * Ωg
κc = 6*Ωg
Ω0 = 15*g
Tin = 4.3/g

times = 0:0.1:16/g
dt = times[2] - times[1]

#Create waveguide basis
bw = WaveguideBasis(1,times)

#Deine basis of cavity
bc = FockBasis(1)
#Two level system is just fockbasis cutoff at 1. One could also use spinbasis for three level system.
be = FockBasis(1)

#Define operators
#Cavity A operators
a = identityoperator(be) ⊗ identityoperator(bc) ⊗ destroy(bc) ⊗ identityoperator(bw)
ad = identityoperator(be) ⊗ identityoperator(bc) ⊗ create(bc) ⊗ identityoperator(bw)
#Cavity B operators
b = identityoperator(be) ⊗ destroy(bc) ⊗ identityoperator(bc) ⊗ identityoperator(bw)
bd = identityoperator(be) ⊗ create(bc) ⊗ identityoperator(bc) ⊗ identityoperator(bw)
#Emitter operators
s =  destroy(be) ⊗ identityoperator(bc) ⊗ identityoperator(bc) ⊗ identityoperator(bw)
sm =  create(be) ⊗ identityoperator(bc) ⊗ identityoperator(bc) ⊗ identityoperator(bw)
#Waveguide operators
w = destroy(bw)
wd = create(bw)
#Waveguide-cavity operators
adw = identityoperator(be) ⊗ identityoperator(bc) ⊗ create(bc) ⊗ w
wda = identityoperator(be) ⊗ identityoperator(bc) ⊗ destroy(bc) ⊗ wd

#Define time independent part of Hamiltonian (from line 3 in npj)
H0 = im*sqrt(κc/dt)*( adw - wda ) + g*( b*sm + bd*s )

#Define input state function (gaussian)
function xi_in(t, t0, τg)
    sqrt(2/τg)*(log(2)/pi)^(1/4)*exp(-2*log(2)*(t-t0)^2/τg^2)
end

#Define input state with the onephoton state in waveguide and zero excitations in everything else.
psi_in = fockstate(be, 0) ⊗ fockstate(bc,0) ⊗ fockstate(bc,0) ⊗ onephoton(bw, xi_in,Tin,τg)

#Now we define the time-dependent part of the Hamiltonian. Which is the control field Λ(t) and the detuning Ω(t).

#Used to define control functions, not part of original parameters
Tcut1 = 6/g
Tcut2 = 10/g
t_control = 3/g

#Turn detuning off during middle of pulse
function Ω(t)
    if t < Tcut1 || t > Tcut2
        return Ω0
    else
        return 0
    end
end

#Define control field Λ(t) (not optimum just chosen as a gaussian) before and after loading.
function Λ(t)
    if t < Tcut1
        return κc/10*xi_in(t, 3/g, τg)/xi_in(τg, 3/g, τg*3)
    elseif t>Tcut2
        return κc/10*xi_in(t, 12/g, τg)/xi_in(τg, 3/g, τg*3)
    else
        return 0
    end
end

#define time-dependent part of Hamiltonian
H1 = TimeDependentSum(Ω => sm*s,Λ=>a*bd,Λ=>ad*b)

H = H1+H0

tout, ψ = timeevolution.schroedinger_dynamic(times, psi_in, H;d_discontinuities=times)
#Get the final state
psi_end = OnePhotonView(ψ[end])

psi_in_plot = OnePhotonView(psi_in)

#Plot results
fig, ax = subplots(1,1,figsize=(9,4.5))
ax.plot(times*g,τg * psi_in_plot,label="Input τg ξin(t)","k-")
ax.plot(times*g,τg * psi_end,label="Output τg ξout(t)","k--")
ax.plot(times*g,Λ.(times)/κc,label="Control field Λ(t)/κ","r-")
ax.plot(times*g,Ω.(times)/max(Ω.(times)...),label="Control field Ω(t)/Ω0","b-")
ax.set_xlabel("t [1/g]")
ax.set_ylabel("Normalized units")
ax.legend(fontsize=12)
tight_layout()

Sorry for the delay. Yes I realized how to use the quantumoptics function, but it would be great if you can make them unified as one interface! Thank you very much!


Bugfixing Deployment method without hana base-host-setup

Changes some small things for automatical testing

First step done -- Cleaning up in next release


.doccarchive Documentation

Creating my API with the new 0.1.0 release 🎉 and Xcode can generate a .doccarchive of the entire generated package.
If this is how CreateAPI wants to officially recommend/support for generation documentation we should add that.

Nice!
I haven't generated a doccarchive so I'm not sure how it works, but maybe a package option to include configure the swift-docc-plugin plugin in the generated package?

There are a few ways to generate documentation, so we can list them. In my instance I simply used Product -> Generate Documentation for my target.


Added examples and some missing information in Set-CsUserCallForwardingSettings.md

https://github.com/MicrosoftDocs/office-docs-powershell/issues/5840
https://docs.microsoft.com/skypeforbusiness/sefautil-functionality#call-forwarding-settings

Docs Build status updates of commit 7204315:
:clock10: Full build: the average full build time is 18 min(s) 1 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit 7204315:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/Set-CsUserCallForwardingSettings.md
:white_check_mark:Succeeded
View (skype-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel