Slice Timing

Hi @Lestropie ,
I got CUDA implemented to work with docker and wanted to test using eddy_cuda9.1. However, I'm running into a problem. At the point of dwipreproc, the slice timing in the header has been lost for dwipreproc_in. That image ends up having a single slice timing value, rather then e.g. 60 values.
I know this was suggested in #44. Thoughts on a solution?

I got CUDA implemented to work with docker

Nice! Would be awesome to get a PR to bring in such changes.

At the point of dwipreproc, the slice timing in the header has been lost for dwipreproc_in. That image ends up having a single slice timing value, rather then e.g. 60 values.

Can you confirm that valid slice timing information is present in both the dwi/ and fmap/ JSONs, but collapses to a single value as soon as the concatenation is performed, and is not attributed to some other step in between that concatenation and the dwipreproc step?
Given the concatenation is not along the slice encoding axis, the information should be preserved as long as the contents of the key-value entry are identical. Do the slice timing data differ at all between the input volumes?
I'll have to think a little more about that area of the pipeline. There has been at least some doubt raised about the validity of concatenating data with different phase encoding directions for running dwidenoise; I also need to better deal with the prospect that images in the fmap/ directory may not have the same spatial resolution as those in the dwi/ directory, in which case they cannot be concatenated without interpolation, and one should not interpolate values prior to dwidenoise.
Modifications to the MRtrix3 Python API for the upcoming release do include a mechanism that can be used to better utilise JSON files for header key-value override. So once that release is done and I finally get to update this tool accordingly, that will be a more convenient mechanism for dealing with such issues.
If you simply want to get your version of the script running, perhaps the easiest solution would be to strip down that concatenation process to only operate across DWIs, i.e. don't combine & then separate out the fmap files, and instead just concatenate the latter separately, run through mrdegibbs, and feed to dwipreproc -se_epi.

Hi @Lestropie
Regarding a PR for CUDA implementation, I can certainly do that but I before I do, I wanted to run past you what I had to do in order to get it working:

I had to install Docker CE 19.03 and nvidia-docker (https://github.com/NVIDIA/nvidia-docker). Older versions of nvidia-docker work with older versions of docker, but the current version allows for accessing GPUs directly.
I had to change the Ubuntu version in the Dockerfile to 16.04. This is for a couple of reasons. First eddy_cuda is updated to 9.1 as of FSL v. 6.0.1 and 9.1 is available for 16.04 but not 18.04. Second, we are running 16.04 here. I don't know if it'll make a difference. The major thing I can potentially think of is that the default python version is 2.7.2, not 3.5+.
Using nvidia-docker as a pass through, I grabbed the 9.1 CUDA files in the Dockerfile and then at the end set ENV variables to have access to the GPU cores.

Like I said, I can do a PR for it but it will also take some instructions and probably necessitates two versions of the Dockerfile (a CUDA version and a non-CUDA version).
Regarding the SliceTiming, I can confirm that it is a keyval in the original dwi/ image, present after converting from nii.gz to .mif, and is the correct length. The fmap/ file does not have slice timing. After concatenation, there is no 'SliceTiming' keyval.
So I've tested it out not concatenating the fmap and dwi images and the slice timing is preserved. However, there's a new issue. The object for 'SliceTiming' is a list, for example:
[[4.64], [0.0], [4.795], [0.155], [4.95], [0.31], [5.105], [0.465], [5.26], [0.62], [5.4125], [0.7725], [5.5675], [0.9275], [5.7225], [1.0825], [5.8775], [1.2375], [6.0325], [1.3925], [6.1875], [1.5475], [6.3425], [1.7025], [6.495], [1.8575], [6.65], [2.01], [6.805], [2.165], [6.96], [2.32], [7.115], [2.475], [7.27], [2.63], [7.425], [2.785], [7.5775], [2.94], [7.7325], [3.0925], [7.8875], [3.2475], [8.0425], [3.4025], [8.1975], [3.5575], [8.3525], [3.7125], [8.5075], [3.8675], [8.6625], [4.0225], [8.815], [4.175], [8.97], [4.33], [9.125], [4.485]]

The length of that list is 60, same number as the number of slices in my image. However, dwipreproc sees it as length = 1 because line 230 of dwipreproc accesses only the first item slice_timing = dwi_header.keyval()['SliceTiming'][0] instead of slice_timing = dwi_header.keyval()['SliceTiming'].
I don't know if this is a Python 2.7 vs Python 3.5+ thing but it disallows slice-to-volume correction at present.

I had to change the Ubuntu version in the Dockerfile to 16.04.

Don't think that would be a massive option; I jumped from 14.04 to 18.04 simply because I could.

Additionally, Python 2.7 is the default for Ubuntu 16.04.

Also shouldn't be a problem; we've made sure everything in MRtrix3 works with both Python 2 and 3, and this script is no different.

and probably necessitates two versions of the Dockerfile (a CUDA version and a non-CUDA version).

If there's a way to do that such that DockerHub can still identify and build both, that'd be awesome. Can look into that if you make a PR.

The object for 'SliceTiming' is a list, for example:

Okay, that might be trickier to sort out. Acquiring those data relies on a mrinfo -json_all call, followed by a Python json.load(). From the code I can infer that when I wrote it, the Python JSON library was giving me those data as a list of lists; the outer list had only one entry, the contents of which was a list of floats. At your end, the same call is giving a list of lists, but the outer list has a number of entries corresponding to the number of slices, and each of those lists contains only one entry. So the question is, why are the data produced by the same code giving two different results:

The Python JSON library does appear to have some degree of type identification, as I've never had to do any explicit type conversion in the image.Header constructor. This could conceivably vary slightly between Python versions.

Anything else could conceivably result in different outcomes between Python versions; e.g. how string data are handled.

The mrinfo -json_all call itself depends on "JSON for Modern C++" as an external library. A change there could conceivably change how the raw text data stored in the image header are exported to JSON.

Ideally I'd like to narrow this down. However if the data can be produced in this format in some instances, then the dwipreproc script probably needs to support both, which will require wrapping up some logic to disentangle the two and reformat either into a simple list of floats.

So a little poking and prodding later:
I ran the following:
# Set JSON Path
json_path = /path/to/original/dwi.json

# Load the JSON
with open(json_path, 'r') as f:
    json_elements = json.load(f)

# Save slice time element
slice_time = json_elements['SliceTiming']

# Print it
print(slice_time)

## Output
[4.64, 0, 4.795, 0.155, 4.95, 0.31, 5.105, 0.465, 5.26, 0.62, 5.4125, 0.7725, 5.5675, 0.9275, 5.7225, 1.0825, 5.8775, 1.2375, 6.0325, 1.3925, 6.1875, 1.5475, 6.3425, 1.7025, 6.495, 1.8575, 6.65, 2.01, 6.805, 2.165, 6.96, 2.32, 7.115, 2.475, 7.27, 2.63, 7.425, 2.785, 7.5775, 2.94, 7.7325, 3.0925, 7.8875, 3.2475, 8.0425, 3.4025, 8.1975, 3.5575, 8.3525, 3.7125, 8.5075, 3.8675, 8.6625, 4.0225, 8.815, 4.175, 8.97, 4.33, 9.125, 4.485]

So, as can be seen, json.load is yielding the list of floats as expected.
However, when the JSON is imported when converting from the original image to dwi1.mif (line 211 ), it appears that it's at this point that it converts to a list of lists.
# Convert from original to dwi1.mif
run.command('mrconvert ' + entry + grad_import_option + json_import_option +
            path.toTemp('dwi' + str(dwi_index) + '.mif', True))

# Get slice timing keyval
image.Header('dwi1.mif').keyval()['SliceTiming']

# Output
[[4.64], [0.0], [4.795], [0.155], [4.95], [0.31], [5.105], [0.465], [5.26], [0.62], [5.4125], [0.7725], [5.5675], [0.9275], [5.7225], [1.0825], [5.8775], [1.2375], [6.0325], [1.3925], [6.1875], [1.5475], [6.3425], [1.7025], [6.495], [1.8575], [6.65], [2.01], [6.805], [2.165], [6.96], [2.32], [7.115], [2.475], [7.27], [2.63], [7.425], [2.785], [7.5775], [2.94], [7.7325], [3.0925], [7.8875], [3.2475], [8.0425], [3.4025], [8.1975], [3.5575], [8.3525], [3.7125], [8.5075], [3.8675], [8.6625], [4.0225], [8.815], [4.175], [8.97], [4.33], [9.125], [4.485]]

Using the -clear_property and the -append_property options in mrconvert, I cleared the SliceTiming keyval and added the slice times from the list of floats I saved using json.load()['SliceTiming]. (BTW: I had to this one at a time in a loop. Saving the list of floats to an object and appending that object yielded an error where it thought I had 61 output files). This yields the same list of 1D lists.
So it seems that the CPP JSON method is converting it. I can see two possible methods for "easily" resolving the issue:

Save the slice timings using json_load, create a --slspec file, and pass that argument to eddy in dwipreproc.
Change the dwipreproc call to grab the length of the list of lists len(dwi_header.keyval()['SliceTiming']). I just don't know if there are going to be downstream issues if it stays in list of lists format.

Ah. I think it just registered what I've done wrong.
As soon as I first write the slice timing information from an input DICOM image to an image header (in RAM, before it's even gone to disk), I use commas rather than spaces. The JSON exporter must therefore interpret that as a sort of newline, rather than turning the comma-separated list of values into a list of floats.
So the issue is that all the JSONs I've worked with have been themselves erroneous due to having been generated by MRtrix3, and I've tweaked dwipreproc to import buggy data; you've now provided it with a JSON generated through something other than MRtrix3, and the dwipreproc fudge has been exposed. :man_facepalming:
I'll need to:

Fix the DICOM import in MRtrix3

Add a fudge in dwipreproc to detect the erroneous JSON data and modify it accordingly (since someone could update the software but still try to run it on already converted data)

Import the change into this tool.

Ok, related to this topic:
I now have a Dockerfile and edits to the Python script in place that negates the need for multiple Dockerfiles in order to enable CUDA processing. It should also be flexible enough to use as a stand alone (non-Docker) script as it only adds one Python dependency (numba: https://numba.pydata.org/numba-doc/dev/index.html).
There will be some required documentation in terms of setting up Docker to allow CUDA and I don't know how this might work with Singularity but I can post a PR with the changes in the dev branch for you to review if you're interested.

Would definitely be interested in getting this working; I tend to use the script outside of a container myself purely to utilise CUDA. I'd likely need to see the code to understand why numba is required; ideally if it's only there for getting CUDA working in the container itd be made a non-essential dependency outside of the container with some except ImportError trickery. dev is a bit of a moving target at the moment given the incoming requests, but I can always assist should things diverge.

Doing this on my phone, so I'll be more verbose later.
In what I have set up, I'm exposing the GPUs to Docker using nvidia-docker installed locally (see initial post above). This adds a --gpus flag to the Docker call if I want CUDA capability. CUDA libs are then installed in the Dockerfile and exist regardless of whether CUDA is being used it not.
In the script, I'm using len(numba cuda.gpus)  in a try except else statement. If there are no CUDA GPUs, it throws an error and switches to eddy_openmp. Otherwise it uses CUDA. This way, you don't have to remove eddy_cuda in the Dockerfile because it only matters if there CUDA cores available.

Okay. In that case, I'd probably just accept the fact that the script will issue a warning if the CUDA version of eddy is not executed successfully, and remove the numba dependency.
In fact in retrospect this probably only happens if executed with heightened terminal verbosity: otherwise, the warning of eddy_cuda failing will be generated inside dwipreproc, and therefore never get escalated to the terminal. Indeed this will be improved later in the updated MRtrix3 Python API (MRtrix3/mrtrix3#1449), which utilises custom exceptions, allowing me to catch and handle such things more sensibly.

Ok. So conceptually, just install the CUDA libs and let the script figure out if it can run CUDA.
Would you then not remove eddy_cuda in the build? If so, how would dwipreproc handle the --mporder flag if it tries to run CUDA and can't (assuming we can find slice timings as anticipated)?

The --mporder issue is an annoying one. The command help pages are interrogated to find out which command-line options they offer. Unfortunately the OpenMP version provides this option, but it immediately terminates the command if used. So the options presented in the help page can'e be 100% trusted. This is however again something that would need to be managed within dwipreproc rather than this script; that's really where all the automagic processing happens, this script just utilises it.

This is however again something that would need to be managed within dwipreproc rather than this script; that's really where all the automagic processing happens, this script just utilises it.

I suppose perhaps this is where my confusion comes in about the interface between the present script and the dwipreproc is supposed to function. Should dwipreproc take all available arguments and intelligently decide which ones are valid/run-able? It seem like no, since the script is parsing the help pages to decide which options are available and then feeding them to dwipreproc for execution.
Just so there isn't any confusion, the edits I made using numba weren't to alter the function of dwipreproc but rather argument parsing. I probably shouldn't have posted on my phone so I could actually paste in the code block, but here it is (added both in ParticipantShared and in the main function (with self. removed)):
        self.eddy_binary = fsl.eddyBinary(True)
        if self.eddy_binary:
                # Check to see if CUDA-enabled cores are available.
                try:
                        len(cuda.gpus)
                # Revert to eddy_openmp on error
                except:
                        self.eddy_binary = fsl.eddyBinary(False)
                        self.eddy_cuda = False
                        app.warn('eddy_cuda was found. However, no GPUs were available.')
                # Otherwise, CUDA!
                else:
                        self.eddy_cuda = True
        else:
            self.eddy_binary = fsl.eddyBinary(False)
            self.eddy_cuda = False

I suppose perhaps this is where my confusion comes in about the interface between the present script and the way dwipreproc is supposed to function.

Not sure if there's any "supposed to" in there; it's however I choose to make it. But in general, the number of users of dwipreproc far exceeds the number of users of this script; so if there's an issue that requires resolution, and it could theoretically be handled in either location, dwipreproc makes more sense. For instance, with the latest version of eddy no longer producing the CNR / residual map images unless command-line options are specified explicitly, dwipreproc -eddyqc_all will no longer behave as it used to, even for MRtrix3 users unaware of the existence of this tool. So:

... since the script is parsing the help pages to decide which options are available and then feeding them to dwipreproc for execution.

Given this observation, it's likely that dwipreproc will itself also have to query the eddy help page(s), so that it can determine which command-line options to pass to eddy in order to retain predictable behaviour.
It's probably the same for determining whether or not the CUDA version can be run, as well as any potential changes to command-line options necessary to get one or the other to work; these are decisions that need to be made for dwipreproc usage external to this tool also, so given I have the capability to modify both here and upstream, upstream probably makes more sense.

Well in that case I await the solution from the upstream changes :)
In the mean time, I'm running the current dev version of the script on my longitudinal dataset and it did a great job of parsing the data and appears to be doing everything as expected.

Should (finally) be fixed by upstream changes in #62.


feat: Add manual and auto update fields within application object to distinguish between the migration related changes

Description

When we run the DB migration and then try to commit the application, we are not providing any context as to why some changes are getting reflected even if the user hasn't updated any resource attached to the application. This leads to confusion if the commit is safe. This PR introduces the isManualUpdate and isAutoUpdate fields within the application object to detect if the changes are due to migration that occurred between the commits. This way client can consume this information to let users know about the changes that the user is seeing for status API.

Fixes #12065
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?

JUnit TC
Manual testing

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

/ok-to-test sha=b56c373

/ok-to-test sha=a509a21

/ok-to-test sha=eb8e6ac

/ok-to-test sha=388de0a

/ok-to-test sha=6a61da7

/ok-to-test sha=6a61da7


awesomplete issue

Hie,
I use the basic awesomoplete call inside a modal windows to gather a countryname:
Pays:

So that's works perfectly the first time I fill the input field, but the second time the  plugin is not called? What I need to do to refresh/reactive the plugin.
Thanks for your help

<label style="display: inline-block; margin-left:20px;">Pays:</label>
                <input class="awesomplete" id="upays" type="text" size="40"
                data-list="Andorra, Allemagne, Austria, Bulgaria, Belgium, Croatia, Denmark, France, Greece, Hungary,  Spain, Sweden, UK, Ukraine " />


Refactoring for use as importable package

Issue Type
Feature Request
OS
Other
OS architecture
Other
Programming Language
Python
Framework
PyTorch
Download URL for ONNX / OpenVINO IR
N/A
Convert Script
openvino2tensorflow
Description
First of all, thank you for your fantastic work on this. It blows my mind that yours is the only solution out there for converting NCWH to NWHC during conversion to tensorflow. Or at least, I have not been able to find any other solutions.
Considering that your code is regular python, a point of frustration for me, though, is that I am not able to simply import it into to my own code and run the parts I need and switch out parts that I need to work differently.
Would you be interested in refactoring your code and making it an importable package? I would happily volunteer my time to help out with this if you want. An added bonus would be that you can add unit testing and similar much more easily
Relevant Log Output
ModuleNotFoundError: No module named 'openvino2tensorflow'

Source code for simple inference testing code
import openvino2tensorflow

Thanks for the suggestion.
I would like to refactor the code. For example, as you suggest, I would like to add an interface to call from Script or clean up the redundant and buggy code. However, I maintain a lot of other OSS and cannot allocate enough time to work on replacing this tool right now.
My main focus and maintenance right now is this tool that directly processes ONNX.
https://github.com/PINTO0309/simple-onnx-processing-tools
I understand that using onnx-tf will significantly degrade the performance of the TensorFlow model due to the large amount of useless Transpose OPs extrapolated. However, since I can see no real advantage other than running TensorFlow Lite on Android Phone, I am considering onnxruntime as my mainstay runtime, noting that it offers significantly greater operational flexibility by switching between various backends.
e.g.

TensorRT
TensorFlow Lite
OpenVINO (CPU/GPU)
MNN
TVM
CUDA

Therefore, it is very hard for me to re-enhance this tool by myself, which has become bloated after two years of continually enhancing its functions little by little.
Pull requests that improve the usefulness of the tool are very welcome. However, I think it will take a very long time to review.

My use case is actually running TFLite on an Android (and iOS) phone.
Is there currently a different workflow you would recommend for this?

https://github.com/PINTO0309/onnx2tf


Is it possible to have conditional statements or loops?

Hi.
I've been using yabai for a good while now, just configured some small keybindings like swap and focus windows/spaces.
I want to run a set of commands based on a condition. So I want to change the layout of the space to float and arrange all the windows on the screen within a grid. Only if there are 4 windows open in a space.
Apologies for the ugly code, I'm just starting to figure out how yabai works:
ctrl + cmd - p : yabai -m space --layout float;\
                 yabai -m window --focus "$(yabai -m query --windows | jq -re "sort_by(.display, .frame.x, .frame.y, .id) | map(select(.visible == 1 and .subrole != \"AXUnknown\")) | reverse | nth(index(map(select(.focused == 1))) - 1).id")";\
                 yabai -m window --grid 2:6:0:0:2:1;\
                 yabai -m window --focus "$(yabai -m query --windows | jq -re "sort_by(.display, .frame.x, .frame.y, .id) | map(select(.visible == 1 and .subrole != \"AXUnknown\")) | reverse | nth(index(map(select(.focused == 1))) - 1).id")";\
                 yabai -m window --grid 2:6:0:1:2:1;\
                 yabai -m window --focus "$(yabai -m query --windows | jq -re "sort_by(.display, .frame.x, .frame.y, .id) | map(select(.visible == 1 and .subrole != \"AXUnknown\")) | reverse | nth(index(map(select(.focused == 1))) - 1).id")";\
                 yabai -m window --grid 1:6:2:1:2:1;\
                 yabai -m window --focus "$(yabai -m query --windows | jq -re "sort_by(.display, .frame.x, .frame.y, .id) | map(select(.visible == 1 and .subrole != \"AXUnknown\")) | reverse | nth(index(map(select(.focused == 1))) - 1).id")";\
                 yabai -m window --grid 1:6:4:1:2:1

Logic:

set layout space to float.
focus next float window
set it into a grid position
focus next window and set position within a grid.

This doesn't work perfectly but it breaks when there are no 4 windows in a space. Is it possible to have an if statement in here? And maybe a loop so I can loop through all the windows?

I have this working in my config files but it isn’t very elegant. I have the keycode execute a separate shell script, stored in my ~/.scripts directory.
The shell script then runs a yabai -m query command and stores the result. Then, an if statement executes the appropriate command.
It’s probably slower than executing it directly in the .skhdrc, but it’s the only way I could get it working.

Thank you. That does sound like a good idea. I'll give it a go 👍🏻


Release Google.Cloud.ServiceUsage.V1 version 1.2.0

Changes in this release:

Commit 66b9405: docs: Remove erroneous space in a docstring

Created release for Google.Cloud.ServiceUsage.V1-1.2.0


Test PR

Summary by CodeRabbit

Documentation

Introduced a new file client.md detailing how to create and manage HTTP clients in ZIO HTTP.
Added a new file endpoint.md explaining the concept of endpoints, API contracts, OpenAPI documentation, and creating a ZIO CLI client application.
Added a new file intro.md covering fundamental concepts for building ZIO HTTP applications.
Introduced a new file middleware.md explaining middleware, including examples and advanced techniques for creating and using middleware in ZIO HTTP.
Added a new file request-handling.md providing a guide on handling incoming HTTP requests.
Introduced a new file routing.md explaining HTTP routing and defining routes in ZIO HTTP.
Added a new file server.md detailing how to set up and configure HTTP servers using ZIO HTTP.

@coderabbitai The reviewer made following suggestions: Incorporate it please :
Hello @varshith257
Thanks for your contribution!
I took a look at your work! I think we need to clarify some terms.
So before moving forward, let's see how I think about different sections of the documentation project (in this case ZIO HTTP).
Concept - The Concept section delves into the foundational principles, terminologies, ideas, and methodologies. It should provide users with an understanding of the core domain or the fundamental concepts related to the problem being addressed. We don't need to provide working examples there! It should also give users an overview of the solution in general terms, helping them grasp the key ideas before delving into more detailed information.
@varshith257
I think we are not on the same page, as I see kinds of stuff that are mostly practical stuffs instead of core concepts.
We only need to cover terms and concepts, at best with "no" examples to demonstrate general concepts for each page in this section (or at most with one example for each page).
What you have done until now is somehow similar to a practical overview.
Once refer the files  and incorporate the suggestions made by reviewer. The aim of this PR is rollout comprehensive documentation

@chintu-777, I have reviewed the contents of the documentation files. Here are the observations and suggestions to align them with the reviewer's expectations:

client.md:

The file contains detailed practical examples and explanations.
Suggestion: Focus on explaining the core concepts of the ZIO HTTP client, such as its key components and features, without detailed examples. You can keep one simple example to illustrate the concept.

endpoint.md:

The file includes practical examples and detailed explanations of defining and implementing endpoints.
Suggestion: Concentrate on the fundamental concepts of endpoints, their purpose, and their role in ZIO HTTP. Limit the examples to one simple illustration.

intro.md:

The file provides an overview of fundamental concepts.
Suggestion: This file aligns well with the reviewer's expectations. Ensure it remains focused on core concepts without practical examples.

middleware.md:

The file contains extensive practical examples and detailed explanations of middleware usage.
Suggestion: Focus on the concept of middleware, its purpose, and its role in ZIO HTTP. Limit the examples to one simple illustration.

request-handling.md:

The file includes practical examples of handling requests.
Suggestion: Concentrate on the core concepts of request handling, such as extracting data from requests and generating responses. Limit the examples to one simple illustration.

routing.md:

The file contains practical examples of defining routes.
Suggestion: Focus on the concept of routing, its purpose, and its role in ZIO HTTP. Limit the examples to one simple illustration.

server.md:

The file includes detailed practical examples and explanations of setting up and configuring servers.
Suggestion: Concentrate on the core concepts of setting up a server, its configuration options, and its role in ZIO HTTP. Limit the examples to one simple illustration.

Please review these suggestions and update the documentation files accordingly to align with the reviewer's expectations.
Analysis chain
Scripts executed
Actions Performed

Please make changes and incorporate them as per above and aligning with reviewer comments

@chintu-777, I have reviewed the contents of the documentation files. Here are the observations and suggestions to align them with the reviewer's expectations:

client.md:

The file contains detailed practical examples and explanations.
Suggestion: Focus on explaining the core concepts of the ZIO HTTP client, such as its key components and features, without detailed examples. You can keep one simple example to illustrate the concept.

endpoint.md:

The file includes practical examples and detailed explanations of defining and implementing endpoints.
Suggestion: Concentrate on the fundamental concepts of endpoints, their purpose, and their role in ZIO HTTP. Limit the examples to one simple illustration.

intro.md:

The file provides an overview of fundamental concepts.
Suggestion: This file aligns well with the reviewer's expectations. Ensure it remains focused on core concepts without practical examples.

middleware.md:

The file contains extensive practical examples and detailed explanations of middleware usage.
Suggestion: Focus on the concept of middleware, its purpose, and its role in ZIO HTTP. Limit the examples to one simple illustration.

request-handling.md:

The file includes practical examples of handling requests.
Suggestion: Concentrate on the core concepts of request handling, such as extracting data from requests and generating responses. Limit the examples to one simple illustration.

routing.md:

The file contains practical examples of defining routes.
Suggestion: Focus on the concept of routing, its purpose, and its role in ZIO HTTP. Limit the examples to one simple illustration.

server.md:

The file includes detailed practical examples and explanations of setting up and configuring servers.
Suggestion: Concentrate on the core concepts of setting up a server, its configuration options, and its role in ZIO HTTP. Limit the examples to one simple illustration.

Please review these suggestions and update the documentation files accordingly to align with the reviewer's expectations.
Analysis chain
Scripts executed
Actions Performed

@coderabbitai Please make changes and incorporate them as per above and aligning with reviewer comments

@coderabbitai Ok let's go one by one file modifying that aligning with the reviewer's comment: first
client.md:
Focus on explaining the core concepts of the ZIO HTTP client, such as its key components and features, without detailed examples. You can keep one simple example to illustrate the concept.
Let's incorporate the same un client.md and make the necessary changes

Concept - The Concept section delves into the foundational principles, terminologies, ideas, and methodologies. It should provide users with an understanding of the core domain or the fundamental concepts related to the problem being addressed. We don't need to provide working examples there! It should also give users an overview of the solution in general terms, helping them grasp the key ideas before delving into more detailed information.
@varshith257 I think we are not on the same page, as I see kinds of stuff that are mostly practical stuffs instead of core concepts. We only need to cover terms and concepts, at best with "no" examples to demonstrate general concepts for each page in this section (or at most with one example for each page). What you have done until now is somehow similar to a practical overview.

@coderabbitai The reviewers aim is :
Concept - The Concept section delves into the foundational principles, terminologies, ideas, and methodologies. It should provide users with an understanding of the core domain or the fundamental concepts related to the problem being addressed. We don't need to provide working examples there! It should also give users an overview of the solution in general terms, helping them grasp the key ideas before delving into more detailed information.
We only need to cover terms and concepts, at best with "no" examples to demonstrate general concepts for each page in this section (or at most with one example for each page).
What you have done until now is somehow similar to a practical overview.
Is above changes align with this. If not please follow suggestions of reviewer and make necesssary changes

@coderabbitai It's fine with client.md and lets proceed for next:
endpoint.md:
Concentrate on the fundamental concepts of endpoints, their purpose, and their role in ZIO HTTP. Limit the examples to one simple illustration.

@coderabbitai Let's proceed for another file:
intro.md:
This file aligns well with the reviewer's expectations. Ensure it remains focused on core concepts without practical examples.

Tip
For best results, initiate chat on the files or code changes.
@chintu-777, the content of intro.md aligns well with the reviewer's expectations as it focuses on the core concepts without including practical examples. Here is the content for your reference:
---
id: intro
title: "Zio Http Concepts"
---

# Concepts

In this section, we will explore the fundamental concepts behind building ZIO HTTP applications. Understanding these concepts will provide you with a solid foundation for developing robust and scalable applications using ZIO HTTP library.

import DocCardList from '@theme/DocCardList';

<DocCardList />

This file is already focused on core concepts and does not include practical examples. We can proceed to the next file.
Which file would you like to review next?
Analysis chain
Scripts executed

@coderabbitai I think we have to add here all the concepts in the zio and link the, the files we added in this PR of introduced concepts

@coderabbit
What this mean?
import DocCardList from '@theme/DocCardList';     Is it needed?

@coderabbitai
What this mean?
import DocCardList from '@theme/DocCardList';     Is it needed?

@coderabbitai
Let's proceed for next:
middleware.md:
Focus on the concept of middleware, its purpose, and its role in ZIO HTTP. Limit the examples to one simple illustration.

@coderabbitai Let's proceed for next:
request-handling.md:
Concentrate on the core concepts of request handling, such as extracting data from requests and generating responses. Limit the examples to one simple illustration.

@coderabbitai
Lets proceed for next:
routing.md:
Focus on the concept of routing, its purpose, and its role in ZIO HTTP. Limit the examples to one simple illustration.

Here is the updated version of server.md that focuses on the core concepts of setting up a server, its configuration options, and its role in ZIO HTTP, with only one simple illustration:
---
id: server
title: "Server"
---

# Server

Setting up an HTTP server is a fundamental aspect of building applications with ZIO HTTP. The server is responsible for listening to incoming requests, processing them, and sending back appropriate responses.

## Key Concepts of Setting Up a Server:

### Starting an HTTP Server

- Use the `Server.start` method to start an HTTP server.
- Specify the port number and the HTTP application (routes and handlers) to be served.

### Server Configuration Options

- **Host**: Define the host address on which the server will listen.
- **Port**: Set the port number for the server.
- **Leak Detection Level**: Configure the level of leak detection for debugging purposes.
- **Request Size**: Limit the maximum size of incoming requests to prevent resource exhaustion.
- **Address Customization**: Customize the server's address for specific deployment scenarios.

### Role of the Server in ZIO HTTP

- The server acts as the entry point for handling HTTP requests and generating responses.
- It integrates with the ZIO ecosystem, leveraging ZIO's concurrency and resource management capabilities.
- The server can be configured to handle various aspects of HTTP communication, such as SSL/TLS for secure connections.

## Simple Server Example

```scala mdoc:silent
import zio._
import zio.http._

val app: HttpApp[Any, Nothing] =
  Http.collect[Request] {
    case Method.GET -> !! / "hello" => Response.text("Hello, World!")
  }

val run = Server.start(8080, app)

In this example, we created a simple HTTP server that listens on port 8080 and responds with "Hello, World!" to GET requests on the /hello path.
Please review this updated content and let me know if any further adjustments are needed. Once confirmed, we can proceed to finalize the changes.
Actions Performed

@coderabbitai Something like client.md we have to make similiar changes to server. Key components and concepts of Zio Server

@coderabbitai The aim of this PR is to  Roll out comprehensive documentation for ZIO HTTP incorporating following issue requirements
The documentation can be patterned on http4k, and provide a variety of sections, including:
Introduction
Concepts
Routing
Request Handling
Server
Client
Middleware
Endpoint
Tutorials
Your First ZIO HTTP App
Deploying a ZIO HTTP App
Testing Your ZIO HTTP App
How-to-guides
(This should be based off the list of topics at http4k, but should also include ZIO HTTP use cases around Endpoint, middleware, etc.)
Reference
API Docs
Server backend
Websockets
JSON Handling
Metrics
Request Logging
(etc.)
Performance
FAQ
The documentation must be built with existing tooling, include examples that are checked for compile-ability with mdoc, and must be copyedited for correct spelling and grammar (possibly with the help of AI tooling).
The overall volume of content would be similar to, but less than, http4k's documentation website.

@coderabbitai
Let's proceed with this:
How-to-guides:
Based on the list of topics at http4k, including ZIO HTTP use cases around Endpoint, middleware, etc.

@coderabbitai In http4k documentation as mentioned in the issue. The How to guides contains several sections. Lets proceed with one by one:
First is this in how to guides of http4k, If i understood clearly, in issue mentioned to incorpostae of what hhtp4k has in it. if yes, first is rthis:
Basic: Server as a function
This example is the simplest possible "server" implementation. Note that we are not spinning up a server-backend here - but the entire application(!) is testable by firing HTTP requests at it as if it were.

Gradle setup
dependencies {
    implementation(platform("org.http4k:http4k-bom:<IP_ADDRESS>"))
    implementation("org.http4k:http4k-core")
}
Code
package guide.howto.server_as_a_function

import org.http4k.core.HttpHandler
import org.http4k.core.Method
import org.http4k.core.Request
import org.http4k.core.Response
import org.http4k.core.Status

fun main() {

    val app: HttpHandler = { request: Request ->
        Response(Status.OK).body("Hello, ${request.query("name")}!")
    }

    val request = Request(Method.GET, "/").query("name", "John Doe")

    val response = app(request)

    println(response)
}

Similarly i think we need to do for zio-http as mentioned issue. pleae carify

@coderabbitai Similarly need for the client

@coderabbitai I think they given in issue that mdoc compile something please incorporate it for above both server and client

@coderabbitai The http4k's use a server backend consists this:
Basic: Use a Server backend
This example shows how to both serve an application HttpHandler using an embedded HTTP server and to query it using an HTTP client. All server-backend implementations are launched in an identical manner (in 1LOC) using implementations of the ServerConfig interface - and a base implementation of this interface is provided for each server backend.

Alternatively, any http4k application can be mounted into any Servlet container using the asServlet() extension method. This is the mechanism used in the Jetty implementation.

Gradle setup
dependencies {
    implementation(platform("org.http4k:http4k-bom:<IP_ADDRESS>"))
    implementation("org.http4k:http4k-core")
    implementation("org.http4k:http4k-client-apache")
    implementation("org.http4k:http4k-server-jetty")
}
Code
package guide.howto.use_a_server_backend

import org.http4k.client.ApacheClient
import org.http4k.core.Method
import org.http4k.core.Request
import org.http4k.core.Response
import org.http4k.core.Status.Companion.OK
import org.http4k.server.Jetty
import org.http4k.server.asServer

fun main() {

    val app = { request: Request -> Response(OK).body("Hello, ${request.query("name")}!") }

    val jettyServer = app.asServer(Jetty(9000)).start()

    val request = Request(Method.GET, "http://localhost:9000").query("name", "John Doe")

    val client = ApacheClient()

    println(client(request))

    jettyServer.stop()
}

@coderabbitai Next is Basic: Simple routing

@coderabbitai Next is:
Basic: Nestable routes

@coderabbitai Once refer to the concepts/middleware.md file. I think we removed  most examples while discussing her. MAybe the above is same: Basic: Nestable Routes   that mean of concatentaion like only right is this ...is it supports <<, >>etc..too clarify

@coderabbit Next is:
Attach context to a request

@CodeRabbit Next is: Attach context to a request

@coderabbitai

@coderabbitai The CI is failing with this errors:
error: client.md:73:15: overloaded method get with alternatives:
  (url: zio.http.URL)zio.http.Request <and>
  (path: String)zio.http.Request
 cannot be applied to (Either[Exception,zio.http.URL])
val request = Request.get(url)
              ^^^^^^^^^^^


[Hero & Hertz] 'bitshares-pricefeed' referencing bitUSD | BTS_Tools referencing BTC:USD (bitUSD|BTC:USD)

Summarized snippets of Wackou's price feed script:
btc_price = feeds_bts_btc.price()

feeds_btc_usd = get_multi_feeds('get', [('BTC', 'USD')],
                                active_providers_bts({providers.BitcoinAverage,
                                                      providers.CoinMarketCap,
                                                      providers.Bitfinex,
                                                      providers.Bitstamp}))
btc_usd = feeds_btc_usd.price()
usd_price = btc_price * btc_usd
feeds['HERO'] = usd_price / (1.05 ** ((pendulum.today() - pendulum.Pendulum(1913, 12, 23)).in_days() / 365.2425))

Current Hero&Hertz Yaml USD reference:
# ... namely "USD" a.k.a. "bitUSD"
ref_asset: USD

There's a difference in price BTS:USD reference between the two Bitshares price feed libraries. @Xeroc's scripts reference bitUSD (decentralized, reliant on bitUSD functioning properly, less volatile?) meanwhile @wackou's price feed scripts reference external BTC:USD price feeds (Reliant on centralized exchanges, potentially vulnerable to manipulation, potentially avoid following bitUSD into a blackswan).
What's the appropriate USD reference for Hero (and consequentially Hertz) bitUSD:BTS and/or BTC:USD?
Cheers

From what I understand from the code, @xeroc's script use bitUSD market price.  There is usually a 10% spread between the market price and the settlement price.
Another approach could be to use bitUSD settlement price/current feed (= the median price of all the feeds).
This way you rely on Bitshares decentralization of the price feed to get a proper price.
I think if you already publish the price of USD:BTS it's better to use your computed price (this way USD and HERTZ price will be consistent), but if you publish only HERTZ, the best it's to get bitUSD settlement price.
I have added BitsharesFeed source  for this purpose in my repo.

BSIP 76 (https://github.com/bitshares/bsips/issues/221) has now set fixed (fake) price feeds for bitUSD.
Since this price feed script uses bitUSD as the price feed reference it's now producing inaccurate Hertz price feeds.
Can an alternative to bitUSD be provided for Hertz to become accurate again?

Note that using my fork (which is used by most of the witnesses), the USD price used depends of the configuration file.
All three sources are possible:

Bitshares USD feed:

    hero:
        klass: Hero
    bitshares_usd_feed:
        klass: BitsharesFeed
        assets:
            - USD

USD/BTS from Dex:

    hero:
        klass: Hero
    bitshares_usd_market:
        klass: Graphene
        quotes:
            - USD
        bases:
            - BTS
        aliases:
            USD: BITUSD

USD/BTS from CEX, see this sample config


Proposal: Extending WAF Metrics with authority label

Problem Statement
currently there are only 2 labels in wasm metrics, we can see it's defined here
fqn := fmt.Sprintf("waf_filter.tx.interruptions_ruleid=%d_phase=%s", ruleID, phase)

even though we can see the ruleid & phase, the metrics still lack information about the destination host which is denied by the WAF. That is a useful insight to see if we implement this WASM on a proxy that handles multiple domains.
Proposal
Extending metrics by adding authority header
fqn := fmt.Sprintf("waf_filter.tx.interruptions_ruleid=%d_authority=%s_phase=%s", ruleID, authority, phase)

example metrics
waf_filter_tx_interruptions{phase="http_request_headers",rule_id="101",authority="foo"} 1
waf_filter_tx_interruptions{phase="http_request_body",rule_id="102",authority="bar"} 1
waf_filter_tx_interruptions{phase="http_response_headers",rule_id="103",authority="baz"} 1
waf_filter_tx_interruptions{phase="http_response_body",rule_id="104",authority="yaz"} 1

Alternative
Rather than using the authority header. we can add a generic identifier that can be input by the user in configuration.
we can get it from proxywasm.GetPluginConfiguration()

cc @jcchavezs can you help take a look?


[hi] localize microservices.md

Signed-off-by: SahityaGupta25<EMAIL_ADDRESS>email -<EMAIL_ADDRESS>

@SahityaGupta25 any updates on the changes requested?

@Garima-Negi No

Hello @SahityaGupta25 Are you still working on this PR? Any updates about the requested changes

closing this PR due to inactivity


consider a default dash theme on top of vizro

Which package?
None
What's the problem this feature will solve?
currently i cannot use vizro css with custom dash pages. it would be good if vizro would have 'vanilla' option to just use dash css (including bootstrap ones),  so i may use vizro just like a constructor. i know there's custom static css folder, but to many work to include dash configs here...
Describe the solution you'd like
for example 'light-theme','dark-theme','dash-theme'.
Code of Conduct

[X] I agree to follow the  Code of Conduct.

I guess solving it in universal way requires work that may be compared with rewriting the framework from scratch. anyways, thank you for good and stable work


HPC to HGS transformation for Sunspotter

And some minor bug fixes (#43)!

Hello @Raahul-Singh! Thanks for opening this PR.

In the file pythia/seo/sunspotter.py:

Line 24:101: E501 line too long (102 > 100 characters)

In the file pythia/seo/tests/test_sunspotter.py:

Line 255:53: E221 multiple spaces before operator
Line 263:13: E126 continuation line over-indented for hanging indent

Do see the Hitchhiker's guide to code style


Add related work

This PR updates the related work in line with #161. It doesn't currently include details of material from ELIXIR but this is being handled through #15.

#161 has added some.


Fix rules argument

This needed quite some changes cause I was confused from the current system and I did not want to introduce breaking changes.

Why do you think we should change this?
As it's a breaking change we'd also have to build the backwards compatibility, so I don't think it's worth it anyway.

Cause the current system is broken and neither --rules.1. nor --rule.1. as an argument is accepted.
I did not introduce any breaking changes as it was already broken and did not work.

Apologies!
I misread the changes as changing functionality, I think I must have messed up the definition during the release, so thank you for spotting and fixing this!
Thank you

No problem. Fixing this was quite confusing for me, too.


losts an "s" in word "resources" in line 8 of file "sample_xhtml.xml" for dita-ot-2.2.5

Hi, I have just downloaded dita-ot-2.2.5 from http://www.dita-ot.org/.
Below error happens when I tried a quick demo.
I run:
bin\ant -f samples\ant_sample\sample_xhtml.xml`
Error:
BUILD FAILED
C:\dita-ot-2.2.5\samples\ant_sample\sample_xhtml.xml:17: C:\dita-ot-2.2.5\resource does not exist.

Fix:
Change "resource" into"resources" in the file "sample_xhtml.xml"
<copy todir="${dita.dir}/out/samples/web">
      <fileset dir="${dita.dir}/resource**s**" includes="index.html"/>
</copy>

Samples have been moved to docs repo already for 2.3, no point fixing this in 2.2.

That is OK. Thanks.


Add basic tests

To be called with go test -v -race .

Added basic tests. More test to be added


Add LICENSE and README

I think there should be a license and readme for this project showing the description and CI badges on the repo site. @mclow What u think, can I do this?

I think this can be closed?
https://github.com/boostorg/boost#readme
https://github.com/boostorg/boost/blob/master/LICENSE_1_0.txt

We already have a README and a license file.   @ro4i7 - what do you think is missing?


Convert to auto-property, use readonly and expression-bodied property

Close and reopen for build.

Close and reopen for build.


Reverse HOTP support

@oxalica @ZenithalHourlyRate any interest into developing reverse HOTP inside of canokey?
https://github.com/linuxboot/heads/pull/1671#issue-2291436187
Originally posted by @tlaurion in https://github.com/canokeys/canokey-qemu/issues/6#issuecomment-2106334309
Reference : https://github.com/Nitrokey/nitrokey-pro-firmware/commit/cff95754615a62d676e5cc9cafe85fcf351385b4

I guess first step would be https://github.com/canokeys/canokey-core/issues/83
@ZenithalHourlyRate @agreenbhm @dangfan @z4yx @z4yx @cnZary @cnZary @Yonghui-Lee
Soeey to ping you all, but this would have important implications for the whole ecosystem, including emulated and hardware based security dongles.
Please contact me through linuxboot/heads project or through https://osresearch.net/community/
I see possible NLnet based funding by co-writing a grant application.
Thank you for your time.

@tlaurion Please describe the usage scenarios for this feature, as the goal of Canokey is to serve as a personal identity authentication device rather than an HSM (Hardware Security Module). Understanding the context in which this feature would be used is essential for us.
Additionally, we welcome your pull request (PR) and look forward to your contributions.

@dangfan Heads Open source firmware uses reverse HOTP sealing into the dongle to store a secret, that secret is generated by TOTPM, which is basically a hash resulting of TPM measured boot result, being a challenge against HOTP slot.
On a high level, it is easy to do when HOTP exists, its basically a reverse handshake, using a value to be checked against with the dongle, and the dongle needs to have leds to report if the dongle reports ok/nok.
@dangfan We need competition in the realm of security dongle. Your virtualized implementation would be a first test against this, where hotp-verification used under Heads could be an insight on what is currently used by Nitrokey to communicate with teh dongle from a client perspective https://github.com/Nitrokey/nitrokey-hotp-verification/
Let me know if you would be interested. More USB Security dongles to compete with Librem key/Nitrokey NK2/NK2 Pro/Nitrokey Storage would be welcome in the ecosystem for remote attestation over personal USB Security dongles, with additonal and met requirements of those dongles being OpenPGP smartcards.


Release build

release has been successfully pushed to pypi, however docker push did not happen yet. rebuilding

Release has been published to dockerhub and pypi. Expected this to fail due to the release being already on pypi. Merging


Target listing should be a separate command in mbed-cli

Maybe when running mbed target list or so?

This is already supported via mbed target -S/--supported. The option is also listed in mbed target --help
mbed target -h
usage: mbed target [-h] [-G] [-S] [-v] [-vv] [name]

Set or get default toolchain
This is an alias to 'mbed config [--global] target [name]'

positional arguments:
  name                 Default target name. Example: K64F, NUCLEO_F401RE,
                       NRF51822...

optional arguments:
  -h, --help           show this help message and exit
  -G, --global         Use global settings, not local
  -S, --supported      Shows supported matrix of targets and toolchains
  -v, --verbose        Verbose diagnostic output
  -vv, --very_verbose  Very verbose diagnostic output


⚠ Bofrost.be has degraded performance

In de2600a, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 985 ms

Resolved: Bofrost.be performance has improved in 46cc58f after 10 minutes.


I can't access my wallet on mobile.

Click on Connect Wallet to select a network and
When I click on WalletConnect, nothing happens.
How do I fix it?
(Please write something / give us feedback)

You will have to synchronize your wallet and then you debug it

Please provide more info about your mobile, browser, app version, etc.

mobile chrome browser.

mobile chrome browser.

app version?

no.
web browser

do you have any installed wallets on you phone?
which site do you use?

swaponline.io
swaponline.github.io (it works on my mobile)

@lucia116 if the problem has not been solved, please reopen this issue


MOB-17628/AEP-Release-notes-clean-up [REVIEW]

Description
Release notes updated - ACP related notes removed.
Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

@hbhandal80 @calebk1 thanks for the changes and review, I pushed more changes that remove the items aligned with the acp release schedule. Please take a second look


(BUG) Lagging

Sometimes when moving the game freezes some miliseconds then return to normal.
What causing this is unknown but will be looked into.

Fixed


updates to improve search results in Swiftype

@naomiblack This should improve a few things:

Exclude all navigation from being included in search results
Label results clearly with the section the come from (ex. API, GUIDE, COOKBOOK).

Please review and merge. Thanks!

One this is merge, give me a heads up and I can do a reindexing.


annoying and rather pointless error popup about dubious cert error

Summary
Suddenly I get an error popup about a certificate issue. There are several things wrong with that popup:
a) I cannot copy the error message (to either search for it or send it on to the admin)
b) the message blocks everything -- it keeps appearing on and on and on. It's nearly impossible to even minimize Mattermost, and even after managing that the popup keeps popping up
c)  checking the error details does not provide much detail and also the error message again cannot be copied
d) it is impossible to see the supposedly offending certificate
e) it is impossible to shut up the client, ie keep the popup from happeningh over and over again
So far, it is basically impossible to determine if there's a genuine issue with that certificate (no information at all) or if the client is malfunctioning.
Environment

Operating System: Linux (Debian/sid)
Mattermost Desktop App version: 5.0.4
Mattermost Server version: currently inaccessible
Steps to reproduce

Expected behavior
a) show useful message
b) allow to copy message
c) show certificate in full
d) allow to minimize to systray and silence the popup while minimized
Observed behavior

Possible fixes

@2019-05-10 Can you provide reproduction steps for us? A screenshot or a video of what you're seeing as well would be helpful :)

@2019-05-10 We do have functionality for explicitly trusting or untrusting certificates. That should make the popup go away after the certificate has been explicitly trusted, so if there's an issue there I'd like to see the workflow with a screenshot, and understand a little more about what you mean. Otherwise there's not much we can do to fix it.

The message told me the certificate was invalid without any reason at all, "Details" gave a very short and pointless message and the choice to "Trust" or "Cancel".
At no point I was able to see the certificate in question, let alone get any information at all, what made MM distrust the certificate.
How am I supposed to trust blindly a certificate MM chokes on?
If MM has reason to distrust a certificate, it certainly should be able to tell users instead of leaving them in the dark.
And, once again, it should in any case allow to view the certificate -- every cheap browser allows easy access to a certificate -- why doesn't MM, even when there's an issue with it?

@2019-05-10 Thanks for the feedback. Based on what I'm reading, it sounds like we have 2 issues to look at:

The message about why the certificate is untrusted is unclear.
The user should be able to view the certificate in question.

Is there anything else I'm missing?

Uhm, I think, I alreday enumerated twice what other issues are there.
Please, see the initial issue and my first answer.

A ticket has been created: https://mattermost.atlassian.net/browse/MM-42066

And it's back.
Did anything happen in the meantime?
I still cannot see the certificate and I still don't really know what the issue is.
Version 5.1.0
Mattermost Version: 6.0.2
Database Schema Version: 6.0.2
Database: postgres
I am still left with the pointless options to either

cancel the connection (whatever that means, since I still can post to channels)
trust a certificate I do know nothing about and cannot learn anything

You do realize that this is a rather grave security issue, do you?

@vanilla-thunder Is this affecting you on v5.1.1? We did a change in that version that should stop the popup from re-appearing as often (it was popping up everytime we would retry loading the page, which would happen everytime the certificate check was cancelled).

Closing as stale.


Improve diagnose hook (v13.x)

This pull request closes issue # (put the issue number here)

Current state

Changes introduced here

Checklist

[ ] All commit messages adhere to the appropriate format in order to trigger a correct release
[ ] All code is written in untranspiled ECMAScript (ES 2017) and is formatted using prettier
[ ] Necessary unit tests are added in order to ensure correct behavior
[ ] Documentation has been added

Bors merge bot cheat sheet
We are using bors-ng to automate merging of our pull requests. The following table provides a summary of commands that are available to reviewers (members of this repository with push access) and delegates (in case of bors delegate+ or bors delegate=[list]).

Syntax
Description

bors merge
Run the test suite and push to master if it passes. Short for "reviewed: looks good."

bors merge-
Cancel an r+, r=, merge, or merge=

bors try
Run the test suite without pushing to master.

bors try-
Cancel a try

bors delegate+
Allow the pull request author to merge their changes.

bors delegate=[list]
Allow the listed users to r+ this pull request's changes.

bors retry
Run the previous command a second time.

This is a short collection of opinionated commands. For a full list of the commands read the bors reference.

bors merge

bors retry

bors merge

bors merge

bors merge-

Manually picked onto v13.x because ain't nobody got time for this!


allow user to fix kernel parameters

Enable Gpflow-Slim.Parameter to set trainable=False when creating tf.Variables.
In this way when user which to train a GP model with kernel parameters fixed, they can simply do something like
self._ls = Parameter(..., trainable=False)

👍


[Enhancement] Describe the Misc. part of the README.md better

⚠ Please check that this feature request hasn't been suggested before.

[X] I searched previous Ideas in Discussions didn't find any similar feature requests.
[X] I searched previous Issues didn't find any similar feature requests.

🔖 Feature description
We should update the Misc. part of the README.md file so that the new users can easily understand that part and have a hassle-free experience of the project.
✔ Solution
Most of the users don't know that we cannot see the .env file even if there is one already in the directory.(Reason - It is a hidden file as it has no name and only an extension.) I have recently faced this issue where it was to asking me whether it should replace the existing .env file with the new one i was trying to add.
So my Enhancement Idea is to update the Misc. Section of the README.md file so that the user who is trying to install, whether be a skilled programmer or not, can easily understand it and have a better experience of the gpt-code-ui.
❓ Alternatives
I haven't considered any other alternatives. But you might think that the .env file is mainly used for entering the  OPENAI_API_KEY and that can be done in the Web UI also, but the problem here is that the user will then be left puzzled about what to do with the Misc. part of the repository.
📝 Additional Context
By assigning me to this issue, i will be creating the pull request in less than 2 days.
I would add the commands for Windows, Linux, and  MacOS(if possible).
No response
Acknowledgements

[X] My issue title is concise, descriptive, and in title casing.
[X] I have searched the existing issues to make sure this feature has not been requested yet.
[X] I have provided enough information for the maintainers to understand and evaluate this request.

Please see https://github.com/ricklamers/gpt-code-ui/pull/25


Ability to see the footer

The user should see the footer in the docs component

Interesting @oussama-ber.

Can you elaborate in this? I dont understand what you mean by this.

I think that the footer should be visible for all the pages.


Contracts: category summary

The category summary I've mentioned on my wish (#75) could be enriched. For instance:

Statistics about value (most expensive contract, average contract, etc);
Statistics about contracted entities (most often contracted company, company with the greatest money volume of contracts, etc).

I agree. Categories didn't received much love since I introduced them. :X


Appstudio update test-component-pac-kzie

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI/test-component-pac-kzie-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
5 seconds
init

✅ Succeeded
14 seconds
clone-repository

✅ Succeeded
42 seconds
build-container

✅ Succeeded
11 seconds
deprecated-base-image-check

✅ Succeeded
14 seconds
inspect-image

✅ Succeeded
13 seconds
clair-scan

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
11 seconds
sbom-json-check

✅ Succeeded
14 seconds
label-check

✅ Succeeded
6 seconds
show-sbom

✅ Succeeded
8 seconds
show-summary

Pipelines as Code CI/test-component-pac-kzie-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
5 seconds
init

✅ Succeeded
14 seconds
clone-repository

✅ Succeeded
42 seconds
build-container

✅ Succeeded
11 seconds
deprecated-base-image-check

✅ Succeeded
14 seconds
inspect-image

✅ Succeeded
11 seconds
sbom-json-check

✅ Succeeded
13 seconds
clair-scan

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
14 seconds
label-check

✅ Succeeded
6 seconds
show-sbom

✅ Succeeded
8 seconds
show-summary


Add translate Vietnamese for Search

I translated search strings to Vietnamese.

@cuongtqtran , I'm not sure if you saw them, but there are a couple strings missing from the vi translation for portal also.

@cuongtqtran , I'm not sure if you saw them, but there are a couple strings missing from the vi translation for portal also.

Thank you, Cathy, for the reminder. You are the best. I have just added the missing translation strings for the portal as well.


Add information about running WiFi and Ethernet together

I have both interfaces connected (my device has two IP addresses), is it smart enough to prioritise Ethernet for Helium traffic when it's available?  If not how do I stop it using WiFi without a total reset?

Interesting question. The network is managed by Network Manager behind the scenes. It is certainly possible to run both WiFi and Ethernet simultaneously, but I'm not sure if Network Manager is intelligent enough to prioritize properly. I know that macOS will automatically route traffic over Ethernet if both Ethernet and WiFi is present.
This would be relatively easy to test, but I cannot personally allocate the bandwidth for it at the moment.

One thing I also wondered, is whether having both simultaneously connected can cause any issues with libp2p successfully communicating with peers...?

I've actually tried many times to clear the WiFi credentials from the device with zero luck - perhaps some clarification is needed as to how you can remove the WiFi credentials when you just want to use Ethernet

I set up separate policies on my Fortigate firewall for traffic on 44158. One coming from Wi-Fi, the other coming from wired Ethernet. Placed them before all other rules so the counters would reflect traffic. Tested with a Nebra hotspot. I plugged it in, cleared all logs, and plugged the Ethernet cable in shortly after. Pay attention to "Bytes" at the very end of the image.

Couple minutes later:

From a different view. Wifi Hotspot Traffic should appear.

Now I will unplug the Ethernet cable.

Back to wired.

I was not seeing traffic from the wired and had no ethernet lights, so I rebooted.

Suspect it was a switch security setting that caused the port not to light up, so trying again. Switching back to wireless in the next picture.

Wired comes back, and the sessions have dropped from Wifi.

Port stayed online this time. As seen above, I wasn't seeing much traffic on Wired. I reset the ipv4 policy counters:

I would love easy way to remove the wifi from being listed in my router


RoR group project: set up your Kanban board

Group members (2 members):

Didy https://github.com/diarisdiakite
Ali : https://github.com/Alibaba2023

Repository

https://github.com/diarisdiakite/Recipe-app/projects/1

Hi Team,
Good job so far!
There are some issues that you still need to work on to go to the next project but you are almost there!

Highlights

Good job adding the right columns :+1:

Required Changes ♻

[ ] Nice work setting up the Kanban board :clap: However, according to the project requirement, we should create tasks on the Kanban board based on the project requirements. But your Kanban board is empty, Kindly make sure you create cards containing the tasks that you will be working on in your group project and do not forget to assign each card to a team member to follow the project requirement.

Check the comments under the review.
Optional suggestions
Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

Hi Team,
STATUS: APPROVED! 🥇 💯
Your project is complete! There is nothing else to say other than... it's time to merge it :shipit:

Highlights

Great job, your project is error free :+1:
Nice work you meet all the requirements :1st_place_medal:
Assign each card to a team member :heavy_check_mark:

Optional suggestions
Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
Good luck! 🎉
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Cordova: logging out does not clear session/cookies in inappbrowser

Using client.login() after logging out makes the login go through again without user interactions (new credentials). This could be solved with adding the clearcache=yes or the clearsessioncache=yes into the window.open() options argument.
e.g.
var loginWindow = window.open(startPage, "_blank", "location=no,clearcache=yes")

This repo is no longer maintained.  Please move this issue to azure/azure-mobile-apps-js-client.


Show if the Developer Portal is enabled

Provide KICK the ability to display whether the Dev Portal is enabled on the Gateway

Fixed in 2.1


Bugfix: let libvirt populate channel source

Current behavior is to set the source path to empty string, which blocks the Guest Agent from working correctly.

Coverage decreased (-0.04%) to 57.836% when pulling f57ece5ba51045a39cf8b08cce9bdfa6aa87f576 on moio:patch-3 into c034dc8e65b815ac49e1e7d90bf14ac346425529 on dmacvicar:master.

@moio and @monstermunchkin: I just updated the package inside of virtualization:containers to include this fix


[Backport v1.14-branch] Bluetooth: controller: legacy: Fix dev assert in CPR implementation

Replace a development assertion in the implementation of
Connection Parameter Request Procedure with an internal
comment and handle transaction violation be ignoring the
PDU.
Relates to commit dec6140685b4 ("Bluetooth: controller: Fix
dev assert in CPR implementation").
Signed-off-by: Vinayak Kariappa Chettimada<EMAIL_ADDRESS>

Will close and reopen to re-trigger CI to check if this failure was one-of: https://buildkite.com/zephyr/zephyr/builds/25274#b9dc55dc-934e-459c-a8a6-abbad89a4671

Damn, buildkite did not re-trigger, will try a forced push and see...

Can you rebase now that the doc building is fixed.

@galak I get an unrelated ipm driver test failure: https://buildkite.com/zephyr/zephyr/builds/26783
I will try a forced push again.


Support for a 'backlinks' widget

This feature request is related to the use case of creating a 'Digital Garden' mentioned in #314 .
It would be great to have a couple of cards that can be placed either in the right sidebar (like the taxonomy cards) or under a post (like the related posts card).
One of these cards would list all the "forward/outgoing links" from the blog post/single page i.e. all the hyperlinks (to internal or external pages) present in the blog post/single page.
The second of these cards would list all the "back links" to the blog post/single page i.e. which other posts/pages contain a link to this page?
Examples/Inspiration

The Hugo Connectome theme has exactly this feature. See the screenshot in the README page which has exactly similar right sidebar widgets with forward/outgoing and backlinks.
This blog post explains how to create a Hugo template that will add backlinks to a note.
See this digital garden whose notes have a 'backlinks' section (Titled 'Links to this page') at the bottom of many of the notes.

I'm afraid there will be a performance issue of the implementation. And it doesn't work well with ref and relref.

And it doesn't work well with ref and relref

Okay, let me think more about this. I'll try asking the author of that blog post if there is a better way to do it that works with ref and relref.

I'm afraid there will be a performance issue of the implementation.

Yes. Previous discussions I found on this topic had the same concern. For example, https://github.com/gohugoio/hugo/issues/8077#issuecomment-749440524
Just trying to brainstorm some ideas below:

Would there be a way to have this as on option that is disabled by default? Then, only those users who are willing to accept slower performance in order to get backlinks, would turn it on?

I'll also consider if it is possible to do some other preprocessing of the markdown files in python or something, so that the backlinks can be appended to each markdown file before Hugo processes them. That way, Hugo will not have to do anything and there will be no performance issue. A related question to this is: If the preprocessor puts all the backlinks for foo.md in a separate file named e.g. foo-backlinks.md instead of appending the backlinks at the end of foo.md, do you know if Hugo can pick up the content of foo-backlinks.md and append it to foo.md during its rendering process?

Do you know if the render-link.html hook of the Goldmark render could be useful here? For example, if the script in render-link.html creates/adds some link metadata content to an index file each time it sees a link in a markdown file, then it could be much more easy to compute the backlinks for a given file by querying the index.file. Do you think something like this could be possible?

The main reason I'm concerning about is lack of an ideal way to solve it. There are two implementations I found, one is you mentioned above, the other is defining backlinks in front matter(similar to your second point) manually. But the former implementation doesn't work well in multilingual mode, such as {{ ref . (dict "path" "about.md" "lang" "fr") }}, I think it always matches the default language version of page about.md.  The later implementation matches pages accurately, but it's a little cumbersome for users.

It is similar to the later implementation I mentioned in point 1.

Yup, this theme uses render-link render links. But I am not sure if it can be used for collecting backlinks.

Update: render-link will not be triggered by ref and relref, so it isn't the right way.

Hmm... thank you for thinking about this. I can't think of any other options. So for now, we could close this issue as "won't fix".
I'll try to write a python script that will read the markdown files and append a backlinks section at their end, containing lists of refs/relrefs. This script can be executed before Hugo is executed.. so that Hugo does not need to do anything.. it'll be as if the source files Hugo processes has all the correct backlinks already present in them.

OK, I keep it closed until we found a better solution.


Slash command response url updated to match developer docs

A customer was confused by the "not-yet-supported" string in our docs.  I noticed we had something more understandable in our developer-docs version of this content.  I simply copy-pasted this over into our normal docs repol

Sorry, ignore this.  COmbined some historical junk in my local clone.


feat: client sdk - add remaining read profile methods

inside profile module you could also add
- [Q] client.profile.doesFollow(request)
- [PQ] client.profile(s).(all)following({ address })
- [PQ] client.profile.fetchFollowers({ profileId })
- [Q] client.profile.followerNftOwnedTokenIds({ address, profileId })

we need to think about consistency in naming
or we go with (singular) profile and then profile.fetch and profile.fetchAll
or profiles and then profiles.fetchOne and profiles.fetch`
so
client.profile.allFollowing() // returns collection of profiles
client.profiles.following() // also return collection
the name should tell you if you get single or multiple (possibly paginated) results


User Bookmarking Links To Angular Routes

If on an Angular4 site a user goes to it at the root like http://mysite but then bookmarks / adds to the favourites in their browser an Angular route like:
http://mysite/about or http://mysite/another_route
How would you using the excellent template go from the Home/Index page, load the Angular stuff then redirect to the route like about etc when the user clicks on the bookmark?

this can be closed now looks like it was an issue with IIS Express, it works fine via IIS


[docker] too many repeated pulsar-all image configs in k8s helm deployment

Describe the bug
All releated pulsar components are built in pulsar-all image, but we have to change at least 8  places for using private repositories to set pulsar-all in helm chart, It is redundant.
To Reproduce
it's not a bug but tiny enhancement for k8s helm deployment.

@dockerzhang, thanks for reporting this issue. current way  may be easier for user to config different components using different image

Closed as stale.
The development of the Helm Chart has been permanently moved to https://github.com/apache/pulsar-helm-chart. If it's still relevant, please open an issue there.


Add client alias

This alias maintains backwards compatibility with the current gapic generator output.

This PR is an attempt to fix #58. However, not that #77 has been accepted I feel this is a step backwards. I think that this can be done by clients using Autosynth, for those that want this backwards compatibility. But, I think this is a step backwards. What do you all think?

I don't think there is any reason to do this given the other breaking changes. My vote is to drop it and close #58.

K, will gladly close!


Authentication

In order to accept pushes (#38) and enforce policy (#40), we'll need to bite the bullet and implement auth. I don't mind tying kontain.me's auth to GitHub for now, so that pushing to foo.kontain.me/user just has to check that you're user on GitHub.
On the client side, we'll need a credential helper, which would get installed on $PATH as docker-credential-kontaindotme and added to ~/.docker/config.json like:
{
  "credHelpers": {
    ...
    "foo.kontain.me": "kontaindotme"
  }
}

When pushing to foo.kontain.me (I'll need to set it up for each kontain.me subdomain 😭), the command gets passed the server URL (https://foo.kontain.me) on stdin, and needs to emit auth info on stdout, like:
{
  "Username": "david",
  "Secret": "passw0rd1"
}

That username+password is passed to the server, who verifies it before accepting the push.
Assuming GitHub's gh CLI is installed, the helper can look at ~/.config/gh/hosts.yml, which helpfully contains my configured GitHub username (and auth token 😢). I can do a client-side check that that config is sane by hitting https://api.github.com/user with the auth token and checking that the response says that's imjasonh. But that's not really a big deal, because it's kontain.me I'm trying to convince I'm me.
To assert that I'm imjasonh to kontain.me (without trusting kontain.me with that powerful GH auth token), I can use my locally configured SSH private keys, that I use to push commits to github.com, to sign some data, pass that signed blob to kontain.me as my password, and kontain.me can verify that against my GitHub account's public keys, available at https://github.com/imjasonh.keys.

From https://superuser.com/a/1616656/21888:
$ echo "Hello, World" | ssh-keygen -Y sign -n file -f id_rsa > content.txt.sig
Signing data on standard input
$ echo "Hello, World" | ssh-keygen -Y check-novalidate -n file -f id_rsa.pub -s content.txt.sig
Good "file" signature with ED25519 key SHA256:4lXHbbWqyp6gNFYboqmdDlQhJE+rAl493tZbNaa5xoo
$ echo "Hello,rld" | ssh-keygen -Y check-novalidate -n file -f id_rsa.pub -s content.txt.sig
Signature verification failed: incorrect signature
Could not verify signature.

The cred helper would sign some const string "hello" with the private key (mine is ~/.ssh/id_ed25519), pass the signed blob as the password to kontain.me, who can verify it against the user's public keys -- if any matches the signature for "hello", they're the user.


“查看进程列表”在Releases构建输出中灰屏

可能由于动态刷新值问题导致，目前打开此界面灰屏可以通过按下 Esc 键退出

确认由于Get组件使用不当导致
flutter:       [Get] the improper use of a GetX has been detected.
flutter:       You should only use GetX or Obx for the specific widget that will be updated.
flutter:       If you are seeing this error, you probably did not insert any observable variables into GetX/Obx
flutter:       or insert them outside the scope that GetX considers suitable for an update
flutter:       (example: GetX => HeavyWidget => variableObservable).
flutter:       If you need to update a parent widget and a child widget, wrap each one in an Obx/GetX.
flutter:
flutter: #0      RxInterface.notifyChildren (package:get/get_rx/src/rx_types/rx_core/rx_interface.dart:29)
flutter: #1      ObxState.build (package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart:56)
flutter: #2      StatefulElement.build (package:flutter/src/widgets/framework.dart:5583)
flutter: #3      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5471)
flutter: #4      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634)
flutter: #5      Element.rebuild (package:flutter/src/widgets/framework.dart:5187)
flutter: #6      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5453)
flutter: #7      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5625)
flutter: #8      ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447)
flutter: #9      Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #10     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #11     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496)
flutter: #12     Element.rebuild (package:flutter/src/widgets/framework.dart:5187)
flutter: #13     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5453)
flutter: #14     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447)
flutter: #15     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #16     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #17     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496)
flutter: #18     Element.rebuild (package:flutter/src/widgets/framework.dart:5187)
flutter: #19     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5453)
flutter: #20     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447)
flutter: #21     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #22     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #23     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496)
flutter: #24     Element.rebuild (package:flutter/src/widgets/framework.dart:5187)
flutter: #25     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5453)
flutter: #26     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447)
flutter: #27     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #28     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #29     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6736)
flutter: #30     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #31     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #32     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496)
flutter: #33     Element.rebuild (package:flutter/src/widgets/framework.dart:5187)
flutter: #34     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5453)
flutter: #35     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447)
flutter: #36     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #37     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #38     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496)
flutter: #39     Element.rebuild (package:flutter/src/widgets/framework.dart:5187)
flutter: #40     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5453)
flutter: #41     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447)
flutter: #42     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #43     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #44     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6736)
flutter: #45     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #46     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #47     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496)
flutter: #48     Element.rebuild (package:flutter/src/widgets/framework.dart:5187)
flutter: #49     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5453)
flutter: #50     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447)
flutter: #51     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #52     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #53     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6736)
flutter: #54     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #55     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #56     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496)
flutter: #57     Element.rebuild (package:flutter/src/widgets/framework.dart:5187)
flutter: #58     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5453)
flutter: #59     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447)
flutter: #60     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #61     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #62     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6736)
flutter: #63     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #64     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #65     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6736)
flutter: #66     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #67     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #68     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496)
flutter: #69     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634)
flutter: #70     Element.rebuild (package:flutter/src/widgets/framework.dart:5187)
flutter: #71     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5453)
flutter: #72     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5625)
flutter: #73     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447)
flutter: #74     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #75     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #76     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6736)
flutter: #77     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #78     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #79     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496)
flutter: #80     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634)
flutter: #81     Element.rebuild (package:flutter/src/widgets/framework.dart:5187)
flutter: #82     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5453)
flutter: #83     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5625)
flutter: #84     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447)
flutter: #85     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #86     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #87     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6736)
flutter: #88     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #89     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #90     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496)
flutter: #91     Element.rebuild (package:flutter/src/widgets/framework.dart:5187)
flutter: #92     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5453)
flutter: #93     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447)
flutter: #94     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #95     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #96     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6736)
flutter: #97     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326)
flutter: #98     Element.updateChild (package:flutter/src/widgets/framework.dart:3837)
flutter: #99     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496)

已修复

byd自言自语是罢（


US 01.02.01

As a player, I want to see what QR codes I have added to my account
User stories points: 3

triet

call User user = userService.getUser()
call user.getQRList()

Friday 24 March


Distinguish completed and running slurm training jobs

This PR modifies train_algorithm_job_submission.py to save a dummy file that indicates whether a training job has been queued to run. The code now makes an important distinction between completed and running jobs. This ensures that the same classifier is not trained a second time while the first iteration is running but not yet completed. A new keyword --reset_running allows new runs of jobs that may have failed the first time around.
The default hyperparamers in the config are also updated to include the parameters from the WandB sweeps.

On hold while updating scope for new penquins release.

@bfhealy I posed 2.3.1 for penquins last night.


Declaration parsing is wrong.

If you use .xml2js (not .xml2json!) function with an XML file that contain following declaration:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
you get wrong declaration attributes (there will be extra attribute with name 'undefined' and value undefined).
In my debuging I found that the following code in lib/xml2js.js is producing that wrong result.
The reason is wrong RegExp used to parse next attribute name and value:
/([\w:-]+)\s*=\s*"([^"]*)"|'([^']*)'|(\w+)\s*/
The | (boolean OR) has priority so that regexp actually accepts (key=(spaces)"value") OR ('value') OR (value(spaces)).
The working regexp is, for example:
/([\w:-]+)\s*=\s*(?:"([^"]*)"|'([^']*)'|(\w+))\s*/
Code with wrong regexp (lib\xml2js.js):
    if (instruction.body && (instruction.name.toLowerCase() === 'xml' || options.instructionHasAttributes)) {         while (instruction.body) {             var attribute = instruction.body.match(/([\w:-]+)\s*=\s*"([^"]*)"|'([^']*)'|(\w+)\s*/);             if (!attribute) {                 break;             }             attributes[attribute[1]] = attribute[2];             instruction.body = instruction.body.slice(attribute[0].length); // advance the string         }     }

@SergeyFromHell Your suggested regex has been incorporated in v1.3.4.


Redirect back to projects/new after signin from projects/new

If a user clicked the "Big green button" (Get your badge now) and were not signed in, they would be asked to login but then redirected back to the homepage.  This makes it so they are redirected back to projects/new after logging in.
Signed-off-by: Jason Dossett<EMAIL_ADDRESS>

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@0ba9177). Click here to learn what that means.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master     #642   +/-   ##
=========================================
  Coverage          ?   99.65%
=========================================
  Files             ?       42
  Lines             ?     1147
  Branches          ?        0
=========================================
  Hits              ?     1143
  Misses            ?        4
  Partials          ?        0

Impacted Files
Coverage Δ

app/controllers/projects_controller.rb
98.72% <100%> (ø)

app/helpers/sessions_helper.rb
100% <100%> (ø)

Continue to review full report at Codecov.

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

It looks like Codecov is having errors on their site.  This fix doesnt affect coverage.

I've forced a rebuild on CircleCI. If it's a transient problem, that should do it.  No point in delving into the issue if it's a transient problem in an external service.


.env file is not used

After following the installation steps, I'm getting the errors when running python slack_gpt_bot.py:
Traceback (most recent call last):
  File "/Users/myuser/Documents/GitRepositories/os/slack-gpt-bot/slack_gpt_bot.py", line 10, in <module>
    app = App(token=SLACK_BOT_TOKEN)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/slack_bolt/app/app.py", line 345, in __init__
    self._init_middleware_list(
  File "/opt/homebrew/lib/python3.11/site-packages/slack_bolt/app/app.py", line 397, in _init_middleware_list
    raise BoltError(error_token_required())
slack_bolt.error.BoltError: Either an env variable `SLACK_BOT_TOKEN` or `token` argument in the constructor is required.

When I run with real env variables, it works fine:
SLACK_BOT_TOKEN=... \
SLACK_APP_TOKEN=... \
OPENAI_API_KEY=... \
python slack_gpt_bot.py

Is something like load_dotenv() missing in the code? I could not make it work myself so asking for support.

you can try this -> https://github.com/alex000kim/slack-gpt-bot/pull/2
works for me

@good-lly thanks, works for me as well


Change Odo Reference to odo for cli-docs

What is the purpose of this change? What does it change?
When running make generate-cli-reference, changes from #2214 are changed back to original format with Odo for cli-reference doc. This pr changes cli-doc.go to keep the the cli-reference doc title consistent with other references to odo throughout the CLI.
Was the change discussed in an issue?
N/A

/ok-to-test

/retest

/lgtm
/approve


Add SCF

Add State College of Florida

@iuliasbs I am sorry, the domain student.scf.edu is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Always trigger docker restart when docker package changes

Docker upgrade doesn't auto-restart docker, causing failures
when trying to start another container

ci check this

LGTM - I know I don't count.  :-)

why is this needed ? because docker now supports hot upgrades - https://docs.docker.com/engine/admin/live-restore/
Please do note - that you should not be using "docker wait" in case you are using live upgrades.

@sandys I will test this option and see if it helps. An easy way to do this is:
install docker 1.12.3
add --live-restore flag to docker unit file (and do systemctl daemon-reload)
start docker daemon
run some detached containers
upgrade to docker 1.12.5
see if you can run a new container (or get file deleted error)

@mattymo - https://issues.apache.org/jira/browse/YARN-5818 and https://github.com/docker/docker/issues/27987
please do keep that in mind.
docker wait should not be used.

Why not? It's not clear in those two links.

P.S. I dont do this, so I'm just telling you what i know from the documentation.
@mattymo docker wait will "wait" on the server (which gets upgraded). so connection breaks down.