[sdl2-mixer]Remove useless dependency link libraries.

Since the library method using features in sdl2-mixer is dynamically loaded (using the function SDL_LoadFunction), remove all links that depend on the feature library.
Related: #7356.

@lethal-guitar Can you test this?
Thanks.

@JackBoosY Will do, thanks!

@lethal-guitar Does this PR fix this issue?

@JackBoosY sorry, I didn't have a chance to test this yet. I'll get back to you as soon as I can! Sometime this week should be doable.

@JackBoosY sorry for the delay! I finally found the time to test this properly, and I'm somewhat puzzled. I have a version of SDL2_mixer.dll which has the dependencies mentioned in my issue (see screenshot), but I haven't been able to reproduce this problem locally (the DLL In question was built on CI by AppVeyor).

I have tested the master branch of vcpkg as well as the 2019.06 tag (since the DLL I have is dated 1st of June), and a random commit from before the 2019.06 tag. For each of these commits, I ran:
bootstrap-vcpkg.bat
vcpkg remove sdl2-mixer:x64-windows
vcpkg.exe install sdl2-mixer:x64-windows --triplet x64-windows

But the resulting SDL2_mixer.dll never exhibited the dependencies observed in the other DLL.
Do you if I'm missing a step in my testing? If not, I think we can close #7356, as it seems the problem is already fixed on master.

@lethal-guitar I think you missed these features in the installation list.
You need to install sdl2-mixer using the command vcpkg.exe install sdl2-mixer[core,libflac,mpg123,libmodplug,libvorbis,opusfile].

@JackBoosY I see, thanks! I'll give it another try tonight.

@JackBoosY @cbezault I was finally able to get back to this (apologies again for the delay).
I can confirm that the changes on this branch result in a SDL2_mixer.dll without load-time dependencies, even when using the command line that enables the corresponding features. The master branch on the other hand does exhibit these dependencies, when enabling the features (see screenshots below).
I have also tested the resulting DLL with my project, and found that it works fine.
What I don't know is how this change affects users who need these additional features, so it might be worth confirming with someone else that they still work as expected.
Dependency Walker
Current master:

This branch:

@lethal-guitar Thanks for testing.
I think this PR should fix this issue.

This absolutely doesn't work for me for mpg123.
I guess SDL2_mixer is now built without support for those dependencies, so:

the preprocessor flags aren't set
the headers aren't here when compiling

Am I doing smth wrong?

My bad, it's fine :)

Okay so I compared with the commit prior to this one, and yeah, it impacts things. It doesn't build the parts of the code that links against those dlls.
So if the dll linking is not acceptable to you, maybe we can revert to the previous stage and remove only the target_add_library commands? Or we can always build SDL2_mixer against all optional dependencies, but it doesn't sound like "pay only for what you use" and increases build time.

@Vermeille  As @lethal-guitar said, even with some features, we should NOT add these dependent ports to the static link list of sdl2-mixer.

@JackBoosY If I understand correctly, what @Vermeille is saying is that at the moment, it's not possible at all to use these features, since the code that dynamically loads the libraries seems to be excluded from the build. It's true that the libraries shouldn't be linked at compile time, but the library should still be able to dynamically load them.
As I mentioned in my comment:

What I don't know is how this change affects users who need these additional features, so it might be worth confirming with someone else that they still work as expected.

Seems that this PR did indeed break the usage of these features. I don't use these optional features myself, so I didn't test how this PR affects the usage of them, hence my comment.
In an ideal world, we would keep the behavior of copying the DLLs into the installation directory when the corresponding features are enabled, but avoid linking to these DLLs at compile time to avoid the hard requirement.

@lethal-guitar Absolutely. It doesn't build the code looking for those dlls.
So I guess we should go back to the previous build file, but exclude the target_link_libraries to not link them to sdl mixer.
However I'd still very like to have CMake consider them as part of the runtime requirements so that they're seamlessly installed when calling install() ; but I have no idea how to do that.

@Vermeille I know what you said, we should not link these dependencies to sdl2-mixer, but we need to add these header files to compile them, right?

@JackBoosY Absolutely.


[Azure Maps] - Onboarding for Route SDKs

Description
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-maps-route

/azp run python - maps - tests

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-maps-route

Previous APIview for the board review.

Previous APIview for the board review.

/azp run python - maps - tests

Assuming this is the latest APIView:
https://apiview.dev/Assemblies/Review/c46c5bcae8a3467daa51668b6ba8c820
@praveenkuttappan why is it generating two?

/azp run python - maps - tests

/azp run prepare-pipelines


When write html code with emmet, inline element can't spread out in a vertical row.

Issue Type: Feature Request
When write html code with emmet, inline element can't spread out in a vertical row.
Does VScode have this function? I want the inline element can spread out in a vertical row instead of a line.
For example,
btn*3 =>
<button></button>
<button></button>
<button></button>
But now, it is
btn*3 => <button></button><button></button><button></button>
That's not very intuitive.

Also,block element can spread out in a vertical row like <div>.

VS Code version: Code 1.54.3 (2b9aebd5354a3629c3aba0a5f5df49f43d6689f8, 2021-03-15T10:55:45.459Z)
OS version: Windows_NT x64 10.0.19041

We need to add 'output.inlineBreak': number; to the extension in the preferences so that the parameter can be passed upstream, for example see https://github.com/emmetio/emmet/blob/master/src/config.ts#L129

There is an emmet setting for this:
"emmet.syntaxProfiles": {

  "html": {
    "inline_break": 1
  },
}

With that setting inline elements will break to a newline after one such element.


feature(ballast): add ballast

links:

https://github.com/golang/go/issues/23044
https://blog.twitch.tv/en/2019/04/10/go-memory-ballast-how-i-learnt-to-stop-worrying-and-love-the-heap/

examples:

https://github.com/pingcap/tidb/pull/29121/files
https://github.com/cortexproject/cortex/blob/master/cmd/cortex/main.go#L148

@kevwan PTAL

@chenquan I think we better not to add this feature into the framework.
I think if users need it, they can add simple code in main func, it's really simple if users understand the mechanism.
ballast := make([]byte, 100 << 20) // 100 MB
...
runtime.KeepAlive(ballast)

Better not to do that for users.

@chenquan I think we better not to add this feature into the framework.
I think if users need it, they can add simple code in main func, it's really simple if users understand the mechanism.
ballast := make([]byte, 100 << 20) // 100 MB
...
runtime.KeepAlive(ballast)

Better not to do that for users.

Yes, I agree.


Linking error - unresolved external symbol _EVP_MD_CTX_new

I am compiling SNMP linking to Openssl 1.0.2k and I am getting these errors:
3>netsnmp.lib(keytools.obj) : error LNK2001: unresolved external symbol _EVP_MD_CTX_new
3>netsnmp.lib(scapi.obj) : error LNK2001: unresolved external symbol _EVP_MD_CTX_new
3>netsnmp.lib(keytools.obj) : error LNK2001: unresolved external symbol _EVP_MD_CTX_free
3>netsnmp.lib(scapi.obj) : error LNK2001: unresolved external symbol _EVP_MD_CTX_free

I also search on StackOverflow and found that
EVP_MD_CTX_new() in 1.1.0 has replaced EVP_MD_CTX_create() in 1.0.x.
EVP_MD_CTX_free() in 1.1.0 has replaced EVP_MD_CTX_destroy() in 1.0.x.
Since I am using 1.0.2k I might not have this functions anymore. So I disabled it in the net-snmp-config.h
/* Define to 1 if you have the `EVP_MD_CTX_create' function. */
#define HAVE_EVP_MD_CTX_CREATE 0

/* Define to 1 if you have the `EVP_MD_CTX_destroy' function. */
#define HAVE_EVP_MD_CTX_DESTROY 0

But even doing that I am getting the same errors.
This is the related code inside of SNMP (keytools.c)
    /*
     * Setup for the transform type.
     */
#ifdef NETSNMP_USE_OPENSSL
#ifdef HAVE_EVP_MD_CTX_CREATE
    ctx = EVP_MD_CTX_create();
#else
    ctx = malloc(sizeof(*ctx));
    if (!EVP_MD_CTX_init(ctx))
        return SNMPERR_GENERR;
#endif

I am compiling my sample project using VS2008 as Multi-threaded DLL (/MD) linking to libsnmp and OpenSSL 1.0.2k both static or dynamic (I tried both and I am getting the same error)
Are these functions (EVP_MD_CTX_new ...)  supposed to be replaced? Or they are still on the new versions of OpenSSL?

For now I am using NETSNMP_USE_INTERNAL_CRYPTO that disables OpenSSL and uses snmp internal cryptography and it is working fine. Anyway I used OpenSSL in Paho without problems so maybe it is an error in SNMP and not in OpenSSL.

Yes, this appears to be an SNMP problem not OpenSSL. Closing this for now.


Avoid leaving zombie executions

The general idea is that at the quit of an actionrunner a specific process will simply marking incomplete executions as abandoned. This way they are not left in a RUNNING state.

This is done on SystemExit leveraging existing shutdown code-path.
SIGTERM is handled but SIGKILL will still leave zombies. Using kill -9 <runner-pid> is not recommended and I guess will like be an extreme case anyway.

https://stackstorm.slack.com/archives/stackstorm/p1450241217014554

l,g,t,m :ship:

As far as the general approach goes - I'm fine with that solution as a stop gap (it's probably sufficient for now).
As you have pointed out, there is nothing we can do with this approach if service is killed with SIGKILL.
Having said that, as a long term and more robust / fail-safe solution I think it would be a good idea to check for zombies and (also) perform rectification on the service startup - ideally the code should be the same so we can call the same code in different places (signal handler, service startup, periodic garbage collection green thread or similar).
Imo, that's generally a good pattern in distributed systems - service and process can die or be killed at any time so you can't rely on a particular signal handler to always be called - yes you can still have it there for a common / average case, but for the worst case you still need something else (and distributed systems all all about worst cases anyway :P)
Anyway, this should do for now, just something to think about for a future solution (or in case people still complain a lot about zombie execution after this change is out).

Also on a slightly related note - I'm working on garbage collection service for purging old data and eventually we could also put something like this there to make sure the cleanup runs on some periodic interval.

I'm working on garbage collection service for purging old data and eventually we could also put something like this there to make sure the cleanup runs on some periodic interval.

Original plan was to come up with a 2 step approach.

cleanup on service/process exit
write a purge tool that can be run ad-hoc or on a schedule.

Once the need for a reaper showed up I decided to hold off on step 2 and I think it will be best place to write this code. So will wait on that PR to land and then include.

perform rectification on the service startup

This is a little tricky as we also need to know all the actionrunner PIDs to identify zombies. Some sort of service discovery would be useful.


Bad span with untagged enum

I'm getting the wrong spans with the following (playground)
use toml;
use serde::Deserialize;

#[derive(Deserialize)]
struct S {
    key: Vec<E>,
}

#[derive(Deserialize)]
#[serde(untagged)]
enum E {
    A { a: String },
    B { b: String },
}

fn main() {
    let s = r#"
[[key]]
a = "good"

[[key]]
c = "bad"
"#;
    if let Err(err) = toml::from_str::<S>(s) {
        println!("{err}")
    }
}

TOML parse error at line 2, column 1
  |
2 | [[key]]
  | ^^^^^^^
data did not match any variant of untagged enum E

I'd expect the error to be in line 5. I'm unsure if it's related to the untagged enum, but I've tried other variations without the untagged enum and it seems to work.

This is an issue within serde_derive, see #535.  While the original post is focused on internally-tagged enums, it applies to that as well as untagged enums.  Closing in favor of that issue.  If there is a reason we should keep this open separately, let us know!


CentOs

Hi,
How to install on CetOS7 pls ?

Did you try using npm or by downloading the binaries?

`node:internal/modules/cjs/loader:988
throw err;
^
Error: Cannot find module '@fathyb/carbonyl'
Require stack:

/tmp/carbonyl-0.0.2/[eval]
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:985:15)
at Function.Module._load (node:internal/modules/cjs/loader:833:27)
at Module.require (node:internal/modules/cjs/loader:1057:19)
at require (node:internal/modules/cjs/helpers:103:18)
at [eval]:1:1
at Script.runInThisContext (node:vm:129:12)
at Object.runInThisContext (node:vm:313:38)
at node:internal/process/execution:79:19
at [eval]-wrapper:6:22
at evalScript (node:internal/process/execution:78:60) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/tmp/carbonyl-0.0.2/[eval]' ]
}
/usr/local/bin/carbonyl: line 2: : command not found
`

and with binaries getting erro:
-bash: ./carbonyl: cannot execute binary file

If you cannot run the binaries it's likely the npm package won't work (although there was I bug I just fixed).
Did you install all the dependencies required to run Chromium, and did you verify you download the correct binaries for Linux and your CPU?


Backward couple thermal model

Need to put in temperature dependence of parameter in electrochemical submodels

This is something I'd be interested in helping with


[monitor ingestion] move to new location

First step in moving Monitor Ingestion from 'sdk/monitor/azingest' to 'sdk/monitor/ingestion/azlogs'
Part of https://github.com/Azure/azure-sdk-for-go/issues/22377

/azp run prepare-pipelines

/azp run go - azlogs - ingestion


Prettier grey sparkle?

This is subjective (and others might not feel this way) but the grey sparkle looks a bit off-putting to me, especially in dark mode. I guess there was feedback that non-filled grey sparkle was not too visible, but the current solution seems less pleasant.

I agree. What about using the same yellow as the lightbulb? In the end it is just a different lightbulb. And we don't need to make up a new color.

I will change the color of the sparkle to make it yellow

I thought @aiday-mar changed this before from yellow to grey based of previous feedback. :)
Maybe we should just increase the contrast?

I think the yellow looks good and has some advantages:

we that we don't introduce a new color. It's difficult to pick a new color that works for existing themes
the sparkle is just a variant of the lightbulb and the hope is using the same color will convey that


add alarm-clock-off icon

Preview

@ericfennis Opinion in what sense?

@mittalyashu @locness3 Was not sure about the icon in Discord. So I think we need some more opinion. I think the icon is not very clear. The average person need to see the other clock icon first to see this is the off version.
Maybe adding this bell will make it more obvious:

@ericfennis okay, let me give it a shot.


Review and Possibly Rework getAtom()

Enough has changed since this abstraction was first implemented, that it is worth going back and review and possibly changing the entire architecture:

Atom Caches
Fetching Atoms (DB and cache)
Atom Managers
Databases (particularly how databases own atom caches, perhaps they should just be given one)

Also, review the thread-safety of the entire atom stack.

Bumping to hard because of the performance concerns involved.


Webview does not deeplink to open Custom URL Scheme on iOS

Bug description:
On iOS, the following code does not redirect to open Custom URL Scheme.
However, if I change the Custom URL MyApp:// to https://, it can open the link just fine.
<WebView
  source={{ html:
    `

    `
  }}
/>

Expected behavior:
WebView can open Custom URL (or open MyApp in other word)
Environment:

OS: iOS
OS version: 14.5.1
react-native version: 0.62.2
react-native-webview version: 11.2.3

I am also having an issue loading HTML using webView in release apk. During development, it works fine. I am using seats.io to show the chart using webView in android and ios app.
https://github.com/matheuschagas/seatsio-react-native
I am using it like this...
 <View
        style={{ flex: 1, backgroundColor: 'yellow', alignSelf: 'stretch' }}>
        <WebView
          ref={(r) => (this.webRef = r)}
          originWhitelist={['*']}
          source={{ html: this.html() }}

          style={{ width: 320, height: 300, backgroundColor: 'lightblue' }}
          domStorageEnabled={true}
          javaScriptEnabled={true}
          injectedJavaScriptBeforeContentLoaded={this.pipeConsoleLog()}
          onMessage={this.handleMessage.bind(this)}
        />
      </View>

and html function is like this...
 html() {
    return `

            <title>seating chart</title>
            <meta name="viewport" content="width=device-width, initial-scale=1.0" />

        `;
  }

Need help on this. Thanks in advance.

I later fond out that we need to specify the Custom URL in Info.plist for the key LSApplicationQueriesSchemes in order to make this work on iOS.
Just want to share here in case it might be useful for others.

hi @focalsolution
I happen to stumble upon same issue,
this is my custom URL (a deeplink):
myapp://open-browser/https://mydaily.dev/JOURNAL/home?id=123e4567-e89b-12d3-a456-426655440000&source=01&channel_id=HOME
I'm trying to redirect from webview by using deeplink custom URL but it seems not redirecting it.
I already made sure the web returns the deeplink custom URL and I tried on Safari it works ok.
my expected behavior is
when I'm on iOS WebView and click this button inside the webview, it will redirect/open Custom URL (or open myapp in other word).
I tried to specify the Custom URL including the myapp://open-browser/ in Info.plist for the key LSApplicationQueriesSchemes like you said, but the webview still not redirecting it.
Any ideas you might share? please

Having same issue. Anyone has an update on this.

@ddl-elo
Can you try with myapp (no ://) in the array of LSApplicationQueriesSchemes ?

@focalsolution  tried following doesn't work.
if i put this link on safari it works.
org.reactjs.native.example.myapp://about/
But from webview its returns NSURLErrorDomain 1002.
my actual intention is
-when the auth from azure b2c is successful it redirects to
msauth.org.reactjs.native.example.myapp://auth
I want to handel it in a react native component
My current info.plist has this
<key>LSApplicationQueriesSchemes</key>
		<array>

			<string>msauth.org.reactjs.native.example.myapp</string>
			<string>org.reactjs.native.example.myapp</string>
		</array>

<dict>
				<key>CFBundleURLSchemes</key>
				<array>
					<string>org.reactjs.native.example.myapp</string>
<string>msauth.org.reactjs.native.example.myapp</string>
				</array>
			</dict>

I later find out that we need to specify the Custom URL in Info.plist for the key LSApplicationQueriesSchemes in order to make this works on iOS.
Just want to share here in case it might be useful for others.

thx

same problem
My info.plist:
`

LSApplicationQueriesSchemes

com.xxxxxxx://garmin/success

`

same problem
My info.plist:
      <plist version="1.0">
         <dict>
             .....
             <key>LSApplicationQueriesSchemes</key>
             <array>
                  <string>com.xxxxxxx://garmin/success</string>
             </array>
            .......
         </dict>
      </plist>

If anyone still have the issue and stuck here, i just make it works by setting the originWhitelist as explained here here
originWhitelist={['https://*', 'myapp://*']}


Documented advanced locking interface example doesn't work

The advanced locking example with zookeeper doesn't ever actually call the lock method that it overrides: it just calls @scheduler_lock.lock directly.
The culprit seems to be this commit here https://github.com/jmettraux/rufus-scheduler/commit/68ffbc3dc2b915747e4ab338390846910b1ecbd6
The new scheduler_lock argument isn't actually a substitute for the subclassing interface from the example in the docs because:

A lock object won't be able to call methods on the scheduler instance (eg.  shutdown in the confirm_lock method of the zookeeper instance)
There is no confirm_lock call for a passed-in scheduler_lock; you could override confirm_lock and pass in a custom lock object, but that's a pretty convoluted interface.

Proposed fix here: https://github.com/jmettraux/rufus-scheduler/pull/238

Merged. Thanks a lot!


PLEASE HELP

How can I do that. Since the pdf is syncing among all users. Can you please do if one swith pages on pdf it will sync on all users. how can I do that? Please help me.

Hey @ph4t0o0o0om ,
If you'd like new users to have access to the PDF being worked on, you need to send it to them via sockets when they connect. The canvas drawings are already being sent.

Hi . Can you please help me to do that? Thank you so much!


Provided indices are out-of-bounds w.r.t. dense side with broadcasted shape. Histogram error?

Hi,
I'm having an issue training a model to segment 5 different classes. The dataset I'm using contains 10 MRI images each with 5 different labels. These labels are consistent for each instance (I checked in the .nii.gz files).
The labels are as follows: 0 1 2 64 71
When I train for 3 classes (0, 1 and 2) the training works fine. When I train for 5, I get the below error.
InvalidArgumentError (see above for traceback): Provided indices are out-of-bounds w.r.t. dense side with broadcasted shape
From looking at past posts, I changed my config and histogram ref files, yet I still cannot train. Is it an issue with the labels not being in a sequential order?
[train-images]
path_to_search = ./training/
filename_contains = training_axial_full_
filename_not_contains = label
spatial_window_size = (144, 144, 144)
interp_order = 1
axcodes=(A, R, S)

[train-labels]
path_to_search = ./training/
filename_contains = training_axial_full_, _label_B
spatial_window_size = (144, 144, 144)
interp_order = 0
axcodes=(A, R, S)

[test-images]
path_to_search = ./testing/
filename_contains = testing_axial_full_
filename_not_contains = label
spatial_window_size = (144, 144, 144)
interp_order = 1
axcodes=(A, R, S)

############################## system configuration sections
[SYSTEM]
cuda_devices = ""
num_threads = 2
num_gpus = 1
model_dir = ./models/
dataset_split_file = ./models/dataset_split.csv
queue_length = 10

[NETWORK]
name = dense_vnet
batch_size = 2
normalisation = True
volume_padding_size = 0
window_sampling = resize
histogram_ref_file = ./models/histogram_ref_file.txt

[TRAINING]
sample_per_volume = 1
lr = 0.001
loss_type = Dice
starting_iter = 0
save_every_n = 200
max_iter = 2000
# data augmentation
rotation_angle = (90, 180, 270)
random_flipping_axes = 1
scaling_percentage = (0.8, 1.2)
tensorboard_every_n = 20

[INFERENCE]
border = (0, 0, 0)
inference_iter = 2000
output_interp_order = 0
spatial_window_size = (144, 144, 144)
validation_every_n = 5
exclude_fraction_for_validation = 0.2
dataset_to_infer = test-images
save_seg_dir = ./testing/
output_postfix = _segmentation_niftynet

############################ custom configuration sections
[SEGMENTATION]
image = train-images
label = train-labels
label_normalisation = False
output_prob = False
num_classes = 5

Running this generated a histogram_ref_file.txt, but then failed at the first iteration of training. I then added 2 lines to the histogram .txt, and it looks like so:
train-images 0.0 0.0 0.0 0.0 0.0 0.2530471005484592 1.924915148926776 7.82734619781791 17.384864102727136 22.401117425949785 28.65465884299126 49.433686447119086 100.0
train-labels_label-from 0 1 2 64 71
train-labels_label-to 0 1 2 3 4

The histogram_ref_file points to the correct location, which should enforce the labels to be 0 1 2 3 4. The num_classes=5. My .nii.gz files all have consistent labeling. Can anyone suggest why the training is failing?

Update: Looks like the training is working now, I manually changed the label numbering in the .nii.gz files to be sequential, though it could also be done with a script. I'm still curious to know as to why it wasn't training before if anyone has any further explanations.


Update Site Header to use Collapsible Menu View

Summary
Uplifted terra-site to use the collapsible menu view such that the options collapse at smaller view port sizes. Closes #838.

Should we add the CollapsibleMenuViewDivider to separate the rtl elements from the other drill in items?

Collapsible menu works as expected for the site header bar. Only issue is that in IE and Edge, instead of the Theme button, there is a small, gray button artifact present. it is clickable but not functional (I understand that dynamic theming not enabled in IE/Edge).

@mmalaker it should be fixed now

Button artifact is fixed now, but I found a couple other issues: IE/Edge shows ellipse menu button even if the header bar is not collapsed. Edge doesn't collapse toolbar into the menu at all.

@mmalaker the menu appears to be collapsing correctly if the screen is small enough when testing on both 11 & Edge.
@jmsv6d do you have any insight into why the menu button is always displaying on IE/Edge? The menu example does not seem to have this issue.

My first guess would be that the way you have the toggleContent in the CollapsibleMenuView and modify the styling so that it will be left aligned is messing with the width calculation logic. I would create a div that has the header styling, then pull the toggleContent out of the CollapsibleMenuView, making the toggleContent left aligned and the CollapsibleMenuView right aligned and see if that fixes the issue.

@mmalaker I've fixed the header such that the ellipse menu button only appears when expected.

Functional verification completed. The site header components now display correctly and responsive behavior functions as expected.


Beautify display of commit messages with bodies and/or footers

Clear and concise description of the problem
When committing with a structured message (e.g. following Conventional Commits specification), Woodpecker cramps the whole message together into one large string when displaying it in the repo commit list and the pipeline run title. This is usually pretty ugly and decreases readability.
Example:

Suggested solution
A new environment variable CI_COMMIT_MESSAGE_HEADER could be added which would be used to populate the strings mentioned above. This would of course require parsing the commit message first.
Alternative
Alternatively, a UI section for the body and footer of the commit message could be added below the pipeline run title to display those variables.
All of the steps described above would still be necessary, but in addition, at least CI_COMMIT_MESSAGE_BODY (if one wants to treat body and footer as one) would have to be parsed and added as well.
Additional context
No response
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

is it the same as https://github.com/woodpecker-ci/woodpecker/issues/1314#issuecomment-1346546424 ?

I'd go with yes and also the same as https://github.com/woodpecker-ci/woodpecker/issues/1314#issuecomment-1302791703 (which is also posted in the ui feedback)

Not quite, but it's the same topic for sure. While one of my concerns is the overflow mentioned in the linked comments, that could be caused by a very long commit message header as well.
The mangling of commit message header, body and footer though is what mainly causes this overflow and also the ugly cap changes in the middle of the text. I'd like to avoid both by using one of the solutions mentioned above, not by cutting the text off at some specified length (which would still leave the cap changes unless one uses periods which looks weird in Github, Gitea etc.)


object_storage_service benchmark quantiles should be symmetrical

The summary output for object_storage_service lists p1, p5, p50, p90, p99 and p99.9, which is great for metrics where lower is better (e.g. latency) because you can see with good resolution how long the tail is, but for metrics where higher is better (e.g. throughput) there's less data around the "bad" side of the tail. Would be nice to have p0.1, p1, [p5,] p10, p50, p90, [p95,] p99, p99.9.

Would you like to take this on in terms of adding the metrics?  We can also do it.

I'm happy to do it. Will work on it today.


Issue with Wildcard Filtering in Port Scan - All Ports Listed as Open

Hello,
I'm experiencing an issue with jfscan when attempting to filter wildcard entries during a port scan. For some hosts, the scan outputs every port as open, which appears to be a misinterpretation rather than an accurate result. This affects the reliability of scan outputs, especially in situations where accurate port status is critical.
Steps to Reproduce:

Run jfscan with wildcard filtering enabled on the affected hosts.

adoptech.co.uk
nominet.uk

Observe the output, where every port is reported as open, regardless of the actual status.

Expected Behavior: The scan should properly filter out wildcard results, returning only genuinely open ports.
Actual Behavior: Every port is listed as open, leading to a bloated and inaccurate result set.
Additional Context:
I’ve attached a screenshot for reference, showing the output with all ports listed as open on affected hosts.
Screenshot:

Thanks for looking into this! Let me know if I can provide further details.

This is not an issue with JFScan; rather, it's related to the host's firewall, which responds to all ports (SYN packets) as if they are open (SYN-ACK).


How I may obtain a copy of the License?

How could I get the License for usage? I'd like to implement this samples on a application I have been developed for my college and I'd like to use it.
Thanks in advance!

Thanks for interesting in our project. Feel free to use it. You can find license at the bottom of Readme.


Sitemap

Google (and other bots) might not easily find all the urls and index them when crawling the site, since most works and terms are only listed after searching or paging/scrolling, which I doubt the bots will be doing.
Background:

A sitemap is a list of urls on the site [Google: Build a Sitemap]
They can be in XML, RSS or plain text. The plain text format is literally a list of urls. The other formats can be used to add metadata, but that doesn't seem really valuable in our case.
The sitemap can be submitted in the Google Search Console, or referred from robots.txt
We could generate one by doing API queries and outputting route paths

I'm sure WordPress can generate a sitemap for the /om/ pages. We can combine the two sitemaps with a sitemap index

I don't think we should generate the sitemap as a static file at build time, as this would need to be triggered again manually after relevant changes in Libris or the QLIT backend
Better, perhaps, to do the sitemap generation in a Vue route view. It would take a long time but hopefully that's not a problem.

Another approach that would probably benefit search bot indexing is #57 "Search query as url parameters", especially including the page number. If I understand correctly, the bot can then navigate through the result list and reach all the work urls by itself.


How to use Chunking Strategy in Vector Store?

Hello and thank you for this excellent SDK,
It seems to me that it is not currently possible to modify the tools.file_search.max_num_results parameters as defined in the documentation here: https://platform.openai.com/docs/api-reference/assistants/createAssistant#assistants-createassistant-tools
as well as the parameters chunking.strategy.max_chunk_size_tokens and chunking.chunk_overlap_tokens as defined in the documentation here: https://platform.openai.com/docs/api-reference/vector-stores-files/createFile#vector-stores-files-createfile-chunking_strategy
In practice, I'd like to be able to do something like :
await openAi.AssistantCreate(new AssistantCreateRequest
{
    Name = "...",
    Tools = new List<ToolDefinition>
    {
        new ToolDefinition
        {
            Type = "file_search",
            FileSearch = new() { MaxNumResults = 15 } // NOTE: <<< Impossible to add this parameter.
        }
    },
    // ...
}, Models.Gpt_4o, cancellationToken);

and
await openAi.CreateVectorStoreFile(vectorId, new CreateVectorStoreFileRequest
{
    FileId = fileId,
    ChunkingStrategy = new() // NOTE: <<< Impossible to add this parameter.
    {
        Type = "static",
        Static = new ()
        {
            MaxChunkSizeTokens = 400,
            ChunkOverlapTokens = 100
        }
    }
}, cancellationToken);

Is this feature not implemented (and if so, are there any plans to do so soon?) or am I missing something?
In any case, thanks for all the work you've already achieved in this excellent repository 😃

Hi, thanks for submitting the issue. I'm planning an update this week. If you know any other missing parameters, please report them as well.

Amazing! I didn't think the correction would come so quickly, thank you very much. :smile:
The changes in my first post are all I need, but, for completeness, I noticed that :

There's also a parameter: tools.file_search.ranking_options in the same place as max_num_results

In addition to being configurable from the “Vector Store File” creation request, as mentioned above, is also configurable from :

The request to create a “Vector Store File Batch” (https://platform.openai.com/docs/api-reference/vector-stores-file-batches/createBatch#vector-stores-file-batches-createbatch-chunking_strategy)
The request to create a “Vector Store” (https://platform.openai.com/docs/api-reference/vector-stores/create#vector-stores-create-chunking_strategy)

And it visible on return in the the "Vector Store File object” (https://platform.openai.com/docs/api-reference/vector-stores-files/file-object#vector-stores-files/file-object-chunking_strategy).

I hope this helps. Thanks again :smile:


Support multiple reference Types

What problem are you facing?

Currently, you can add a single, explicit reference, to another resource like this example for google_cloud_scheduler_job:
	p.AddResourceConfigurator("google_cloud_scheduler_job", func(r *config.Resource) {
		r.References["pubsub_target.topic_name"] = config.Reference{
			Type: "github.com/upbound/official-providers/provider-gcp/apis/pubsub/v1beta1.Topic",
		}
	})

However, some resources can accept references for multiple Types. In the example above, Both a Topic and a LiteTopic are supported. Upjet currently does not allow multiple references, of different Types, for a single argument.
How could Terrajet help solve your problem?

Allow specifying multiple supported reference Types for an argument. E.g.
	p.AddResourceConfigurator("google_cloud_scheduler_job", func(r *config.Resource) {
		r.References["pubsub_target.topic_name"] = []config.Reference{
			config.Reference{
				Type: "github.com/upbound/official-providers/provider-gcp/apis/pubsub/v1beta1.Topic",
			},
			config.Reference{
				Type: "github.com/upbound/official-providers/provider-gcp/apis/pubsub/v1beta1.LiteTopic",
			},
		}

Terrajet community example here.

I hit this problem today with the SubscriptionFilter
The filter takes a destinationArnRef or destinationArnSelector is based on [destinationArn](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutSubscriptionFilter.html#API_PutSubscriptionFilter_RequestSyntax)
The ARN of the destination to deliver matching log events to. Currently, the supported destinations are:

An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery.
A logical destination (specified using an ARN) belonging to a different account, for cross-account delivery.
A Kinesis Data Firehose  delivery stream belonging to the same account as the subscription filter, for same-account delivery.
A Lambda function belonging to the same account as the subscription filter, for same-account delivery.
The destination can be of kind Lambda, Kinesis Stream, Kinesis Firehose, or OpenSearch

I want to create a subscription for destination to Kinesis Data Firehose but only Amazon Kinesis stream is supported
I tried the following, having a Delivery system with labels
apiVersion: firehose.aws.upbound.io/v1beta1
kind: DeliveryStream
metadata:
  labels:
    crossplane.io/claim-name: test-logs-firehose-s3-lambda
    crossplane.io/claim-namespace: default
    firehoseapps.awsblueprints.io/app: firehose

...

I create a subscription with destinationArnSelector
apiVersion: cloudwatchlogs.aws.upbound.io/v1beta1
kind: SubscriptionFilter
metadata:
  name: dynatrace-aws-logs-test
spec:
  forProvider:
    destinationArnSelector:
      matchLabels:
        crossplane.io/claim-name: test-logs-firehose-s3-lambda
        crossplane.io/claim-namespace: default
        firehoseapps.awsblueprints.io/app: firehose
    filterPattern: ""
    logGroupName: "/aws/eks/crossplane-blueprints/cluster"
    name: "dynatrace-aws-logs-test"
    region: "us-east-1"
...

I get error
    message: 'cannot resolve references: mg.Spec.ForProvider.DestinationArn: no resources
      matched selector'
    reason: ReconcileError


Selecting records with more than one "tag" element

The Erlang socket module has a "nowait" mode for some functions which, instead of waiting for something to happen (like receiving data), returns immediately and later sends a message letting the caller know when they should try again. The format of this message is {'$socket', Socket, T, X}, where T is an atom indicating the type of message and X a type-specific payload.
If you want a Gleam selector that selects all such "socket messages", that is easy enough:
let assert Ok(tag) = atom.from_string("$socket")
process.new_selector()
|> process.selecting_record4(tag, fn(a, b, c) { ... })

But I don't think there is currently a way to select only messages related to a specific socket, as it would require treating the first two elements as fixed-value "tags", and selecting_recordX only uses the first element.
I will say, I don't have a concrete use case for this yet — a process handling multiple sockets would probably want to receive messages for all of them, and a process handling a single socket could just panic if the Socket is not what it expects. But it seems like a notable limitation in general, since there is no lower-level API that lets you build arbitrarily-"shaped" selectors. Is that something you've considered? Are there other cases where it would be useful? (selecting_trapped_exits might be one)

It's tricky- adding another clause for the second element would result in a performance hit, and selectors are already slower than Erlang receives. Selectors will be used in the hot path for Gleam OTP applications so performance is important here. Do you have thoughts on how it might be implemented?
More specifically, could you expand upon the use case and how you'd like to use this new selector? There could be another solution for working with sockets.

More specifically, could you expand upon the use case and how you'd like to use this new selector?

I will say, I don't have a concrete use case for this yet

So in other words, it's all speculative 😄 I'm not yet sure why exactly one would want to selectively receive messages about specific sockets (other than defensive programming, and that can be done in other ways). It just is a thing you technically can do with the socket module, and I wasn't sure how I would translate the same feature into Gleam if I wanted to, e.g. implementing a selecting_messages_for(Socket) function.
The context is that I'm writing myself a low-level socket FFI layer, which may or may not be released for others to use at some point, but I'm treating it as though it could be. So I'm thinking about things beyond just my own use cases. But, this may not be very helpful for you in determining whether to make some change to gleam_erlang, so I understand if the answer is "come back when you have something more concrete"! I just wanted to raise it for consideration, since it seemed like the kind of thing that could come up elsewhere in Erlang FFI and might be worth having a generic solution for.
As far as the shape of that solution, I'm not really sure. It feels like there should be an "escape hatch" (even if you have to write some Erlang) for when you want to receive some non-Gleam messages with potentially any shape, but still take advantage of Actors and Subjects. Maybe this is possible already and I just haven't figured it out yet.
But, as I said, the use cases are speculative anyway.

It feels like there should be an "escape hatch" (even if you have to write some Erlang) for when you want to receive some non-Gleam messages with potentially any shape, but still take advantage of Actors and Subjects.

I'd love to be able to do this, but I've not worked out how this might be implemented yet unfortunately.

Yeah, it seems tricky when there's no way to directly write the receive clause yourself, and the "patterns" of the receive aren't a first-class value. If we had metaprogramming where Gleam code could generate Erlang code, then maybe.

It would be a lot more complex, but we could generate an Erlang module at runtime that has a receive function. It would also make creation of a selector a more expensive operation.
This library is a good reference for how this could be done: https://github.com/rabbitmq/horus/

I've come across another case where the current "selector" functions don't do well, namely socket:monitor/1, which monitors a socket and delivers a message when it is closed:
{'DOWN', MonitorRef, socket, Object, Info}

Even if a selecting_record5 existed, it would only allow selecting all messages where the first element is 'DOWN', which would also incorrectly select e.g. process monitor messages (gleam_erlang currently does support those via a special case).

I'd stick with the existing design and have a function for each kind of down message. I don't think there's much in common between ports and processes so we don't need to abstract over them.

We'll include a socket module with a definition of a socket type and a monitor function for that.
We originally had this for processes and ports, though only the processes one survived the redesign of the Erlang and OTP packages. I should probably bring that back to this package also.

Ah, I see. To me it feels a bit odd to include an external type (socket) in the library that no function in the library actually produces; and also as a socket library implementer, that a tiny part of that library (monitors) would live in gleam_erlang instead. Is a generic "selecting down messages" function out of the question? Something like
selecting_down(kind: Atom, monitor: Reference, transform: fn(Dynamic, Dynamic) -> a)

That way gleam_erlang could stay unconcerned with ports/sockets/etc. if it doesn't otherwise need to be. (Though it occurs to me that if this library were concerned with sockets, it could also implement a special case for selecting $socket messages from a specific socket. How many special cases is too many? 😅)
Either way, I would be able to implement this, so let me know if you would like it 🙂

This library is intended to provide type definitions for all of the core Erlang data types, so it would include sockets. Slightly odd, but that's just the nature of Erlang and how embedded networked stuff is into the language itself.

Makes sense to me.

Do you have a use case for selecting from a specific socket?

Nothing that's otherwise impossible, so I will save it for when my library is more developed (assuming it gets there) 🙂


refactor: use UNSET instead of enable

I hereby agree to the terms of the GreptimeDB CLA.
Refer to a related PR or issue link (optional)
#4952
What's changed and what's your intention?
Previously introduced alter fulltext use
ALTER TABLE monitor COLUMN <column_name> SET FULLTEXT WITH(enable='false');

to disable the fulltext index.
This patch change it to
ALTER TABLE monitor COLUMN <column_name> UNSET FULLTEXT;

for simplicity and better compatibility with fulltext index settings in CREATE stmt.
Checklist

[ ] I have written the necessary rustdoc comments.
[ ] I have added the necessary unit tests and integration tests.
[ ] This PR requires documentation updates.

Please add a brief description of this PR

Please add a brief description of this PR

Updated. Thanks for reminding.