No pattern specified in google.api.HttpRule

Hi,
I'm starting using grpc-gateway and this is probably a newbie question.
When running this I'm getting the following error. Probably missing something...
~/github/grpc-gateway (master)$ protoc -I/usr/local/include -I.  -I$GOPATH/src  -I$GOPATH/src/github.com/gengo/grpc-gateway/third_party/googleapis  --grpc-gateway_out=logtostderr=true:.  examples/examplepb/echo_service.proto
E1209 15:00:22.665743   18512 services.go:107] No pattern specified in google.api.HttpRule: Echo

Thanks,
Paulo Grácio

+1

I am facing a similar issue. I also noticed that the problem did not occur on a different computer with "same" setup steps. Here is a contrived example that shows how to reproduce this issue:
First I modified the Makefile to avoid the google/http issue (#67):
$ cd $GOPATH/src/github.com/gengo/grpc-gateway

$ nano Makefile
examples: $(EXAMPLE_SVCSRCS) $(EXAMPLE_GWSRCS) $(EXAMPLE_DEPSRCS)
	sed -i "s/import _ \"google\/api\"//" ./examples/**/*.pb.go

$ make test

Test run successfully. Now I undo all the changes made by make test. This reverts the generated files back to their original version.
$ git reset HEAD --hard

Now, if I run make test, I get the following error:
$ make test
go build -o bin/protoc-gen-grpc-gateway github.com/gengo/grpc-gateway/protoc-gen-grpc-gateway
protoc -I /usr/local/bin//../include -I. -Ithird_party/googleapis --plugin=bin/protoc-gen-grpc-gateway --grpc-gateway_out=logtostderr=true,Mgoogle/protobuf/descriptor.proto=github.com/golang/protobuf/protoc-gen-go/descriptor,Mexamples/sub/message.proto=github.com/gengo/grpc-gateway/examples/sub:. examples/examplepb/echo_service.proto examples/examplepb/a_bit_of_everything.proto examples/examplepb/flow_combination.proto
E1210 06:26:49.972372    7693 services.go:107] No pattern specified in google.api.HttpRule: Echo
--grpc-gateway_out: none of pattern specified
make: *** [examples/examplepb/echo_service.pb.gw.go] Error 1

If I run make realclean (and add the google/http sed rule) and then run make test, everything works again. @yugui, can you please help us fix this issue?

I'm trying to investigate the issue.
There are some quick updates:

I am not sure why make test works fine. But protoc-gen-grpc-gateway fails to load message descriptor correctly.  When it loads your message descriptor, the descriptor actually lacks http path mapping even though you specified it in .proto file.
Another possibly related thing is that proto.MarshalText and proto.UnmarshalText don't roundtrip for oneof fields.

The root cause was that generated third_party/googleapis/google/api/*.pb.go were incompatible to recent github.com/golang/protobuf.
#71 will fix this issue.

Thank you @yugui for looking into this quickly. Please merge #71 into master.

merged.

Thanks @yugui . Everything is working here. For someone checking this issue, the fix was:

Update grpc-gateway (go get -u ...)
Update protoc build command to include the correct path for google/api

--go_out=Mgoogle/api/annotations.proto=github.com/gengo/grpc-gateway/third_party/googleapis/google/api,plugins=grpc:.

Thanks @yugui, you're a star!

Thanks @yugui this works like a charm!


Update pre-req section with image and network pre-req

Update pre-req section with rhcos, rhel image and subnet name pattern expected by the install script

You may want to remove this text from top "The script assumes PowerVS prerequisites for OpenShift are already in place." Or move these links on top.

@yussufsh good point!, Done.

@bpradipt I use Github web UI and I couldn't find a easy way to squash the commits :)
Easier was to create another PR #107
I will close this one


Terminal window is blank

Issue Type: Bug
Randomly, when I startup code sometimes.
I don't know why this occurs
VS Code version: Code 1.38.1 (b37e54c98e1a74ba89e03073e5a3761284e3ffb0, 2019-09-11T13:30:08.229Z)
OS version: Linux x64 5.0.0-31-generic snap

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz (4 x 2833)

GPU Status
2d_canvas: unavailable_softwareflash_3d: disabled_softwareflash_stage3d: disabled_softwareflash_stage3d_baseline: disabled_softwaregpu_compositing: disabled_softwaremultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwareoop_rasterization: disabled_offprotected_video_decode: disabled_offrasterization: disabled_softwareskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: disabled_softwareviz_display_compositor: disabled_offwebgl: unavailable_softwarewebgl2: unavailable_software

Load (avg)
0, 0, 0

Memory (System)
7.70GB (1.69GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (3)

Extension
Author (truncated)
Version

python
ms-
2019.10.41019

cpptools
ms-
0.25.1

LiveServer
rit
5.6.1

This happens for me when i start debugging Python when the terminal panel is closed. I'm using conda environments. Only started happening in 1.40, Python extension tracks weekly insiders build.
If the terminal panel is open, most of the time it works fine. Toggling the panel with Ctrl+J from this broken state results in a blank panel and "Cannot read property 'style' of undefined" message.
Then the terminal stops working completely.

If I then use "focus next terminal" the terminal window reappears in a broken state. (see picture)

The same bug occurs to me.
And if I open VSCode with the terminal panel, it will work well. But if I run the VSCode with Terminator, the Terminal Window in VSC will be blank.

the same issue

/duplicate https://github.com/microsoft/vscode/issues/82622


Clean up yarn.test warnings

When running yarn.test several warnings are thrown.
I want to reduce them to the bare minimum

PR: https://github.com/plone/volto/pull/3775


Missing license

Hello,
The project is missing a LICENSE/LICENSE.md file, which could easly be done via the github UI.
Is this something that can be done, and if not, what are the reasons?
Best Regards,
zkr

Resolved with PR #28
@zkr-bp Thanks for pointing this out.

I just checked all the other repos I maintain in SPDX and they all have LICENSE files.  Not sure how I missed this one, but I appreciate @zkr-bp pointing this out.


New Tasmota build intended for distribution with tuya-convert

Greetings!
I bring you a feature request/demand.
Tasmota devs have built a new special binary intended for first flash with tuya-convert. It is available on http://thehackbox.org/tasmota/sonoff-tuya.bin.
After a successful flash we recommend using command reset 5 to completely erase the flash completely and remove any remnants of the factory firmware. Afterwards apply a corresponding template and enjoy.
tl:dr Could you add this binary instead of the sonoff-basic.bin one in tuya-convert?

Nice! :) I see the Sonoff-Tasmota documentation has been updated to recommend to this file by default, so that's good also.
Any idea why the reset 5 is necessary if this is a tailored build? Was it not possible to have that done automatically somehow?

@pfeerick  Better you look in Tasmota wiki before writting suggestions
https://github.com/arendst/Sonoff-Tasmota/wiki/Tuya-OTA

@pfeerick Better you look in Tasmota wiki before writting suggestions

?? This was the documentation I was referring to in my comment, which recommends that the sonoff-tuya.bin be used instead of the version distributed in this repo. It also makes the recommendation to run the reset 5 command after loading, which I still think could be made redundant - possibly via the bootcount variable.

@pfeerick Better you look in Tasmota wiki before writting suggestions

?? This was the documentation I was referring to in my comment, which recommends that the sonoff-tuya.bin be used instead of the version distributed in this repo. It also makes the recommendation to run the reset 5 command after loading, which I still think could be made redundant - possibly via the bootcount variable/counter.
Anyway, thanks for the link... ;)

How do you intend to make a command that erases the entire flash after tuya-convert to ensure no remnants of the original firmare interferes with the new firmware redundant?
The fact that it solves issues in practice and has been repeatedly confirmed is why it is explicitly mentioned in the documentation and this OP.
Only when tuya-convert manages to erase entire flash before flashing new firmware (tasmota or any other) will be the time reset 5 is not needed.

Happy to accept a PR, not happy to accept a "demand"...

I think this is a great addition to the support of Tuya-Convert since MANY users including myself choose to flash this. The restrictions on the sonoff-basic.bin file are cleary not the best choice; for my use case- and perhaps many others.. However - it was included for our benefit and ease-of-use.
DigiblurDIY addressed one key issue, based on forever repetitive issues of people 'bricking' their unit due to incorrect wifi passwords and what I call the fat finger/excited effect.
It would be great to see Tuya-Convert include the newly formed sonoff-tuya.bin file- I was aware this was a request and I am glad to see it included. I certainly don't see the need for a demand, public or otherwise.
This is such a great community and I am very happy to participate in it. Thanks to Colin, M4DMartig4n and all others who have contributed to the success of Tuya-Convert.
And of course - thanks for Theo Arends and Team for the quality firmware provided!
Just my $ 0.02 worth (Canadian, so worthless in the USA of A !! -lol)
[-=SrZ=-]

Just to note not to get too fixed on the naming convention - I plan to change it to sonoff-wifiman.bin since the binary serves two simple purposes.

Disable all the drivers for all types of things one would not expect in a tuya device which has the result that it decreases the binary size making it possible to flash OTA without using an intermediate as would be required for the standard sonoff.bin binary.

Change the default behaviour of the wifi configuration so that if the device is reset to factory defaults it would automatically go into wifi manager mode instead of just continuously trying to connect whatever (possibly incorrect) wifi settings were found in the settings structure.

As these are introductory changes made to try and assist people who are using tuya devices there are no immediate plans to make a release available for this but the scripts are already in place to perform the development binary builds.
I understand the frustrations associated with trying to co-ordinate changes on different projects each sharing their own ideas and have their own github pages and such - That being said its important to remember that everyone is part of the same open-source community and although emotions do come into play at times one needs to take a principled approach to what will yield the best outcome for the users of the open-source projects - without the users we'd all still be coding our own little private pieces of firmware in our basements (wish I had one of those) :)

Happy to coordinate, respectfully of course. We're all volunteers here :)
That said, thank you for your added effort to support tuya-convert users. It goes above and beyond the call of duty and it shows.

How do you intend to make a command that erases the entire flash after tuya-convert to ensure no remnants of the original firmare interferes with the new firmware redundant?

Perhaps you should be asking why you're fixating on it being related to tuya-convert, and not done across the board as part of the first run of tasmota if the data structure hasn't been initialised yet - as I'm sure tuya-convert isn't the only instance in which this can happen... but just the most relevant given the repo this issue is on!
i.e. is the device bootcount preserved across firmware updates? if so... bootCount < 1 == reset 5, or some other mechanism that can detect that first flash of tasmota onto a new device, and hence initialise all the data structures correctly.
I agree that if tuya-convert was able to erase the entire flash (except for it's loader) that this would hide the issue, not necessarily fix the issue - fixing it in my mind rests in the project that doesn't handle initialisation of data structures and defaults properly... regardless of which one it is.

bootCount < 1 == reset 5

This would of course cause an infinite boot loop since the location where bootCount would be stored will be erased, on first boot be reset to defaults because it will fail CRC... rinse and repeat.
I believe the part that had an impact is erasing the portion of the flash where the SDK stores its settings.
I don't believe it is any other portion of the spi flash or even the portion where tasmota will end up storing its settings.
To prevent this issue on traditional serial flashable devices the flashing process is decribed in a way that the user would perform a full erase of the spi flash prior to flashing tasmota for the first time.
Since in this case that process is replaced by tuya-convert it would make sense that tuya-convert prepares the spi flash in a similar way.

@andrethomas Thanks for the quick and through response...  not knowing how the bootcount was handled was  part of why I was asking was it possible for tasmota to handle it (SDK being the other main issue). When I was looking at the commands I saw that there was reset 99 to explicitly reset the bootcount, so was unsure as to whether it was caught in the reset 5 erase ;)
That makes perfect sense now.... i.e. the tuya-convert update process needs to write it's own bootloader, and then erase the remainder of the flash... since it obviously can't erase itself. Thus leaving a clean slate for whatever else follows.

How do you intend to make a command that erases the entire flash after tuya-convert to ensure no remnants of the original firmare interferes with the new firmware redundant?

Perhaps you should be asking why you're fixating on it being related to tuya-convert, and not done across the board as part of the first run of tasmota if the data structure hasn't been initialised yet - as I'm sure tuya-convert isn't the only instance in which this can happen... but just the most relevant given the repo this issue is on!

First of all it is the tuya-convert repo. Second 99% of Tasmota flash on non tuya-converted devices is done over serial where you always erase the entire flash before flashing which nullifies the requirement of using reset 5

I agree that if tuya-convert was able to erase the entire flash (except for it's loader) that this would hide the issue, not necessarily fix the issue - fixing it in my mind rests in the project that doesn't handle initialisation of data structures and defaults properly... regardless of which one it is.

Luckily it is indeed able to erase the critical parts of flash.


❓ Is possible take a picture with smartphone locked with this library?

Question
I need implement an function of take picture with smartpjone locked. This library can help me?
What I tried
No response
VisionCamera Version
2.14.1
Additional information

[ ] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar questions in the issues page as well as in the discussions page and found none.

No, this is not supported by the OS.


Fixed hasAdditionalStacksPlugin check if using modules in plugins sec…

Fixes  _.get(...).includes is not a function error if serverless.yml looks like this:
plugins:
  localPath: './plugins'
  modules:
    - my-custom-plugin
    - serverless-domain-manager
    - serverless-dynamodb-local
    - serverless-offline

This is breaking me as well... it appears that this.service.plugins is not an array in the latest version of serverless. Which breaks the check

I have fixed this by using pluginManager, see https://github.com/99xt/serverless-dynamodb-local/pull/222

Thanks @sampsasaarela for the PR. There is another PR #222 for the same purpose sent later on. Will you be able to check whether there is anything we could get from it? I'm approving this, if there are any changes, please incorporate. Waiting for another review before merging.

I think both will do the job, but my version is not dependent parsePluginsObject, the only dependency is lodash as before and should be fully backward compatible.

Can this be revisited? Still unable to use enhanced plugin setup. Thanks.


HDAWG4 | Allowed number of channels limited to 2 in grouping mode (1x4)

Description
What I want to do:
Play a time-varying Rabi sequence on outputs 1 and 2, then play a constant readout pulse on outputs 3 and 4.
The pulse sequence is something like this:

Play the control pulse of time 't' on outputs 1 and 2.
Play readout pulse after step 1 is finished on 3 and 4.
Wait for 1000 clock cycles, increment t-> t+dt, and go back to step 1.

Problem:
Using HDAWG4 in grouping mode = 1 (i.e. 1x4), the outputs allowed should be 1 or 2 or 3, or 4.
However, when using output number 3 or 4, on assignWaveIndex(3,readout_pulse) the following error is displayed on compilation:
Compilation failed: Compiler Error (line: 47): can't play channel 3, valid values for channel are from 1 to 2

Can anyone please guide me as to what can be done?
I would also like the first marker on output 3 and the second marker on output 4 to be turned on with the readout pulse, however, trying to include an 11*markers=np.ones_like(readout) does not seem to work.
How to reproduce:
control_pulses is a list of pulses to be indexed and uploaded.
awg_program = Sequence()
awg_program.waveforms = Waveforms()

awg_program.waveforms.assign_waveform(0,wave1 = Wave(pul, name= f"readout_pulse"))
for i,pul in enumerate(control_pulses):
    awg_program.waveforms.assign_waveform(i+1,Wave(pul, name= f"rabi_{i+1}"))

awg_program.code = """
while (true) {

"""

for i in range(len(control_pulses)):
    awg_program.code += f"playWave(1, rabi_{i+1});\n"
    awg_program.code += f"waitWave();\nplayWave(3,readout);\n"
    awg_program.code += f"wait({wait_n});\n"

awg_program.code += '}'

elf_file, info = device.awgs[0].compile_sequencer_program(awg_program)
info

at this point the error comes up. If that weren't the case, I'd use the following:
with device.set_transaction():
    device.awgs[0].elf.data(elf_file, deep=True)
    device.awgs[0].write_to_waveform_memory(awg_program.waveforms)
    # device.awgs[1].write_to_waveform_memory(awg_program.waveforms)
    device.awgs[0].single(False)     #Repeat sequence
    device.awgs[0].enable(True)

Please let me know if waveforms also need to be uploaded to awg[1].

Environment info

Python version: 3.10
zhinst-toolkit version: 0.5.2
LabOne version: 23.02
zhinst version: 23.2.2

Device/system information (if applicable)
Using HDAWG4
Additional information

The AWG offline compiler does unfortunately not support channel grouping.
When using channel grouping, you need to fall back to the LabOne AWG Module instead.
An example code for toolkit can be found here (at the end of the subsection offline-compilation):
https://docs.zhinst.com/zhinst-toolkit/en/latest/examples/awg.html#Offline-compilation
(The full documentation of the LabOne AWG Module can be found here https://docs.zhinst.com/labone_programming_manual/awg_module.html)
Without that limitation, your code would just work fine though 😇

Thanks @tobiasah, I will check it out.
Meanwhile, if I do operate on 2x2, is there a way to internally trigger the awgcore 2 by marker/trigger of awgcore1? Or any other way where I could set the sequence on awgcore 2 to wait for an event completion awgcore1?

Dear @gauravag99 ,
yes, in fact it's our recommended way. Please check out this blog post Synchronizing Multiple AWG Channels , the section "2. Inter-core triggering" describe exactly what you asked.
In addition, let me suggest you to check also this blog post about efficient generation of control pulses: Efficient Generation of Dynamic Pulses. With the approach described here, you could generate on the fly the control pulses, reducing considerably the upload time of a sequence.
Let me know if that helps you, or feel free to reach me privately at<EMAIL_ADDRESS>if you prefer.

Hi, I have recently encountered another problem. I am forced to use the offline compiler to be able to use the grouped mode. The offline compiler however returns the following error:
Compiler Error (line: 14006): Waveform allocation error: Waveforms requiring fixed allocation exceed cache memory size

I assumed that it would upload to the DDR memory on it's own? The total size of the waveforms I am trying to upload is quite below the advertised memory, so the only thing I could think of is that the compiler is not taking into account the instrument's DDR memory. I've attached the code I am using below:
Generating sequences below:
### Generate Ramsey sequences

piby2_pul_len = 20e-9
piby2_pul_amp = 1.0
init_t = 1e-9
fin_t = 1000e-9
incr_t = 5e-9
con_freq = 750e6

read_t = 1e-6
read_freq = 500e6
mark_len = 500              #in 2.4GHz rate
wait_n = 1000000               # in 3.3ns pts

control_pulses_I = []
control_pulses_Q = []
con_pul_len = []
marker_pulses = []

sclk = 2.4e9
t_list = np.arange(init_t,fin_t,incr_t)

biggest_pulse_I = gen_sin(con_freq,0,piby2_pul_amp,fin_t+2*piby2_pul_len,sclk)
biggest_pulse_Q = gen_sin(con_freq,np.pi/2,piby2_pul_amp,fin_t+2*piby2_pul_len,sclk)

for i in t_list:
    piby2_pts = int(sclk*piby2_pul_len)
    wait_pts = int(i*sclk)
    envelope = np.hstack((np.ones(piby2_pts),np.zeros(wait_pts),np.ones(piby2_pts)))
    pul = biggest_pulse_I[:wait_pts+2*piby2_pts]*envelope

    pul = round_off_wvf_to_16_wvfpoints(pul,front=True)
    control_pulses_I.append(pul)

    pul = biggest_pulse_Q[:wait_pts+2*piby2_pts]*np.hstack((np.ones(piby2_pts),np.zeros(wait_pts),np.ones(piby2_pts)))
    pul = round_off_wvf_to_16_wvfpoints(pul,front=True)
    control_pulses_Q.append(pul)

    con_pul_len.append(len(pul))
    mar = np.zeros_like(pul)
    mar[-30:-20] = 1
    marker_pulses.append(mar)

readout_pulse_I = round_off_wvf_to_16_wvfpoints(gen_sin(read_freq,0,1.0,read_t,sclk),back=True)
readout_pulse_Q = round_off_wvf_to_16_wvfpoints(gen_sin(read_freq,np.pi/2,1.0,read_t,sclk),back=True)

marker = np.append(np.ones(mark_len),np.zeros(readout_pulse_I.size-mark_len))

Finally trying to assign memory and compile:
awg_program = Sequence()
awg_program.waveforms = Waveforms()
awg_program.waveforms_read = Waveforms()

#add control pulses
for i, (pul_I, pul_Q) in enumerate(zip(control_pulses_I,control_pulses_Q)):
    awg_program.waveforms.assign_waveform(i+1,
                                        Wave(pul_I, name= f"ramsey_I_{i+1}"),
                                        Wave(pul_Q, name= f"ramsey_Q_{i+1}"),
                                        markers=marker_pulses[i])

#add readout pulse
awg_program.waveforms.assign_waveform(0,
                                        Wave(readout_pulse_I, name= f"readout_I"),
                                        Wave(readout_pulse_Q, name= f"readout_Q"),
                                        markers=15*marker)

awg_program.waveforms_read.assign_waveform(0,
                                        Wave(readout_pulse_I, name= f"readout_I1"),
                                        Wave(readout_pulse_Q, name= f"readout_Q1"),
                                        markers=15*marker)

awg_program.code = """
while (true) {

"""

#add placeholders to the sequence
awg_program.code += awg_program.waveforms.get_sequence_snippet()

for i in range(len(control_pulses_I)):
    awg_program.code += f"\n playWave(1,ramsey_I_{i+1},2,ramsey_Q_{i+1});\n waitWave();\n playWave(3,readout_I,4,readout_Q);\n wait({wait_n});"

awg_program.code += '}'

Finally compiling:
    awg_node = device.awgs[awgnode]
    awg = session.modules.awg
    awg.device(device.serial)
    awg.index(awgnode)
    awg.sequencertype('sg' if device.device_type.startswith('SHFSG') or device.device_type.startswith('SHFQC') else 'auto-detect')
    awg.execute()
    awg.compiler.sourcestring(code)

    # The following lines are not mandatory but only to ensure that everything was compiled and uploaded correctly.
    timeout = 100.0  # seconds
    compiler_status = awg.compiler.status()
    start = time.time()
    while compiler_status == -1:
        if time.time() - start >= timeout:
            raise TimeoutError("Program compilation timed out")
        time.sleep(0.1)
        compiler_status = awg.compiler.status()
        if compiler_status == 1:
            print(awg.compiler.statusstring())
            raise RuntimeError(
                "Error during sequencer compilation. Check the log for detailed information"
            )
        if compiler_status == 2:
            print(f"Warning during sequencer compilation {awg.compiler.statusstring()}")
    # Check and wait until the elf upload to the device was successful
    print("Sequence loaded.")
    progress = awg.progress()
    while progress < 1.0 or awg.elf.status() == 2 or awg_node.ready() == 0:
        if time.time() - start >= timeout:
            raise TimeoutError(f"Program upload timed out")
        time.sleep(0.1)
        progress = awg.progress()
    if awg.elf.status() or not awg_node.ready():
        raise RuntimeError(
            "Error during upload of ELF file. Check the log for detailed information"
        )
    print("AWG ready for data upload.")
    ```

    Which is when I get the error.

    Is there any way around this? Due to the nature of further experiments, we have to upload arbitrary waveforms, and cannot use LabOne's internal waveform methods or use the command table.

Hi Gaurav,
I'm Chunyan, I will take over the case via email.

Hi, recieved your mails. I'll close this thread.


syntax highlight is missing

added missing syntax highlight for the code. please see PR #16598

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ddcad97f-02c6-4307-7ed8-85ba7ae23ecc
Version Independent ID: 51a5e20b-c221-ee05-cb44-a479bfcf1a00
Content: Always Encrypted: SQL Database - Azure Key Vault
Content Source: articles/sql-database/sql-database-always-encrypted-azure-key-vault.md
Service: sql-database
GitHub Login: @VanMSFT
Microsoft Alias: vanto

@mozts2005 Thank you very much for making a community contribution to MicrosoftDocs. I have assigned this to the content author to evaluate and update as appropriate. Thank you, Mike

#16598  Customer has provided a community contribution; PR will need to be approved.

Thanks @mozts2005! I signed off on the PR, and it should be updated. We really appreciate your contribution on this!
#please-close


sample output for "az network express-route peering show -g ExpressRouteResourceGroup --circuit-name MyCircuit --name AzurePrivatePeering" missing stag info.

[Enter feedback here]
when we actually run "az network express-route peering show -g ExpressRouteResourceGroup --circuit-name MyCircuit --name AzurePrivatePeering", output should be including stag info as well.
but the content: "To view Azure private peering details" doesn't cover that.
Please help to correct sample output so that people can see this command can get us stag info.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 5d2de8be-9377-7147-b30e-3342d2e7c353
Version Independent ID: ef68753b-de36-7c1e-3517-09c40e7cc44e
Content: Tutorial: Configure peering for Expressroute circuit - Azure CLI
Content Source: articles/expressroute/howto-routing-cli.md
Service: expressroute
GitHub Login: @duongau
Microsoft Alias: duau

@GavinJin88 Thanks for your feedback. We shall review this shortly


[action] Improve get_version_number: fallback to project settings if no MARKETING_VERSION is set for target

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context
https://github.com/fastlane/fastlane/issues/15322
Description
get_version_number_from_build_settings now returns nil if no version number is found instead of throwing an error
the run method will throw the error if version_number is not set
it will look into the project settings for variable (in this case MARKETING_VERSION) if there is no version_number set after checking the target
Testing Steps
bundle exec fastlane store resulted with the correct value after these changes

@googlebot I signed it!

This is an important improvement for us, and a use-case that I can see being common is setting the MARKETING_VERSION on the project and having all of the targets inherit that value with $(MARKETING_VERSION) to keep versions aligned across multiple related targets (app, watch, extensions). Thank you for this addition.

@ilendemli Looks like one of the CI tests failed (Xcode 9.0.1, Ruby 2.3). Bringing to your attention in case you hadn't seen it.

@michael-patzer I have seen it fail, I am just not sure if it my fault that it is failing or if that was just an error that just happened. @joshdholtz Could you check this out? I can't rerun tests.

@googlebot I consent.


The url of idp validation guideline is not found

https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-fed-compatibility#idp-validation
I can't find the link to the idp validation guideline documentation because the guideline link on this page is not appropriate. Please correct the link.
The link is described in the following part .
If you would like to test your product for interoperability please refer to these guidelines.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: b3e70f22-6947-70c0-73f9-1d3b309820df
Version Independent ID: b6fc77d4-2c0f-2101-8a24-1845325f7696
Content: Azure AD federation compatibility list
Content Source: articles/active-directory/hybrid/how-to-connect-fed-compatibility.md
Service: active-directory
Sub-service: hybrid
GitHub Login: @billmath
Microsoft Alias: billmath

@idm-kiyoshi Thanks for the feedback. We will engage the content development team for further investigation, they will verify and perform necessary changes in the document as needed.
@billmath  Can you have a look

@idm-kiyoshi Thanks for the feedback. We will engage the content development team for further investigation, they will verify and perform necessary changes in the document as needed.
@billmath  Can you have a look


Create a more complete demo-nft-module with collections, metadata uri, freezing, updates, supply

Overview
demo-nft-module has been enhanced to include the concept of Collections, NFTs and calls to create, modify, freeze collections and NFTs and to transfer NFTs. Existing demo-nft-module has been moved to simple-nft-module since it still serves as a very simply and easy to understand tutorial. simple-nft-module focuses more on the sovereign-sdk usage aspects, while demo-nft-module aims to be a more ready implementation to plug-n-play and customize if necessary
Changes

demo-nft-module has no genesis
README.md added to explain the basic concepts, calls provided as well as example sov-cli commands to interact with the demo-nft-module on a running rollup
demo-nft-module has also been added to runtime, so it would be a permanent module

Further changes
The offchain component for indexing the NFTs into an offchain store will be part of a second PR.
Test cases added

Create Collection
Mint NFT to created collection
Mint NFT to non-existent collection
Update a collection
Freeze a non existent collection
Freeze Collection
Update collection uri for frozen collection

assert that the collection uri hasn't been changed
assert that supply hasn't been modified

Supply change after minting an NFT to a Collection
Minting to a Frozen Collection

ensure supply hasn't changed

Transferring an NFT from a non-owner address
Transferring NFT with non-existent token id
Update NFT token_uri
Freeze NFT
Update NFT token uri for frozen NFT

Looks really good overall. Left a couple of notes about type safety, but just one overall question - how would someone use this to create an NFT drop? It looks like in the current implementation the collection creator has to sign on every individual mint - maybe we should change the interface to have mint which can be called by other modules in addition to the current function mint_from_eoa? The bank follows that pattern.

yeah, I agree. we can follow the same pattern, so that way a creator can mint to addresses directly, or the mint can also be created in conjunction with a token that exists in the Bank


added Iso19115-2 Temporal processing to dcatus

related to https://github.com/GSA/data.gov/issues/4904

added Temporal processing in the resourceInfo->extent->temporal_extent module
added tests

I believe you need to add a test case to here as well: https://github.com/GSA/mdTranslator/blob/datagov/test/translator/tc_iso19115_2_to_dcatus.rb


serve should install new dependencies if added to the config.json and reload the server.

going to close this for now, fresh installs are now alot quick because of the new build structure so not sure how urgent this is.


Set navigator.language and other properties if possible

I don't think we set navigator.language based on the HTTP request language. We should also investigate if other properties can be set.

Shouldn't this be done in can/util/vdom/vdom?  can-ssr isn't meant to create a browser environment. It would be nice if can-ssr could be used with other vdoms than the can/util one, like with jsdom.

Where is the http request language specified?

I think you mean the accept-language header. This would definitely be good to add support for.


Sidebar updates & submodule updates

Thank you for your contribution to the IC Developer Portal.
Before submitting your Pull Request, please make sure that:

[ ] You have updated the .github/CODEOWNERS file according to your changes.
[ ] You have registered new documents to /sidebars.js if any.

It seems that the build error should be fixed with the latest update #699.


You should be using bone conduction transducers instead of speakers

Speakers in the helmet are lame. Bone conduction transducers/exciters are much more effective.

@millerhooks you might be right. Feel free to update the design and send a pull request. :blush:

I'm gonna try to do that this weekend. Thanks for putting all this together!


Extend EnumConverter to use EnumMemberAttribute

EnumConverter is internally using Enum.Parse method that assumes that the parsed value matches the name of the enum value.
System.Runtime.Serialization has an EnumMemberAttribute (https://docs.microsoft.com/en-us/dotnet/api/system.runtime.serialization.enummemberattribute) that can be used to decorate each field and specify a different value:
public enum Position
{
    [EnumMember(Value = "Emp")]
    Employee,
    [EnumMember(Value = "Mgr")]
    Manager,
    [EnumMember(Value = "Ctr")]
    Contractor
}

This allows for easy definition of mapings between 'proper' names of enum options and the actual string values that will be serialized.
I would like to extend EnumConverter to utilize the EnumMemberAttribute during conversion.
Please let me know if you would be interested in my PR for this change.

Bump


Strictly limit default dependencies to stdlib

The runtime dependencies for core library usage should be strictly limited to the Go standard library ("stdlib"). This does not apply to the test dependencies.

[x] #1892

Does this also apply to testify?
Here's an interesting blogpost I read some time ago – The Cult of Go Test.

Since there's more important work to do, and this doesn't affect any of our users, but only our codebase, I think it's OK to not act upon it at all right now.
I'd prefer to use pure Go test instead of testify/assert and testify/require, but then it's my small preference vs your preference, so no good reason for any change :P
I just love go.mod files with no dependencies :P

I also love go.mod files with no dependencies! Please let's keep talking about this 🙇🏼

Whats the problem. I dont see any direct dependencies at all. The indirect dependencies are all because of docs generation. I'm fine with what we have

@dearchap Yes, I think we're already at the point where the only build-time and runtime dependencies are from the Go standard library 👍🏼.
There are a few dependencies that will become part of the go.mod resolution because they are used in tests and examples, and the test dependency on github.com/stretchr/testify. I think that the value of eliminating these remaining go.mod resolution-time and test-specific dependencies is significantly lower than eliminating build dependencies, but there's still potential value there.

Strolling through v3 issues trying to find a spot to help. Looking at #1971 - looks like this can be closed? Since it was decided it's not worth the effort to vendor/rewrite a testing library the work here is complete.
Anyone opposed?

I agree with @hay-kot. Closing the issue now.


nexd: Add child prefix routing through relays

Prior to this change, the only way to reach a child-prefix CIDR was by
peering directly with the device exposing that prefix.
This change updates relay peer configuration to include child-prefix
CIDRs for peers that are reachable via the relay instead of directly.
Closes #1536

This could use some additional testing. My only testing so far is via the unit tests included in the PR.

Marked as a draft as e2e shows that it's broken.

tests are passing now!


Cannot find module '@babel/plugin-proposal-decorators'

Can you please provide a little more information about what's going on?
What commands did you run? Does this happen on a newly ignited app?

i fixed it by running the command: brew upgrade node


[TIR] [Hexagon] Add vdmpy intrinsic and transform_layout for tests

This patch adds the vdmpy hexagon intrinsic and a sample tensorization test for the same.
This patch also modifies the test to use transform_layout instead of a packed tensor in the compute to make it obvious that this example is just matmul with a different data layout for one of the inputs

@masahi @nverke Could you please take a look and review this patch when you get a chance.

Looks great!


Would love to see a YouTube TV and Hulu versions, or switcher within this app

I don't use either of these services, so it's unlikely I'm the person to make those happen. You're 100% welcome to fork the repo to spin off your own version for these services, though.


Change build to have standard names + introduce CI

Situation
Currently we have sarif210-1.0.jar as an output.
This is not very readable - and could mislead. For example what if there would be a sarif 2.10 version (it does not exist, but it is only an example) - we could not determine a difference by the name.
Wanted
Change build
Package names shall contain the version with underscores, the artifacts shall use normal dots.
As an example for a release with 1.0 (our version) and sarif 2.1.0 we want:

package shall be de.jcup.sarif_2_1_0
name of archive shall be sarif-2.1.0-1.0

Introduce CI
Introduce a github actions worflow which does always build sarif 2.1.0 (with internal version 0.0)

Inside this issue the POM and maven publish parts for #3  will be done as well. We will switch to Gradle 8.0.2 to make things easier


Inconsistent results in Table 1 and ablation study.

Hi, I notice that the results reported in Table 1 and those reported in ablation studies are inconsistent.

Could you please tell the difference between the two models?

They are evaluated on different subsets.
For Table 1, please refer to "4.2/Evaluation datasets".
For Table 2, please refer to  Section 4.3:

Two zero-shot validation sets are selected for the ablation studies – the official training split of NYUv2 [31], consist- ing of 785 samples, and a randomly selected subset of 800 images from the KITTI Eigen [14] training split. Refer to supplementary sections for extra ablations and discussion.


Fixed edge cases

Fixed some edge cases, fixed some typos on function names. More interesting messages to the user.
Also, the explanation of the script was updated with a example with short parameters and support for KML.

Since you are using Markdown, can you rename the README.txt to README.md?

Thanks! I've renamed the file and applied it.


Move integration tests until after merge to main

I'm not sure if this is a great thing to jump into without more cleanup work around releases that fail. Do we delete the release or mark it as invalid? Closing until we've thought through it a bit more.


It allows to input 'e/E' to Max Age box on the Add CORS Rule dialog

Storage Explorer Version: 1.10.0
Build: 20190905.11
Branch: master
Platform/OS: Windows 10/ Linux Ubuntu 19.04/macOS High Sierra
Architecture: ia32/x64
Regression From: Not a regression
Steps to reproduce:

Expand one Non-ADLS Gen2 storage account.
Right click Blob Containers node then select 'Configure CORS Settings...'.
Click 'Add' to add an cors rule and input Mac Age like:123e.

Expect Experience:
The inputed 'e' is invalid.
Actual Experience:
It allows to input e and the 'Save' button is enabled.
More Info:

An error occurs after clicking Save on the CORS Settings dialog.

The value of Max Age which ended with e/E still keeps when trying to continue to add a new cors rule.

Won't fix. Server catches the error properly, and it's highly unlikely someone is going to want to use a scientific notation for number here.


fix: Get-AzCachedAccessToken -AssignGlobalVariables

Updated script and documentation to fix Get-AzCachedAccessToken -AssignGlobalVariables
Closes #238

Thx for the PR!
We should make sure that we test this thoroughly. Could you update both the unit and integration tests? Thx!

Thx for the PR! We should make sure that we test this thoroughly. Could you update both the unit and integration tests? Thx!

I might be wrong, but the tests were already there.  They're already using this parameter for the changes that Alex has made.   (At least, afaik @spasal ? )

Thx for the PR! We should make sure that we test this thoroughly. Could you update both the unit and integration tests? Thx!

I might be wrong, but the tests were already there. They're already using this parameter for the changes that Alex has made. (At least, afaik @spasal ? )
otoh, when I read the related issue, it seems like this behavior is indeed not correctly tested by the tests we currently have.

The tests are indeed not correct, and the integration test for this is missing. In any case, this bug-fix PR should have a change in tests to 'prove' it is fixed now 😉 .

Thx for the PR! We should make sure that we test this thoroughly. Could you update both the unit and integration tests? Thx!

I might be wrong, but the tests were already there. They're already using this parameter for the changes that Alex has made. (At least, afaik @spasal ? )
otoh, when I read the related issue, it seems like this behavior is indeed not correctly tested by the tests we currently have.

Indeed, quickly took a look yesterday and it should be already tested in the unit tests and not yet in the integration tests.
As the integration tests were passing (even though it was not working), those need to be updated. Integration tests need to be added. As I am new to Pester it may take a bit to get the hang of it, will try it out!

[x]  Add integration test to verify that with a valid Azure connection we can assign variables globally
[x]  Add/adapt unit test to make sure we test the global assignment and switch parameter

@stijnmoreels unit tests were already present and are working as expected. Integration tests for this case have been added

[x]   Add integration test to verify that with a valid Azure connection we can assign variables globally
[x]   Add/adapt unit test to make sure we test the global assignment and switch parameter

@stijnmoreels unit tests were already present and are working as expected. Integration tests for this case have been added

THe unit tests are not really correctly implemented as the stubbed function already assigned the gobal veriables. We should update that test too.
https://github.com/arcus-azure/arcus.scripting/blob/d996cde664f893ca8a45ce4b1161e2aa9eaed589/src/Arcus.Scripting.Tests.Unit/Arcus.Scripting.Security.tests.ps1#L106

[x]    Add integration test to verify that with a valid Azure connection we can assign variables globally
[x]    Add/adapt unit test to make sure we test the global assignment and switch parameter

@stijnmoreels unit tests were already present and are working as expected. Integration tests for this case have been added

THe unit tests are not really correctly implemented as the stubbed function already assigned the gobal veriables. We should update that test too.
https://github.com/arcus-azure/arcus.scripting/blob/d996cde664f893ca8a45ce4b1161e2aa9eaed589/src/Arcus.Scripting.Tests.Unit/Arcus.Scripting.Security.tests.ps1#L106

Not really sure what we can do except that the stubbed function assigns the global variables. Any ideas on how to improve?

[x]     Add integration test to verify that with a valid Azure connection we can assign variables globally
[x]     Add/adapt unit test to make sure we test the global assignment and switch parameter

@stijnmoreels unit tests were already present and are working as expected. Integration tests for this case have been added

THe unit tests are not really correctly implemented as the stubbed function already assigned the gobal veriables. We should update that test too.
https://github.com/arcus-azure/arcus.scripting/blob/d996cde664f893ca8a45ce4b1161e2aa9eaed589/src/Arcus.Scripting.Tests.Unit/Arcus.Scripting.Security.tests.ps1#L106

Not really sure what we can do except that the stubbed function assigns the global variables. Any ideas on how to improve?

Good job finding the real issue here 👍

Thanks again for noticing and fixing this 😉👌


missing depth axis in nemo output

Following up on #3:
I just tested the cmorization of the output from a run made with the PRIMAVERA branch and get
ERROR:nemo2cmor:Could not find depth axis variable depthu in NEMO output file u; skipping depth axis creation.
ERROR:nemo2cmor:Could not find depth axis variable deptht in NEMO output file t; skipping depth axis creation.
ERROR:nemo2cmor:Could not find depth axis variable depthv in NEMO output file v; skipping depth axis creation.

Do we have to worry about missing depth axis?

Despite the error message, the resulting netcdf files contain infromation about vertical levels, here from e.g.  the thetao file:
 lev = 0.505760014057159, 1.55585527420044, 2.66768169403076,
    3.8562798500061, 5.14036130905151, 6.54303359985352, 8.09251880645752,
    9.82275009155273, 11.7736797332764, 13.9910383224487, 16.5253219604492,
    19.429801940918, 22.7576160430908, 26.5583000183105, 30.8745613098145,
...

I have converted these messages into warnings. They are still there because they may be convenient when tracing a crash for instance.


Suggestion for modver output

To help with readability:
Patchlevel:
handleRequest: old and new versions of parameters of are not identical:

    Details:
    in type github.com/lib/CustomType:
        in parameters of
            func(a *CustomType, path string) error:
                handleRequest

            struct{
                field1 string
            }

It'd also be great to support some sort of structured output (e.g. json) for working with other tools.

There is now a -pretty option to the modver command (and a Pretty function in the package) for rendering results and their explanations on multiple lines, with indentation. Sample output:
checking Pretty
  in parameters of func(out io.Writer, res github.com/bobg/modver/v2.Result)
    new interface github.com/bobg/modver/v2.Result does not implement old
      Major

(That result was from an interim version of this module, and the "major" change was reverted, so the current change is only "minor.")
I couldn't think of any suitable structured data to return for @jcline's suggestion, so I'm closing this ticket, but please feel free to open a new one with a more concrete suggestion about that.


[Device Support Request] OSRAM Flex Outdoor RGBW

Is your feature request related to a problem? Please describe.
I have the OSRAM Flex RGBW and OSRAM Flex Outdoor RGBW light strips.  The OSRAM Flex RGBW strips work with the flexrgbw quirk as expected.  The OSRAM Flex Outdoor RGBW strip has the same Zigbee device signature, but a different model name so it does not work currently.
Describe the solution you'd like
The OSRAM Flex Outdoor RGBW quirk should be exactly the same as the OSRAM Flex RGBW quirk, but with this new model name:
"LIGHTIFY FLEX OUTDOOR RGBW"
I have tested this with an edited local copy of the flexrgbw.py quirk on my HA installation and can verify it works correctly.

Device signature
{
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=48042, maximum_buffer_size=64, maximum_incoming_transfer_size=0, server_mask=0, maximum_outgoing_transfer_size=0, descriptor_capability_field=<DescriptorCapability.ExtendedSimpleDescriptorListAvailable|ExtendedActiveEndpointListAvailable: 3>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
"endpoints": {
"3": {
"profile_id": 260,
"device_type": "0x0102",
"in_clusters": [
"0x0000",
"0x0003",
"0x0004",
"0x0005",
"0x0006",
"0x0008",
"0x0300",
"0xfc0f"
],
"out_clusters": [
"0x0019"
]
}
},
"manufacturer": "OSRAM",
"model": "LIGHTIFY FLEX OUTDOOR RGBW",
"class": "zigpy.device.Device"
}

If the quirk as been tested, you can create the PR yourself. It is quite straight and can be done from the web.
Go to the file page and edit the content (the pencil icon):

https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/osram/flexrgbw.py

Follow the indications and you can get the PR in a few minutes.

I edited the file and created PR #1536

Great!
Thanks for contributing.
Could you add in the first post message the reference to this issue?
Like this:
- Fixes: #1534

This way, this issue will be closed when PR accepted.

I edited the first post in the PR to include the reference to this issue


update startedEventId in buffered events

update startedEventId in buffered events.

Changes Unknown when pulling 96474b1ed1a0e1db83d1389616b9c7570ff71790 on yiminc:update_startedEventId_in_history into ** on uber:master**.

Changes Unknown when pulling eee50fe3c65cc7959b8550a80ed5c97d0f728f81 on yiminc:update_startedEventId_in_history into ** on uber:master**.


PDO Timer Config when entering the OPERATE state.

Hi,
Device: [S32K116]
OS: [none]
Version [v4.1.5]

I think there's a possible issue when moving to the OPERATE state. If this is done when already in the operational state a new PDO timer is reconfigured on top of the old one, such that the period of the PDO transmission is then incorrect (doubled, tripled or more). This can be reset by transissioning back to pre-operational, then back to operate, but thought it worth flagging up.
Many thanks, and as I've stated perviously, great work!
All the best,
Stu

Can you explain in more detail, what you are doing? Are you sending NMT commands twice, or accessing API functions multiple times? I need to investigate this in my environment to fix the software (or documentation) ;-)

Hi, I found this issue during some tests.
So to give more details on the system : I got a node configured with a PDO in asynchronous mode, with a 1s event timer, working normally in operate state.
Then I send an NMT command to go to the operate state (which, we agree is useless because it is already in).
I was surprised to see the period of my PDO changing : twice more messages.
After this I repeated the send of NMT operate commands, each one adding one new PDO message periodically  send by the device !
I did not kept the traces, but if you can't reproduce this easily, I can illustrate with some captures.
It's not a critical bug, just some curious behavior...
I noticed also that going to pre-operate works normally and after, a new command to go to operate results in a normal behavior.
From the code I imagine that some timers are created for PDOs on the Operate command, which is done even if the node is already in the Operate mode...
Best regards and thanks for this stack ! :)
Sylvain

You are right, thank you for the investigation!
Analysis
This is a bug in function CONmtSetMode(). This function initializes the transmit and receive PDOs each time, this function is called.
The correct behavior is: initialize PDOs when entering the operational mode only.
Solution
No workaround is possible.
Change of the function for the next release. For example:
void CONmtSetMode(CO_NMT *nmt, CO_MODE mode)
{
    if (nmt == 0) {
        CONodeFatalError();
        return;
    }
    if (nmt->Mode != mode) {
        if (mode == CO_OPERATIONAL) {
            COTPdoInit(nmt->Node->TPdo, nmt->Node);
            CORPdoInit(nmt->Node->RPdo, nmt->Node);
        }
        CONmtModeChange(nmt, mode);
    }
    nmt->Mode    = mode;
    nmt->Allowed = CONmtModeObj[mode];
}

Testsuite
We need an additional test in the test suite:

changing NMT state from operational to operational


[Fix #5075] Fix auto-correct for Style/RedundantParentheses

Fix #5075
Style/RedundantParentheses tried to autocorrect redundant parentheses in a unspaced ternary operation by removing the parenthesis but didn't add an extra space.

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Used the same coding conventions as the rest of the project.
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] All tests(rake spec) are passing.
[x] The new code doesn't generate RuboCop offenses that are checked by rake internal_investigation.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Updated cop documentation with rake generate_cops_documentation (required only when you've added a new cop or changed the configuration/documentation of an existing cop).

Updated PR with feedback. Thank you for the fast replies 🙂

👍

Though this change fixes the particular snippet in the issue, it doesn't resolve the wider issue that parentheses interact with the parser in ways beyond order of operations. For example, the snippet true ? (true): false still auto-corrects [incorrectly] to true ? true: false. It may be appropriate to replace the parentheses with spaces, then use the spacing cop auto-corrects to remove the extra space (if it is indeed extra).
cosmiccrisp:rubocop asherkach$ cat test.rb
true ? (true): false
cosmiccrisp:rubocop asherkach$ bundle exec rubocop test.rb --only Style/RedundantParentheses --auto-correct
Inspecting 1 file
C

Offenses:

test.rb:1:8: C: [Corrected] Style/RedundantParentheses: Don't use parentheses around a literal.
true ? (true): false
       ^^^^^^

1 file inspected, 1 offense detected, 1 offense corrected
cosmiccrisp:rubocop asherkach$ cat test.rb
true ? true: false

Another example, showing the issue is widespread (not just ternaries).
cosmiccrisp:rubocop asherkach$ cat test.rb
(true)&& false
cosmiccrisp:rubocop asherkach$ bundle exec rubocop test.rb --only Style/RedundantParentheses --auto-correct
Inspecting 1 file
C

Offenses:

test.rb:1:1: C: [Corrected] Style/RedundantParentheses: Don't use parentheses around a literal.
(true)&& false
^^^^^^

1 file inspected, 1 offense detected, 1 offense corrected
cosmiccrisp:rubocop asherkach$ cat test.rb
true&& false

👍


feat: partly disable @stylistic/comma-dangle

Since there is no consensus on whether comma-dangle should be forbidden or required we should simply just ignore them for arrays, objects, imports, exports
All non-ignored defaults to "never" – such as functions, enums, generics, tuples – so no need to add them explicitly. They will still be forbidden.
Fixes #79

This aligns with the mission statement: https://github.com/neostandard/neostandard#mission-statement

README.md should be updated too to reflect the behavioral change.

Kinda bummed by this conclusion. Of all the 'stylistic' rules this one actually has utility:

Minimize changes in git diffs (allow for one line changes, even in collections)
Kill a stylistic one-off syntax rule: everything needs a comma except the final item vs, everything needs a comma.

It's kind of funny, there's a lot controversy around end of line syntax (see semi). You could say it's a bit of an edge case. 🥁
Fine with this change now. At least trailing commas are allowed now, but are people at least open to implement the rule as an experimental option, while still staying vigilant and saying no to most options, so that consensus building can happen? If the issue is "there is no consistent approach to this within the community anymore", part of that is because everyone is left to their own to figure this out. Adding this as an experimental option would allow people to opt in to rules around this consistently, and still take input before it's finalized? At a later date, the default could be switched if a clear consensus is reached (or left an option like semi).

@bcomnes I was toying around with the idea of a strict: true for this

Lets follow up this PR with a new issue about how to reintroduce it, as this is a great discussion to have!

README.md should be updated too to reflect the behavioral change.

Done, thanks 🙏


Python error : AttributeError: 'module' object has no attribute 'run'

Hello,
I am testing your software but I can't make it run
When I launched:
pgantomizer_dump --schema dolibarr.yml --dbname dolibarr --user labo
I get the following error:
Traceback (most recent call last):
  File "/usr/local/bin/pgantomizer_dump", line 9, in <module>
    load_entry_point('pgantomizer==0.1.1', 'console_scripts', 'pgantomizer_dump')()
  File "/usr/local/lib/python3.4/dist-packages/pgantomizer/dump.py", line 53, in main
    if args.dbname and args.user else [])
  File "/usr/local/lib/python3.4/dist-packages/pgantomizer/dump.py", line 23, in dump_db
    subprocess.run(cmd, shell=True)
AttributeError: 'module' object has no attribute 'run'

I'm running it on Debian 8 jessie with Python 3.4.2

Hi, thanks for trying it out. The problem is the subprocess library in Python 3.4 does not have the run function, it was a Python 3.5 addition. Can you try to install a newer Python on Debian Jessie using e.g. pyenv? There is a guide here: https://gist.github.com/jaydenkieran/75b2bbc32b5b70c4fdfb161ecdb6daa2
Pgantomizer is a rather new tool and I like to use features from newer versions of Python when it helps code readability as in this case with subprocess.run.

Hi !
Thanks for your reply !
For some reasons, pyenv is scaring me a little bit so I decided to make a docker image instead...
The Dockerfile is here, any comment is welcome:
https://github.com/daamien/pgantomizer/blob/docker/Dockerfile
Anyway I think the README file should make it more clear that python 3.5+ is required.


EPIC RSR-51 / RSR-62 : create a new SubNetwork to current SCD

As a COMPAS service user, this US purpose is to create a new SubNetwork into predefined SCD file.

As an integrator, I would like to create a new SubNetwork to current SCD if it doesn't exist.
Prerequisites : an existing SCD file which exists in COMPAS BDD

The inputs of this service are:
A previous existing SCD file (Mandatory) defined by Header.id, Header.version and Header.revision
The SubNetwork.name to create or configure (Mandatory)
The SubNetwork.type to create or configure (Optional), it shall only contain "8-MMS", "IP" or "PHYSICAL" values
This US is covering the first part of the following functional service as described in the 61850-6:
S22 Create and configure SubNetworks and IED communication addresses
The following steps have to be considered to create a new SubNetwork XML block into the SCD file:
If for the given SubNetwork.name as input, an occurrence already exists in the XPath /SCL/Communication/SubNetwork@name in the SCD file, then the SubNetwork is not created. Indeed, the /SCL/Communication/SubNetwork@name shall be unique within a SCD file.
If, for the provided SubNetwork.name, there is not a SubNetwork with that name in the SCD file, then a new SubNetwork block is created into the SCD file. This new block is inserted with its attributes "name" (mandatory) and "type" (optional) into the /SCL/Communication section and just after the last SubNetwork block if exists.
Output
The output of the service is an updated SCD file with a new Subnetwork.name
Error
If the the /SCL/Communication/SubNetwork@name is already existing in the SCL file display the error message "The subnetwork have not been created because already existing in the SCD file"

Looks good to me


Register 9900.is-cool.dev

Added 9900.is-cool.dev using the CLI.

CLA Assistant Lite bot: Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.

I have read the CLA Document and I hereby sign the CLA

You can retrigger this bot by commenting recheck in this Pull Request

I have read the CLA Document and I hereby sign the CLA

Imma do the change today


Custom Template for the Selected Chips in Multiselect

I am using multi-select to select from 3 groups of items, when a user selects item from group-1 I want to add group name in prefix of the selected item when it displayed in selected items in input bar, similarly for rest groups of the groups.

I guess :customLabel is the functionality you look for.
Look into the documentation for an example: https://monterail.github.io/vue-multiselect/#sub-select-with-search

@shentao Does custom-label take HTML or just text? Not quite clear

CustomLabel is only for the options in dropdown there is no variable which binds with the already selected options displayed in input bar of multiselect. These are two different things drwopdowns options vs selected option.

@cloud-tribal @roylkng customLabel only works with text and appears both in the selected options and in dropdown options.
Custom templates work only for the dropdown options though.

@shentao  customLabel return the option value to the custom template which is used,  and you are right that same value is passed to selected options, and that is the exact problem. Need another custom template or variable which binds with value of the selected options. Because customLabel of dropdown options can't be changed when it is selected.

You can use scoped slots (aka custom templates) for dropdown options and customLabel for selected options. have you tried this?

@shentao nope, actually i don't know how to do that, i thought customLabel returns option for custom templates , can you please help me with an example of how its done

@roylkng https://monterail.github.io/vue-multiselect/#sub-custom-option-template
You can provide any HTML you want. You can actually even use components inside (functional ones would do best). Example from the docs:
<multiselect v-model="value" placeholder="Fav No Man’s Sky path" label="title" track-by="title" :options="options" :option-height="104" :custom-label="customLabel" :show-labels="false">
    <template slot="option" scope="props">

         {{ props.option.title }}
         {{ props.option.desc }}

   </template>
</multiselect>

Thanks @shentao . But can we get HTML input for customLabel as well.

Not really for customLabel but rather for selected options, you mean. I guess that’s possible. :)

Yes  i meant selected options, looking forward for the feature. Thanks man.

Implemented custom slot for tags (selected options). Will be released soon.

Hello,
I'm trying to use the tag slot to modify the tags display to show flags icons next to country names.
I'm using it like this (after looking into source code)
<template slot="tag" scope="props">

    {{props.option.name}}

</template>

I have an issue on the delete link.
If i don't set @keydown.enter.prevent="removeElement(option)"  @mousedown.prevent="removeElement(option)" tags can't be deleted.
If i set it, i have an error message
Property or method "removeElement" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.
I think i don't use this correctly, but i'm not able to find a solution.
How can i reference the native removeElement method in my custom template (or not but, be able to delete tags)?
Regards.

@arunrreddy i did not solved it, i think this is an evolution of the tag system. Maybe a new slot or an update of the current slot tag can be the solution, but i'm not a Vue.js master. Sorry.
Maybe @shentao can give us some tips ?

The only way we can delete selected tags right now is to select on the option already selected if it is available in the drop-down. @shentao Is there a way to access the removeElement method written for the action triggered on clicking the delete icon on a tag.

Works like a charm! Thanks a lot!

@jaybones90 Thank you this it was very helpful for me :-)


Adding a comment at the end of a query results in a syntax error

Describe the bug
Steps to reproduce

Add a comment at the last line of a model

select *
from {{ ref('some_ref') }}
where id = 1 -- some comment

Run model
Get an error

 Code: 62. DB::Exception: Syntax error: failed at position 15 ('(') (line 1, col 15): (select

Expected behaviour
To not raise a syntax error
Code examples, such as models or profile settings
dbt and/or ClickHouse server logs
Configuration
Environment

dbt version: 1.7.9
dbt-clickhouse version: 1.7.3
clickhouse-driver version (if using native): 0.2.6
clickhouse-connect version (if using http): 0.7.2
Python version: 3.10.9
Operating system: MacOS / Linux

ClickHouse server

ClickHouse Server version: 23.8
ClickHouse Server non-default settings, if any:
CREATE TABLE statements for tables involved:
Sample data for these tables, use clickhouse-obfuscator if necessary

related: https://github.com/ClickHouse/dbt-clickhouse/pull/212

to be clear #212 seems to have not solved the problem.
@tevariou  Can you by any chance paste in the compiled code as well as where it actually errors? It seems cutoff.

select
    *
from
    {{ get_source("mimic_iii", 'admissions') }} -- test


Build apk with last version android studio

Steps to reproduce
none
Expected results
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
Note: /Users/michelleraouf/.pub-cache/hosted/pub.dev/google_api_availability_android-1.0.1/android/src/main/java/com/baseflow/googleapiavailability/GoogleApiAvailabilityPlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
Actual results
none
Code sample
none
Screenshots or Video
No response
Logs
No response
Flutter Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.24.3, on macOS 14.6.1 23G93 darwin-arm64, locale en-EG)
[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.2)
[✓] VS Code (version 1.93.1)
[✓] Connected device (3 available)
[✓] Network resources
• No issues found!

Closing this issue in favor of https://github.com/flutter/flutter/issues/156111 as that issue provided more detailed steps and sample code. Please follow it for updates.


[Bug] Unable to download Excel Spreadsheet (Media type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')

Description
Quoting from this discussion on discord:
https://discord.com/channels/725602949748752515/760761686549463060/858014134444228638
I've written some code that returns an Excel Spreadsheet (Media type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'). I've dockerized the code and added it in to the Appsmith docker-compose so that it's visible from the APPSMITH internal network and also exposed a port so I could reach it directly.
In my APPSMITH ui, I have three widgets. 2 of them set the arguments for the API call and the third is a button. The onClick action runs the API call, and onSuccess call of that onClick action is the download action.  The data it donwloads is {{APICALL.data}} and has a manually entered filename (for simplicity; eventually, I would like to pull the filename from the content-disposition header).
The issue is that the file is corrupted when downloaded from appsmith, and not when downloaded directly from the API. There are some size differences in the file
Response from the api:
https://gist.githubusercontent.com/pgvee/c54d1aa7f5a6bbb59f33ef07caf37d6a/raw/172e097f5bca7c1cec7dec542219a9277c7b7a79/response.json
Details of the api:
return StreamingResponse(tmp,
        media_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
        headers={"content-disposition": f"attachment; filename=reorderReport-{end_date}-{strat}.xlsx"})

@hetunandu can we do something here?

@hetunandu has updated the docs for this temporarily, we need to find a way to allow downloads for blobs.

@hetunandu can you detail what the problem here is?

I also encountered a similar problem, and the downloaded Excel file could not be opened

@Nikhil-Nandagopal @rishabhsaxena was this fixed? I'm trying to download an excel spreadsheet too but the file that gets downloaded is eventually corrupted. Here are all the ways I've tried downloading the file but they all failed:
let templateData = Query.run(); const blob = new Blob([Query.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}); const url = URL.createObjectURL(blob); download(url, "file.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
let templateData = Query.run(); const blob = new Blob([Query.data], {type: 'application/vnd.ms-excel'}); const url = URL.createObjectURL(blob); download(url, "file.xls", "application/vnd.ms-excel");
let templateData = Query.run(); download(Query.data, "file.xls", "application/vnd.ms-excel");
download("https://test.com/file.xlsx", "a.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
download("https://test.com/file.xls", "a.xls", "application/vnd.ms-excel");


Opening a linked backlinks window removes the Todoist queries

Selecting 'Open Backlinks' in this menu will open a linked backlinks window and the Todoist query is removed.

The only way to get it back is to edit the query.

I've been unable to reproduce this in a while, marking as closed


refactor resize dimensions

resize dimensions/variables when writing to Variables (as netcdf4-python does) only for legacy API
return padded arrays (up to current size of unlimited dimensions) for both API's
refactor resize_dimensions
enhanced tests

Update: changed list (#101 is not needed anymore)

The difference is that netcdf4-python/netcdf-c changes the dimension size but not the size of all connected variables (in the underlying DATASPACE). Instead it just reports the Variable's having the size of its dimensions. On access it will return a masked array filling not available data.

This seems like really messy logic to me, but I guess we could copy it. Presumably it should be able to make a netcdf file with only some expanded variables with netcdf4-python, which we could compare against for testing.
I think it's much more important to read data like this than to write it. I'm not even sure I would support writing expanded variables via assignment at all in the non-legacy API. In general, explicitly enlarging dimensions seems like a better approach to me.

Yes, there are some quirks in netcdf4-python/netcdf-c as well as in hdf5.
One reason for such behaviour might be if you create hundreds of variables with an unlimited dimension and then fill only one variable up to a reasonable large size, the other variables are not affected on disk (saving space). Not sure if this was the intention in the first place, but it does make some sense at least.
I did not add the reading part yet, since we would need to have access to the dimension scales on read time. This would work for the mode='r' case when dimension scales are available, but while creating dimensions/variables this won't work since the dimension scales are currently created at file close. It's very much interconnected everything.
If I got all right, then I'll move forward with this PR like this:

apply the netcdf4-python behaviour to the legacyapi on read/write
apply the netcdf4-python behaviour to the new api only for read (and force the user to enlarge dimension before write)
create special test case using mode="r" to test reading against netcdf4-python testfile

One more question: How should the resize_dimension work? Should it resize all connected variables (as it does now), or should it just resize the dimension?

@shoyer I've added the necessary changes according to your suggestions. Also updated README.txt.

Rebased on latest master here, too.

Found another glitch while working on #101. This is now ready for review.

@shoyer I'll come back to this after #104 and #112 are in.

rebased on latest master

another rebase after #104 and #112 are in

Update:
After the dimension scale refactor the current status of this PR is as follows:

resize dimensions/variable when writing to a variable (as netcdf4-python does) only for legacy API, but do not resize other variables (which share affected unlimited dimensions)

return padded arrays (with fillvalue, up to current size of unlimited dimensions) for both API's

report sizes from connected dimensions, not underlying h5 datasets for both API's

@shoyer Before I clean-up things here, it would be great if you could have a another look at this.

I've combined and rebased commits on latest master. This is ready for review from my side.

@shoyer It would be great, if you could review this PR. It's one of the big chunks (together with #127) before we can move to h5netcdf 1.0.

Rebased on latest master again.


Too many connection open connecting to Greenplum database

Description
After upgrading to DBeaver Enterprise 22.2.0, we bagan experiencing  this issue. When I connect to Greenplum database, Dbeaver automatically open another 8 connection which are always in the idle state. Since my user id has max 8 connection limit so I keep getting too many open connection error.
Killing those connection resolves this issue temporarily .
DBeaver Version
Enterprise Edition 22.2.0
Operating System
Windows 10
Database and driver
Greenplum 5.28.7 and 6.19
Steps to reproduce
Starting Dbeaver and connecting to the database
Additional context
No response

Have you configured these settings https://github.com/dbeaver/dbeaver/wiki/Separate-Connections?

I'm closing the issue as it's been resolved via the support system on our website.

I did not see any guidance which fix this issue. Not sure why this issue is closed?

No.
Regards
Sachchida (Sachi) N Ojha
This is a PRIVATE message. This message, and any attachments, is for the
intended recipient(s) only, may contain information that is privileged,
confidential and/or proprietary. If you are not the intended recipient,
please delete without copying and kindly advise us by e-mail of the mistake
in delivery.
On Thu, Apr 13, 2023 at 1:11 PM Elizabeth @.***> wrote:

Haven't you discussed it with our technical support in our technical
support site?
—
Reply to this email directly, view it on GitHub
https://github.com/dbeaver/dbeaver/issues/19479#issuecomment-1507319068,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYALLQBCOB5ONSLMM2IW3YTXBAXUNANCNFSM6AAAAAAWHBVGKM
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hi @sachiojha,
We have created the ticket on your behalf in the online support system on the DBeaver website. There is a tab called "Tickets"  in your personal account on the website. Please check it.
Please let us know if you have any questions.

It's been a while since no update here, so I'm closing this issue. If it's still actual, please, let me know.


not all systems have Internet access, this provides an opportunity fo…

minor refactor to allow override of docker-compose URL (production systems in our environment don't have outgoing Internet access, and as such we deploy from an internal web host).
I know that this is a relatively common practice, so this small refactor allows for using an internal URL for docker-compose installation.

@findtopher thanks for this, appreciated. I've left a few quick comments. It would also be useful to add some simple unit tests to the test suite. These really help with keeping things working with all the changes being made by different folks to the module. If you need some pointers with the testing just let me know.

@garethr - unit tests included (along with a painful learning cycle about using parameters in other parameters).  This should be ready now; please let me know if you see testing gaps you'd like me to address.


Validate Issuer Using New Validation Model in Saml2SecurityTokenHandler

Validate Issuer Using New Validation Model in Saml2SecurityTokenHandler
Description
Implements issuer validation as part of the new ValidateTokenAsync method in Saml2SecurityTokenHandler
Fixes #2883 and #2880

@FuPingFranco will you be addressing the comments

@FuPingFranco please advise if you intend to update this, or I can make the changes.
I just want to avoid duplicating efforts.

@jennyf19 & @iNinja , I addressed the comments.


fix release workflow

#437

Rename package name to cryoet-data-portal-web to be clearer it's a frontend tag
Adds workflow to generate frontend release PR for every push to main

Any existing PRs will edited to include the updated changelog

Refactored the prod workflow

Fix issue with workflow not detecting previous release tags
Able to tag a release after PR is merged
Adds a comment to the PR with a link to the tag the PR was released in
Add workflow dispatch option to deploy to Terraform and skip PR merging + tagging

Demos
All example runs, PRs, and tags can be found in my fork:
https://github.com/codemonkey800/cryoet-data-portal

We should also have a way to rerun the workflow for the case where a version was tagged successfully, but requires redeployment because the prod deploy failed. 🙈


Implement CI for RHOBS

This PR contains some changes which are related to implementing CI for RHOBS
The workflow test.yaml performs the following tasks:

Install docker on ubuntu github runner.
Get OC CLI binary.
Deploy microshift docker container.
Deploy some of the dependencies.
Run the test script which is present in tests/ci_test.sh

The ci_test.sh primarily deploys each resources of RHOBS one at a time on microshift cluster and then do a pod health check just to verify that pod is in running state after applying the required manifests. This is related to RHOBS-552. Currently it covers only basic validation. The in-depth validation can be covered under post-deploy job
This is still in progress so any comments/suggestions or contributions are welcome😄
If you want to test with any breakable commit then just change the following syntax inside .github/workflows/test.yaml and push with your breakable commit/changes to verify
# on:
#  workflow_run:
#    workflows: ["CI build"]
#    types:
#    - completed

# For debugging the pipeline
on: [push]

Note: Currently the test pipeline takes approx 30 min to complete. Will try to reduce this number if possible

Awesome ❤ for doing this long-standing work! I really appreciated all the effort put into this. I have a couple of improvement comments to make it sustainable and easy to extend for our other teams (e.g. my folks and myself from the log storage team and the tracing folks).

Let's try to squeeze as much as possible out of existing GitHub actions for setting up microshift, docker, oc binary. Using actions of the shelf improves caching and in turn build times.
Much of the ci-test.sh can be simplified with existing commands as oc rollout or the older oc wait. Consider to re-use as much as possible from: observatorium e2e.sh
Since we start a huge system into a cluster, it would super helpful to have a must-gather in case of erroneous build runs, e.g. have a look here observatorium must-gather func

Thanks @periklis 😊 for taking time to go through this. Your suggestions are insightful and top notch 🙇🏼♂. I didn't realised  the thought of extending it for other teams. I agree with you it will make CI super easy to use.
The above links are very helpful and will take reference from it.

@vprashar2929 is this still valid now that #421 is merged? If not, I think we should close it.


ProtectedMemberInFinalClass triggered on Spring component with allopen compiler plugin

I have a Spring project with an allopen plugin installed to make classes non-final by default. Would be nice for detekt to have a configuration option to denote presence of allopen plugin and behave accordingly.
Otherwise protected methods of Spring components get ProtectedMemberInFinalClass false positive:

Would it be enough for your use case to have a new configuration in this rule allowing you to ignore classes with the annotations defined there?

Need to check if allopen plugin makes all classes open by default or only those with @Component-like annotation

Would be nice for detekt to have a configuration option to denote presence of allopen plugin and behave accordingly.

That's not trivial. Specifically as we already had in the past problems with compiler flags (and therefore plugins) not being aligned with the Kotlin compilation and the Detekt run.
Potentially something that could be addressed with github.com/detekt/detekt-compiler-plugin
The solution suggested by @BraisGabin would be the safest for you.
Also if you have the all-open plugin you can probably disable the ProtectedMemberInFinalClass rule entirely as you won't effectively have final classes.

I think that after #4102 this can be closed. Open again if that's not true.


[UI] Homepage and search updates

Homepage:
Don't allow tiles to spread the full width of the display column, even if they're alone on a row.
Before

After

Search styling
Fixes an issue in which the search component was escaping the bounds of the mobile viewport, also constrains the icon and hover/focus states of the component.
Before

After

seems legit!


BUG: Already joined prevents joining

A player trying to rejoin by clicking the reforms receives an error that they are already joined.

I think that is a server error isn't it?

I think that is a server error isn't it?

Yes it is, but regardless we should allow access to the room, right?


TAS/CF installation fails on task 193 with NoCredentialProviders error.

Overview
Installing the TAS runtime (product details below) fails with an error of NoCredentialProviders: no valid providers in chain. Deprecated..
Products

om version: 7.2.0
Installation Steps
  om configure-product \
    --config=$configFile \
    --vars-file=$varsFile

  om apply-changes \
    --product-name cf

Attempted Workarounds

I have attempted to configure both BOSH and TAS with AWS IAM instance profiles and access keys.
I am using external blobstores (S3 buckets).

TAS Blobstore Config
  .properties.system_blobstore:
    selected_option: external
    value: external
  .properties.system_blobstore.external.access_key:
    value: ((tanzu_ops_user_access_key))
  .properties.system_blobstore.external.buildpacks_bucket:
    value: ((s3_bucket_name_buildpacks))
  .properties.system_blobstore.external.droplets_bucket:
    value: ((s3_bucket_name_droplets))
  .properties.system_blobstore.external.encryption:
    value: true
  .properties.system_blobstore.external.endpoint:
    value: https://s3.us-east-2.amazonaws.com
  .properties.system_blobstore.external.iam_instance_profile_authentication:
    value: false
  .properties.system_blobstore.external.packages_bucket:
    value: ((s3_bucket_name_packages))
  .properties.system_blobstore.external.path_style_s3_urls:
    value: false
  .properties.system_blobstore.external.region:
    value: us-east-2
  .properties.system_blobstore.external.resources_bucket:
    value: ((s3_bucket_name_resources))
  .properties.system_blobstore.external.secret_key:
    value:
      secret: ((tanzu_ops_user_secret_key))

BOSH IaaS Config
  iaas_configuration:
    access_type: keys
    access_key_id: ((tanzu_ops_user_access_key))
    secret_access_key: ((tanzu_ops_user_secret_key))

Detailed Error Message
 Expected task '193' to succeed but state is 'error'
 '
Task 193 | 13:12:21 | Error: Unable to render instance groups for deployment. Errors are:
 Failed to download S3 object, code 1, output: '', error: '2021/06/02 13:11:57 performing operation get: NoCredentialProviders: no valid providers in chain. Deprecated.
 For verbose messaging see aws.Config.CredentialsChainVerboseErrors
 '
 Failed to download S3 object, code 1, output: '', error: '2021/06/02 13:12:17 performing operation get: NoCredentialProviders: no valid providers in chain. Deprecated.
 For verbose messaging see aws.Config.CredentialsChainVerboseErrors
 '
 Failed to download S3 object, code 1, output: '', error: '2021/06/02 13:12:18 performing operation get: NoCredentialProviders: no valid providers in chain. Deprecated.
 For verbose messaging see aws.Config.CredentialsChainVerboseErrors
 '
 Failed to download S3 object, code 1, output: '', error: '2021/06/02 13:12:19 performing operation get: NoCredentialProviders: no valid providers in chain. Deprecated.
 For verbose messaging see aws.Config.CredentialsChainVerboseErrors
 '
 Failed to download S3 object, code 1, output: '', error: '2021/06/02 13:12:21 performing operation get: NoCredentialProviders: no valid providers in chain. Deprecated.
 For verbose messaging see aws.Config.CredentialsChainVerboseErrors
 '
 Failed to download S3 object, code 1, output: '', error: '2021/06/02 13:12:21 performing operation get: NoCredentialProviders: no valid providers in chain. Deprecated.
 For verbose messaging see aws.Config.CredentialsChainVerboseErrors
 '

Task 193 Started  Wed Jun  2 13:11:25 UTC 2021
Task 193 Finished Wed Jun  2 13:12:21 UTC 2021
Task 193 Duration 00:00:56
Task 193 error

Exit code 1
===== 2021-06-02 13:12:22 UTC Finished "/usr/local/bin/bosh --no-color --non-interactive --tty --environment=<IP_ADDRESS> --deployment=cf-1f493917b1c1cf206ba6 deploy --no-redact /var/tempest/workspaces/default/deployments/cf-1f493917b1c1cf206ba6.yml"; Duration: 207s; Exit Status: 1
Exited with 1.
Exited with 1.

As a general architectural question, when installing a product like TAS/CF, what purpose do the Ops Manager and BOSH instances (as shown below) serve?

My working assumption is the all om commands result in API calls to Ops Manager. Ops Manager then orchestrates the installation of TAS/CF. I can tell from the logs that BOSH is involved somehow and I can see that the CPU of the bosh/0 instance spikes (i.e. it's being used) but it isn't clear to me:

What the BOSH instance exists to do.
How the Ops Manager communicates with the BOSH instance.

I was able to resolve this issue by defining a vmextension.
vmextensions-configuration:
  - name: iam-instance-profile
    cloud_properties:
      iam_instance_profile: ((instance_profile_name))

And then referencing it in the resource configuration for each instance defined in both the directory config and the TAS runtime config.
resource-configuration:
  compilation:
    additional_networks: []
    additional_vm_extensions:
      - iam-instance-profile
  director:
    additional_networks: []
    additional_vm_extensions:
      - iam-instance-profile


RFC: add way to run dep via container

This ensures that the same version of dep is utilized between all
developers who need to update a dependency.
To build the image:
make deps-image

To update dependencies:
make update-deps

Signed-off by: Ian Vernon<EMAIL_ADDRESS>Fixes: #8658
TODOs if the general idea for this is approved:

[ ] Create a repository on Dockerhub and build a specified version of it, and put it in the make update-deps target instead of latest
[ ] Update documentation to remove need to install dep directly

I didn't do the above because I figured it'd be best to get a basic POC going.

This change is

Seems a little excessive to run dep in container just for this purpose. One might wonder what about all other tools / lints that we use? Why aren't they vendored somehow as well? Moving to go modules will deprecate this as well.

@aanm I intend to backport this to prior releases, which will not have go modules - this includes v1.4, v1.5, and v1.6. The motivation behind this, is that I faced an issue yesterday when trying to backport in which the version of dep I had (which fulfilled the version requirements listed in the documentation), in which there were a bunch of bizarre errors thrown at me by dep. Upgrading to a specific version of dep fixed the issue.
Containers are fairly lightweight, and reduce the list of dependencies developers need to have running locally, since those are packaged in the container.
What other tools / lints are you referring to? Things like ineffassign, for example would be great as well, IMO. We can hide it behind a Makefile target and not have to worry about anything except that the developer is able to run Docker.

Coverage increased (+0.01%) to 44.097% when pulling a049e7347e26f896b8d9dee836a097695716f2cd on pr/ianvernon/add-dependency-image into d3b6298de7f04c533b537de079222dc22981125c on master.

I like the idea and the implementation is very simple. I wouldn't mind having other tools and linters to be running as containers too.

I am going to go ahead and create the Docker image repository / update the documentation and will link to those as part of this PR.


Ensure SpkGen algorithm is still consistent with academic literature

Opening this to track the ongoing work happening in the background after the merging of #62, @BasileiosKal and @mikelodder7 will co-ordinate on this and once complete we can close this issue

Just to track some issues. All of those may become mute from issue #70.

After talking with Mike i understood that the problem was not that the equations between the spkGen and spkVerify are not consistent but that they are not consistent with the paper, especially the ones going into the SPK. Specifically, the first equation proven by the SPK in the spec now is Abar - D = - A' * e - H0 *r2 while the same equation in the paper is Abar - D = - A' * e + H0 *r2. The second equation is the same in both cases. From my calculations, there is an extractor for those equations, however its quite different from the one used in the paper, which means we must describe it in the spec. IMO it would be better to change r2^ = r2~ + c * r2 to  r2^ = r2~ - c * r2 so at least the equations going into the SPK will be the same as in the paper, meaning that we don't have to describe a new extractor in the spec. Changing the formulas is fine but i would prefer equivalent equations to go into the SPK so we don't have to describe a new extractor, especially since it doesn't seem to give to much of an efficiency advantage (it's only calculating one more negative).

Just to track another issue here, Mike mentioned that the m^_i in C2 in spkVerify may need to go with a "-", although looking at it now it seems consistent?? because of the -r3~ and -r3^ multiplied with D? I may be missing something.

Closing in favour of #79 which documents a broader set of considerations.