Allow queries to be named

How should this work?  Do we want an edit button or link beside each history entry?  Or should we just be able to name the "current" query, ie the one we are displaying results for.
Does this need to be done for the first public release?

Does not need to be done for public release.
Will be nice addition later.

An edit button to the left or right.
Replace the query with the user defined query name
Allow the query details to be accessed

I have a prototype of this feature running on http://desktop.kmr.nz:4242/query
(until 1pm or so)
It's still buggy so I won't be deploying this to the main site today.

Oh nice!

It's working nicely for me -- cool!

It's still buggy so I won't be deploying this to the main site today.

I've fixed the bugs I've found.  I haven't fixed the bugs I haven't found.  :-)
I've changed the query system so that whenever possible, all queries get an automatic name which the use can then edit.  For example if you use the "Select subset" button on a results page you might get a query name like "153 genes from: hematologic disease (MONDO:0005570)".  Or if you upload a gene list you get a query name like: "uploaded gene list of 27 genes".  If it's a very short list it looks like: "uploaded gene list: cdc42 apl5 gwt1 SPAC14C4.07 atm1"
I've taken a guess at what the names should be.  It's easy to fix if any don't make sense.
These changes are still only on my desktop (unavailable 1pm-9pm -ish UK time): http://desktop.kmr.nz:4242/query
My plan is to release the change to the dev server one morning this week when one or both of you have a little time to do some testing.  The thing that's most likely to break is your existing history.
Val, can I do a 5 minute Skype/Zoom with you sometime to extract the query history from your browser for testing?  If requires using the Firefox developer tools and it's easier to talk you through it.  Once we have your query history in a file we can import it into the development version and test it's OK.
I've also implemented import/export of the query history list.  That feature is hot off the press so I haven't tested it well and it's also only available on my desktop version.  I've just noticed that the order is reversed if you export then import.  I'll fix that tomorrow.

yes sure, we can do Monday or Tues evening, whichever suits you

I've also implemented import/export of the query history list. That feature is hot off the press
so I haven't tested it well and it's also only available on my desktop version.  I've just
noticed that the order is reversed if you export then import. I'll fix that tomorrow.

I've fixed the reversed ordering.  It all works for me but I'd appreciate if one of you could give import/export a test on my desktop: http://desktop.kmr.nz:4242/query
I've done more testing of query naming/editing and fixed a few little bugs.  Seems OK to me now.  Please let me know if you don't agree.  :-)

The query naming and history import/export functions are now live on http://dev.pombase.kmr.nz/
Let me know if you see anything that needs fixing.

Looks good to me....

Thanks for checking. Could you try uploading your query history?

both export and import are working for me

pombelist email, news item, and documentation update done for query naming

pombelist email, news item, and documentation update done for query naming

Thanks for the quick work!
I'll put something on Twitter later once the UK is awake.

I'll put something on Twitter later once the UK is awake.

I did that on Friday.


Store attachments as Blob type

In #281 we are adding initial support for attachments.  Currently, we only support image/* files, but in #325 we are going to expand this to allow more types.
The way we're handling current image attachments is closely linked to OpenAI's requirements for base64 image URIs, since that's where this feature was first needed.  However, this isn't a great approach, and using a Blob is a much better  approach.
Let's alter the way we store and manage attachments in the db and throughout our code to use Blobs, which can be generic and work with any type.  We should probably also add a new class, ChatCraftAttachment or ChatCraftFile, etc. which can handle various conversions (e.g., file -> base64String).

@rjwignar tagging myself for awareness

I suspect we'll move to a more "Assistants" style db in the near future, so I'm going to close this.


examples/windowsize: Sometimes starts with a very small window on Linux

The window is created with a very small, and then it is resized. Probably the order of setting a size was swapped, which was surprising.

This doesn't happen on 2.0. Probably registering the callback might cause a mysterious thing.

ee8bfcd837f437763bbb6d156fcc49e45a3ec20d was the culprit.


Fix inclusion of the event emitter in the custom builds

I discovered an issue with how the events module is included while helping with a problem on Discord. The event emitter should be accessible on Phaser.Events.EventEmitter, not directly on Phaser.Events. The index.js from the events directory takes care of this, so I'm importing that instead of the event emitter directly.

If you change it like this you'll find that the Phaser EventEmitter plugin isn't included at all, so the build won't even run.

Hmmm. Pretty sure it was included when I checked, but I'll check again and see if I can do anything

@photonstorm Should be working properly now. Seems like I didn't test it in any meaningful way earlier.


Lab2: Comments

When you upload code that uses some sort of library (the test files in this case), please add your package.json file so anyone can just use their package manager to install dependencies and run the code without trying to figure out what it needs.
Plus, if you separate files from different labs into different folders than please do that for the first one as well.

Thanks for your advice. I'll definitely fix this problem in the next lab
work.
сб, 19 окт. 2024 г., 15:12 Fallenstar @.***>:

When you upload code that uses some sort of library (the test files in
this case), please add your package.json file so anyone can just use
their package manager to install dependencies and run the code without
trying to figure out what it needs.
—
Reply to this email directly, view it on GitHub
https://github.com/DimaBohdan/programming_labs/issues/1, or unsubscribe
https://github.com/notifications/unsubscribe-auth/A3KGR5YWRIOFSUZWEOGPAYLZ4JEEBAVCNFSM6AAAAABQHNX6EGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGU4TSMJQG43TIMI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Add missing spellcheck param to character count

What
Add missing spellcheck param for the character count component.
Why
We added a new spellcheck param to the textarea component in https://github.com/alphagov/govuk-frontend/pull/1859 However, we forgot to add the param to the character count component, which meant it couldn't be passed through to the textarea.

@36degrees Added tests now - are you ok to re-review please?


XmlEncode::encodeTo(): incorrect escaping of UTF-8 symbols

Fixed two issues in the XmlEncode::encodeTo

Signed char symbols with code > 127 became negative and were escaped as control chars
In any cases were generated incorrect xml escape sequence without ; symbol at the end

Added corresponding test for encodeTo

Your patch solves 2 of 3 problems with this code section. The third case is, that the output has to be utf-8 even if the input strings are not utf-8 encoded (very likely for random byte sequences).
I am escaping the chars > 127, if the hole value is not a valid utf-8 sequence (#588).

It's not clear if this issue has been addressed by my recent acceptance of one of the PRs in #588.
Could you please confirm whether any of your reported issues are still outstanding and, if so, which ones? I'm trying to close off all the XML reporter issues.

I believe the chars > 127 part of this has been covered now by the merging of PR #767.
Have I read that correctly? Is there any more that is still outstanding?

Yes, both of mentioned issues have been fixed by PR #588 and PR #767. So I close my PR.

thanks


ReKotlin-Thunk interest?

See:
https://github.com/ReSwift/ReSwift-Thunk/
https://github.com/reduxjs/redux-thunk
There's plenty of movement on this endeavor in the greater redux community, and I was wondering if the ReKotlin org would be infestered in taking it on, or for someone to?

Here's a functional implementation:
Thunk.kt
package org.rekotlin

data class Thunk<State: StateType>(val body: (DispatchFunction, () -> State?) -> Unit): Action

createThunksMiddleware.kt
package org.rekotlin

fun <State: StateType>createThunksMiddleware(): Middleware<State> {
    return { dispatch, getState ->
        { next ->
            { action ->
                val thunk: Thunk<State>? = action as? Thunk<State>
                when (thunk) {
                    null -> next(action)
                    else -> thunk.body(dispatch, getState)
                }
            }
        }
    }
}

Usage:
import org.rekotlin.Store
import org.rekotlin.createThunksMiddleware
import com.example.AppState
import com.example.appReducer

// setup

internal val thunksMiddleware: Middleware<AppState> = createThunksMiddleware()

internal val store = Store(
    reducer = ::appReducer,
    state = null,
    middleware = listOf(thunksMiddleware)
)

// standard actions dispatched by thunk
object StartFetchAction: Action
object CompleteFetchAction: Action

// thunk creator
fun fetchAction(): Action {
    return Thunk<AppState> { dispatch, _ ->
        dispatch(StartFetchAction)
        doTheFetch {
            dispatch(CompleteFetchAction)
        }
    }
}

// dispatch thunk
store.dispatch(fetchAction())


Provide a redirection URL that can be set after successful job signup

I've heard a few requests to have a redirect after the successful job signup, rather than just leaving them on the current page with a thank you message.

same for the general VolunteersSignupFS page.

hard to do since the Sites page resides within an iframe?  Are we allowed, and is it always valid, to redirect the top page?

**lurch: add

Tracking W-016909


Remove unused part of dependabot configuration, add Dockerfile label

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 83.563%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2730

Relevant Lines:
3267

💛  - Coveralls


[LiveComponents] Fix 1384

Q
A

Bug fix?
yes

New feature?
no

Issues
Fix #1384

License
MIT

Thank you for your response, and I have also looked into the custom hydration function. However, the issue arises from using the built-in LiveCollectionType and LiveCollectionTrait.
As soon as the built-in Add function it used, it create a index => null record in the existing collection. Would be odd to expect everyone to create a custom hydration function when using LiveCollectionType.  My opinion is that this should be a basic functionality of the package or needs documented.
We could also choose to add more logic in the LiveCollectionTrait; function addCollectionItem() to create an instance here instead of adding empty value.

We could also choose to add more logic in the LiveCollectionTrait; function addCollectionItem() to create an instance here instead of adding empty value.

It sounds like a better way to go IMHO

Ping! This PR in its current state, I think, is not the correct solution. But we have 2 proposed alternatives:

We could also choose to add more logic in the LiveCollectionTrait; function addCollectionItem() to create an instance here instead of adding empty value.

And
https://github.com/symfony/ux/pull/1385#discussion_r1455917789
What's the best path?


nullable in union causes extra nullable in document

👋 When using a union that contains a nullable data type, the generated document contains the nullable data type, as well as an extra nullable.
z.union([ z.number().nullable(), z.boolean().nullable() ]) results in [{type: "number", nullable: true}, {type: "boolean", nullable: true}, {nullable: true}], I would expect it to generate [{type: "number", nullable: true}, {type: "boolean", nullable: true}]
https://runkit.com/mattipv4/64877284e730f70008197f5e

@MattIPv4  thank you for bringing this up. This is a very peculiar behavior. Overall the problem is that apparantly z.union is quite smart and if any of the underlying schemas is  .nullable then the .isNullable() getter of the whole union would also return true. This is unlike the rest of the behavior we've observed with other schemas.
And looking at that design decision by zod and what we currently do with "nullable unions" I think a more appropriate representation would be:
anyOf: [{ type: 'number' }, { type: 'boolean' }, { nullable: true }],

and for 3.1.0 this would be:
anyOf: [{ type: 'number' }, { type: 'boolean' }, { type: 'null' }],

Would you agree with that?


Document collide args

Fixes https://github.com/bevyengine/bevy/issues/2720#issuecomment-904623168
Possibly we should omit the extra bit in brackets, not sure if its warranted.

I like that suggestion! Makes it very clear how to use.

bors r+

Would something like
/// # Arguments
///
/// * `a_pos` - Center-position of the first rectangle,
/// * `a_size` - Size of the first rectangle in height; width
/// * `b_pos` - Center-position of the second rectangle
/// * `b_size` - Size of the second rectangle in height; width

be too much or would it be useful?

We don't see "structured" argument docs like that very often in rust docs. Generally they are documented free-form in sentences. I think there are arguments to be made for both approaches, but given that this goes against a pattern we currently use, it should probably be discussed separately.


Things to consider during evaluation

Considerations when evaluating: I want to use t-SNE to visualize your model's results on the DFEW1 fold, but I got a WAR of around 67. Apart from checkpoint = torch.load("../split01_checkpoint-best.pth") and model_without_ddp.load_state_dict(checkpoint['model']), are there any other considerations?

Ensure consistency in the testing environment, and use the DFEW data provided by the official source, which is clip_224x224_16f. Try again.


Tooltip at chart with multiple y-axis

Next strange thing upcoming... first of all, i would like to apologise for already bringing work/questions again....
However, using a chart with multiple y-axis (both line-charts) with different value scales are not showing the tooltip combined.
the tooltip is shown for either one value or the other and not both combined as in the documentation.
    <ApexChart @ref="_chart" Options="_options" XAxisType="XAxisType.Datetime" TItem="Model" Title="@L["xx"]">

        <ApexPointSeries TItem="Model"
                     Items="_values"
                     Name="@L["T"]"
                     SeriesType="SeriesType.Line"
                     XValue="@(e => e.DateTime)"
                     YValue="@(e => Math.Round(e.Sum, 2))"
                     OrderBy="e=>e.X" />

        <ApexPointSeries TItem="Model"
                     Items="_statusTimeLine.Select(x => new Model(x.SourceTime, x.P))"
                     Name="@L["P"]"
                     SeriesType="SeriesType.Line"
                     XValue="@(e => e.DateTime)"
                     YValue="@(e => Math.Round(e.Sum, 0))"
                     OrderBy="e=>e.X" />
    </ApexChart>

@code {
    private void SetChartOptions()
    {
        _options.Yaxis = new List<YAxis>()
        {
            new YAxis
            {
                Title = new AxisTitle { Text = "" },
                DecimalsInFloat = 2,
            },

            new YAxis
            {
                Title = new AxisTitle { Text = "" },
                DecimalsInFloat = 0,
                Opposite = true
            },
        };

        _options.Tooltip = new()
            {
                X = new() { Formatter = @"function (value) { return `${new Date(value).toLocaleDateString()} ${new Date(value).getHours() < 10 ? '0'+new Date(value).getHours() : new Date(value).getHours()}:${new Date(value).getMinutes() < 10 ? '0'+new Date(value).getMinutes() : new Date(value).getMinutes()}`;}" },
                Y = new()
                {
                    Formatter = @"function (value)
                                {
                                    if(value < 80) { return value + ' '}
                                    return value + ' ';
                                }"
                }
            };
    }
}

The code has been slightly modified as some values contain interene information.
Many thanks in advance!

Thanks for reporting
I'll try to troubleshout as soon as I can.

I added a simple example https://apexcharts.github.io/Blazor-ApexCharts/features/formatters#multiple y axis
Looks like this one is working or I'm I missing something?

In case of two different values, i.e. number of persons in corelation to total energy consumption (i.e. two different value units, like count and KW).
Furthermore, if I have only 20 measurements of persons but 5000 of energy values, only one value is displayed as tooltip. Example: Hover over chart shows once the number of persons and when I move the mouse only the energy.
My assumption is that at this point no value is entered. Is this due to Apex-charts itself? A workaround would be to increase the person list to the number of enregie values and play the points but I would like to avoid that :(
Translated with www.DeepL.com/Translator (free version)

Sorry for the late reply here with X-Values needs to meatch in each series.
This is a limitiation of apexcharts.


Keys in headers are not replaced

I placed a key (e.g., ${Title} ) both in the body of the document an in the header. The instance in the body of the document was replaced, but the instance of the header was not.

You are right, there was a bug because the program wasn't getting the header/footer paragraphs. It's now solved in the version 0.4.1, by including the following code:
for section in doc.sections:
    for paragraph in section.header.paragraphs:
        paragraphs.append(paragraph)
    for paragraph in section.footer.paragraphs:
        paragraphs.append(paragraph)

Can you check if it's ok? If so, we can close this, thanks!

Fixed in version 0.4.1


About the packet string truncation in pre-training.

Hello, I want to pre-train the model from scratch. In the first step of "Repeoduce ET-BERT",in "data_preprocess/main.py",I haven't found how to split pcap file or how to generate BURST in this process.The code directly calls the preprocess function to process the PCAP files and then generates the corpus txt files.
By further reading the code,I found that the "pretrain_dataset_generation" function in "datasets/dataset_generation.py" should be the pre-training data processing process, which consists of pcap files processing and split, BURST feature generation, etc. However, in "get_burst_feature" function called in the BURST generation part, I did not see how to remove the source IP and target IP of the packets and the TCP source and target port, which should be different from the paper described in 4.1.2.
On the other hand,line 64 of "data_preprocess/main.py" removes the Ethernet and IP headers, but there seems it doesn't remove the tcp's source and destination port numbers. So what I want to know is,How do I construct pre-training data for any given pcap files.
Thank you.

Thanks for your interest in our work.
The data_preprocess directory is in fact what builds the vocabulary table, and I have updated the directory name.
The dataset_generation.py is the key code for data preprocessing, regarding the removal of fields such as IP and port on lines 151, 307 and 313. Also in the "data_preprocess/main.py" you mentioned, the corresponding processing is done and the removal content contains the IP and port information. The truncation location in our experiment is 76, which already contains MAC, IP, and TCP port information.
For the processing of arbitrary PCAP files, I will subsequently update a README file to introduce it independently, as the process is not shown fluently in the code.
Originally posted by @linwhitehat in https://github.com/linwhitehat/ET-BERT/issues/7#issuecomment-1090410579
I have read your updated code, and I still have some doubts:
1.In "vocab_process/main.py", line 64, the code is 'words.decode()[68:]'. Should it be 'words.decode()[76:]'? because the first 34 bytes of one packet do not contain the source and destination port numbers of TCP.
2.In the pre-training data processing stage, in line 111 of "data_process/dataset_generation.py/get_burst_feature()", the code is 'Packet_string = data.decode()[: 2 * payload_len]'. Should it be 'Packet_string = data.decode()[76: 76+2 * payload_len]'?Because the first 38 bytes need to be truncated.
Thank you.

Hello, I want to pre-train the model from scratch. In the first step of "Repeoduce ET-BERT",in "data_preprocess/main.py",I haven't found how to split pcap file or how to generate BURST in this process.The code directly calls the preprocess function to process the PCAP files and then generates the corpus txt files.
By further reading the code,I found that the "pretrain_dataset_generation" function in "datasets/dataset_generation.py" should be the pre-training data processing process, which consists of pcap files processing and split, BURST feature generation, etc. However, in "get_burst_feature" function called in the BURST generation part, I did not see how to remove the source IP and target IP of the packets and the TCP source and target port, which should be different from the paper described in 4.1.2.
On the other hand,line 64 of "data_preprocess/main.py" removes the Ethernet and IP headers, but there seems it doesn't remove the tcp's source and destination port numbers. So what I want to know is,How do I construct pre-training data for any given pcap files.
Thank you.

Thanks for your interest in our work. The data_preprocess directory is in fact what builds the vocabulary table, and I have updated the directory name. The dataset_generation.py is the key code for data preprocessing, regarding the removal of fields such as IP and port on lines 151, 307 and 313. Also in the "data_preprocess/main.py" you mentioned, the corresponding processing is done and the removal content contains the IP and port information. The truncation location in our experiment is 76, which already contains MAC, IP, and TCP port information.
For the processing of arbitrary PCAP files, I will subsequently update a README file to introduce it independently, as the process is not shown fluently in the code.
Originally posted by @linwhitehat in #7 (comment)
I have read your updated code, and I still have some doubts:
1.In "vocab_process/main.py", line 64, the code is 'words.decode()[68:]'. Should it be 'words.decode()[76:]'? because the first 34 bytes of one packet do not contain the source and destination port numbers of TCP.
2.In the pre-training data processing stage, in line 111 of "data_process/dataset_generation.py/get_burst_feature()", the code is 'Packet_string = data.decode()[: 2 * payload_len]'. Should it be 'Packet_string = data.decode()[76: 76+2 * payload_len]'?Because the first 38 bytes need to be truncated.
Thank you.

Thank you for your feedback on the problem in the code.

I have fixed the code accordingly.
The pre-training phase is self-supervised learning and the data used is unlabeled. Then we care more about the truncated processing of data in the downstream supervised learning phase.

Ok, thanks for your reply.
These 38 bytes are skipped when building the BPE, the same goes for the fine-tune's data preprocessing. But these bytes are not skipped in the pre-training phase. So I'm a little confused, maybe I missed something.
Thank you.

Ok, thanks for your reply. These 38 bytes are skipped when building the BPE, the same goes for the fine-tune's data preprocessing. But these bytes are not skipped in the pre-training phase. So I'm a little confused, maybe I missed something.
Thank you.

Thanks for your question. The same truncation can be done in the pre-training phase, but I think they do not have a negative impact and thus the choice can be freer. I hope you can feedback here when the test found problems, and I will verify and fix the error.

I also have same doubt about the code 'Packet_string = data.decode()[: 2 * payload_len]' in get_burst_feature(). It seems that the payload_len is set to be 64. why it's not the whole length of the packet? Does the number 64 have some particular meaning here ?

I also have same doubt about the code 'Packet_string = data.decode()[: 2 * payload_len]' in get_burst_feature(). It seems that the payload_len is set to be 64. why it's not the whole length of the packet? Does the number 64 have some particular meaning here ?

Thank you for your question. Since the pre-trained model is very large and does not learn well for longer sequences, we set that length in the hope that the burst input can contain multiple packet contents, which prevents the input data from being concentrated in only a single packet.

Ok, thanks for your reply. These 38 bytes are skipped when building the BPE, the same goes for the fine-tune's data preprocessing. But these bytes are not skipped in the pre-training phase. So I'm a little confused, maybe I missed something.
Thank you.

Thanks for your question. The same truncation can be done in the pre-training phase, but I think they do not have a negative impact and thus the choice can be freer. I hope you can feedback here when the test found problems, and I will verify and fix the error.

你好，我有点没明白这里，经过了finetuning的三个data_process的步骤后生成的npy文件中的payload，在后续的任务中还会被进一步截断吗？还是npy文件中的就是模型最终的学习内容
Hello,I  am also confused about this.Does the data in npy files generated by the data_process/main.py still will be truncated?Or it already is the real thing that model study from?

Ok, thanks for your reply. These 38 bytes are skipped when building the BPE, the same goes for the fine-tune's data preprocessing. But these bytes are not skipped in the pre-training phase. So I'm a little confused, maybe I missed something.
Thank you.

Thanks for your question. The same truncation can be done in the pre-training phase, but I think they do not have a negative impact and thus the choice can be freer. I hope you can feedback here when the test found problems, and I will verify and fix the error.

你好，我有点没明白这里，经过了finetuning的三个data_process的步骤后生成的npy文件中的payload，在后续的任务中还会被进一步截断吗？还是npy文件中的就是模型最终的学习内容 Hello,I am also confused about this.Does the data in npy files generated by the data_process/main.py still will be truncated?Or it already is the real thing that model study from?

会的，如果报文过长会被截断。


Upgrade ffmpeg to v5 for arm64

As mentioned in the Dockerfile, the issue https://github.com/linuxserver/docker-ffmpeg/issues/19 seems resolved, so should be possible to use the latest verison.

To be clear, the latest ffmpeg bundled in that repo is still 4.4.x, not 5.x, but I can update ETV's Dockerfiles to use latest again.

ah, gotcha, I was hoping they'll have the v5 there...

This should be resolved when #1052 is completed.

@theboxer please test the latest develop-arm64 tag, it should now have ffmpeg 5.1.2.

@jasongdove sorry for the delay, I didn't get to it until now. Installed the develop-arm64 and seems to work fine and has the ffmpeg 5.1.2
Thank you.


Helping the user bring the right things based on the weather

If it's raining, bring an umbrella
If it's sunny, bring suncream
If it's cold, bring a coat

Interested!

Interested ⛳

Interested!

Hey, @Chukwuemeka-Mba @VaibhaveS @adizcode let me know how you folks want to collaborate. I personally believe the issue is small and if two of us work on this will be easier to work on and the flow will also be pretty smooth. I have no issues working together, let me know how you plan out to do the task.
As of now I am creating a branch to work on and writing the basic logic 😁

Hey @adizcode @VaibhaveS @Chukwuemeka-Mba I have worked on the issue and it works fine on clear and cloudy, please add other cases with SVGs or graphics to make it scalable. The component is properly functional. Currently, it lacks use cases and CSS which may result in some errors. You may see the forked repo I have given access to you all to work on it. The current changes are made on the issue-4 branch in my repo. In case of any issue let me know.
You may refer to this for more use cases: https://openweathermap.org/weather-conditions

@Aniket762 I've pushed the changes to your fork. Please take a look and open a PR as you see fit.
I'll add Lottie as well once I'm done on some other issues.


Multiple properties mapping

Hi, I have a question about the possibility to map multiple fields in one.
I've read previously opened questions and surprisingly didn't find a similar one
(however I still could just miss it)
What do I looking for is functionality like in AutoMapper, where you can define your destination field to be mapped from multiple source fields, like in the example below.
public record User(string FirstName, string LastName);
public record UserDto(string FullName);

UserDto Map(User source)
{
    FullName => $"{source.FirstName} {source.LastName}";
}

Is there any functionality like that present in Mapperly?
Thank you!

For this you can either add a computed get only property to User, or you can use after map:
Get only property:
public record User(string FirstName, string LastName)
{
    public string FullName => $"{source.FirstName} {source.LastName}";
}
public record UserDto(string FullName);

[Mapper]
public static partial MyMapper
{
    public static partial MapToDto(this User user);
}

After map:
public record User(string FirstName, string LastName);
public record UserDto(string FullName);

[Mapper]
public static partial MyMapper
{
    public static partial UserDto MapToDto(this User user)
    {
        var dto = user.MapToDtoInternal();
        dto.FullName = $"{user.FirstName} {user.LastName}";
        return dto;
    }

    private static partial UserDto MapToDtoInternal(this User user);
}


modules/setting probably needs refactoring

Gitea version (or commit ref): 0b718e0d7b0fe4eb11121700df6c476e0f6b7e6a
Description
The setting module has the following problems and bad code smells:

[ ] improper english in some comments and names (i.e. // enumerates all the policy repository creating, IsRunUserMatchCurrentUser)
[ ] Very long functions (NewContext is currently 399! lines long).
[ ] Non-idiomatic names that don't reflect what the code's doing (maybe they reflect what the code was doing earlier or what it was supposed to be doing)? Those include - Functions Named NewXXX which don't return any new instances of anything, setting global variables instead. Names like ConfigureXXX, SetXXX or SetupXXX would be more appropriate.
[ ] Some structs declared as type literals should be declared with normal type Declarations to avoid repeating the code (see Repository.Editor)
[ ] Some code is mindlessly copypasted without even being looket at. The message Error saving generated JWT Secret to custom config: %v", is repeated twice (and for a third time elsewhere, there might be more), and it appears in places completely not related to the saving of the jwt secret. The problem is the lack of a "saveCustomConfig" function and very similar code sprinkled through the module and other parts of the codebase (cmd/web.go is a good example).
[ ] Some variables and the code that sets them aren't close, particularly those set by NewContext (because the function is huge, breaking it down into smaller functions and breaking the big var block into many smaller ones, declared close to the related functions would probably help).
[ ] This is a bit of personal taste, but I believe that the ordering of the functions should be a bit different. Go is not c, and declaring functions (like DateLang, getAppPath etc.) before their usage makes the code less clear. For someone reading the file top to bottom, it's more useful to see the functions used in context and then declared instead of doing it the other way around.

I'm willing to work on this in the next few weeks if the maintainers are ok with that. I'd like to get feedback on which points to fix and which ones to leave as they are.

@devil418 Please try that.

I would start by breaking out all structs to it's own file (like modules/setting/ssh.go) with their own Parse function that gets called.
Kind of like this:
// ssh.go
func (s *SSH) Parse(section *ini.Section) error { ... }

// setting.go
// func NewContext...
ssh := SSH{}
if err := ssh.Parse(); err != nil { ... }

How up to date is this issue?
Can it be closed by now? The package has changed drastically…


Custom Pagination

As per documentation https://select2.org/programmatic-control/add-select-clear-items, I am unable to append option while scrolling into the dropdown list.
I want to implement custom pagination with remote data but unable to add options.
Please help me to implement.

This appears to be more of a usage question than a bug report or common feature request.  As we continue to keep the Select2 issue tracker geared towards these two areas, bug reports and common feature requests, we are redirecting usage questions to other communities such as the mailing list, IRC, or Stack Overflow.


Status (story) Problem

I have a chatbot and some messages sent to the recipients are going to the recipient and story (status), there are a lot of status in the story.
This started after this last whatsapp update.
Has anyone ever experienced this?

@gitanderson did you solved it ?


Add typings.

This PR adds complete TypeScript type signatures for vega-util, superseding #7.
The visitArray function caused an issue as the optional filter argument comes before the required visitor. An optional argument before a required one is invalid TypeScript. We should consider switching the order in the next major release. In the interim, the visitArray typings are very generic.
@domoritz: I've added you as a reviewer to double check the type signatures, catch any errors, or make the signatures more precise. I haven't tested these typings beyond validating that VSCode did not report any errors for this file.
/cc @pelotom.

This looks good to me, but I'm not a TypeScripter. Also, why is the devDependency on typescript needed in package.json?

Also, why is the devDependency on typescript needed in package.json?

It helps with validating the typings. You can run yarn tsc to make sure that the typings don't have syntax or type errors.

I would prefer to remove the devDependency as there are no formal test cases included that use typescript. Folks who want to validate the bindings can either install it on demand or may well already have it globally installed. Sound reasonable?

there are no formal test cases included that use typescript

This seems like something that should be remedied, since downstream people are depending on these bindings to work. Why not add yarn tsc to the set of scripts run by CI?

I'm happy to remove the dependency or add CI tests. For now, I added Travis but I let @jheer decide.

Thanks! Now I'm satisfied :)


Helm: labels and annotations

Description
This PR adds the possibility to specify labels for the Prometheus Operator resources.
#1835
How Has This Been Tested?

[x] Locally with KinD

/rebase test=true

/rebase test=true

/test

/merge


I can't emit MongoDB result objects server side

I noticed that from server side I can't publish or emit arrays. I think that this is a strong limitation.

Are you using the functions correctly?
To emit (event 'arr'):
socket.emit('arr', ['This', 'is', 'an', 'array', 123, 456])

To publish (the 'arr' channel):
scServer.exchange.publish('arr', ['This', 'is', 'an', 'array', 123, 456])

I just tested as well and it worked great

Have you tried array of objects and/or objects that contains arrays of objects?

@willypuzzle What are you emitting exactly?

@jondubois I would emit mongoose find results of complex objects stored in MongoDB database.

@willypuzzle How is it not working? Do you receive an events on the other side?
Do you use socket.on('eventName', function (data) {/*...*/})?

Or you get nothing at all?

Are you using a reserved event name? https://github.com/SocketCluster/socketcluster-client/blob/416982105e86494e4f6b12f0244b67b702618588/lib/scsocket.js#L56-L71

@jondubois I don't receive event at all but If I "Objectify" the arrays all works fine. I'm using socketcluster-server 5.1.0.

I upgraded to the latest version of server (5.1.1) but the problem persists

Can you paste a simplified version of your code so that I can reproduce the problem it on my machine?

Also, did you add any custom SC middleware? Check that you're not blocking anything inside your middleware.

I have to correct myself, the event is emitted by the array I receive in client side is always empty.
This is an example:
var mongoose = require('mongoose');
var Promise = require('promise');

mongoose.Promise = Promise;

const modelName = 'chat';

var schema = new mongoose.Schema({
    attributes: {
        type: [mongoose.Schema.Types.Mixed],
        default: []
    },
    touched_by_an_operator: {
        type: Boolean,
        default: false
    },
    operators: {
        type: [mongoose.Schema.Types.Mixed],
        default: []
    },
    users: {
        type: [mongoose.Schema.Types.Mixed],
        default: []
    },
    ended: {
        type: mongoose.Schema.Types.Mixed,
        default: {
            value: false,
            reason: null
        }
    },
    created_at: Date,
    updated_at: Date
});

var Model = mongoose.model(modelName, schema);

/*You have to retrieve a correct socket instance that is a instance of SCSocket (server, worker)*/

socket.on('chat_list_request', function (data, res) {
    Model.find({ 'ended.value': false, touched_by_an_operator: false }).exec().then(function (chat) {
	socket.emit("chat_list", chats);
	res(null, 'Success');
    });
});

@willypuzzle Are you sure you are emitting a raw object and not a function/class? Maybe Mongo returns a special Model instance (not a raw JSON-compatible object)?

I discovered that the broadcast system (scServer.exchange.publish()) fails to convert ObjectId (_id of MongoDB) into string when build the json to send.
Maybe the system is not able to deal with Date Object or ObjectId when emit the event.
This because the objects got from MongoDb are not all string but there are Javascript Object too.
Maybe this is the reason I can't put a MongoDB object directly in the emit stream.

I have found a workaround if I wrap the Mongodb results with
JSON.parse(JSON.stringify(results))
it works.

I have found a workaround if I wrap the Mongodb results with
JSON.parse(JSON.stringify(results))
it works.

@willypuzzle That's strange because SC essentially just calls JSON.stringify on the object, sends it over the wire and then passes the string to JSON.parse so this would use up extra CPU for no good reason.
Can you reproduce the issue without using MongoDB? Can you create a dummy hard-coded object or array that doesn't work?

I can't reproduce it without MongoDB because the issue was on _id field. It fails in ObjectId objects. When I have a few of time I will post the complete stack error.

@willypuzzle Ok, I made a change to the sc-formatter module which should make SC better at dealing with complex objects such as Mongoose model instances... Make sure you npm update the sc-formatter dependency to the latest version. You may also want to update the socketcluster-client to v 5.0.13.

Now the situation is better, the result objects/array comes to the client side but the ObjectId fields are not correct. Instead of the normal value e.g. "57f2126f3f45ed18d9942ad4" it returns values as "0" or "1". The problem doesn't persist if I transform ObjectId (for example _id field) into string before sending.
I think the issue is in the conversion of ObjectId field into string before sending.

@willypuzzle If you call JSON.stringify on the MongoDB model, how does the ObjectId get stringified? Does it also become "1" or "0"?

@jondubois If I call JSON.stringify directly on the model results the ObjectId fields are correct string with the correct value e.g. "57f2126f3f45ed18d9942ad4"

@willypuzzle I tested SC with the latest sc-formatter and sent a mongoose model to a client socket (I tried both publish and emit) and the _id field (of type ObjectID) got stringified correctly (in the format "546fa534f65f5d0200855501"). That's strange. Are you sure you have the latest sc-formatter v2.0.2 dependency.
I cannot reproduce this issue. Do you have any SC middleware defined which might be messing with the _id field in the output?

@jondubois I had tried to catch the error in the middleware but I haven't found anything. However I'll check very carefully and I will let you know.

@jondubois I have tested in other parts of my code and, as you said, it works correctly. So I think it is a issue of my code. I'm sorry for the wasting of time.

@willypuzzle No time was wasted. I made a small improvement to sc-formatter as a result of this discussion so it was useful... Even if it ends up not being directly related.
Sometimes it's hard to tell where the root of problem is... Feel free to reopen this issue later if it turns out to be SC-related.

Try to call .lean() before call .exec() to get json object. Otherwise you get a Mongoose Object which can call some special function.
socket.on('chat_list_request', function (data, res) {
    Model.find({ 'ended.value': false, touched_by_an_operator: false }).lean().exec().then(function (chats) {
    socket.emit("chat_list", chats);
    res(null, 'Success');
    });
});


fix: chromium manifest issue

Fixes issue: https://github.com/paradigmxyz/rivet/issues/105
I'm not sure this is the right way to solve but I tried and it's working.

This fixed it for me too, thanks.


Multiplicity

How 0 or 1 is different from 0 or 1, (non-greedy) ?

Non-greedy means that if they are multiple ways it can match, it will consume fewer characters rather than more characters. This usually only makes a difference when you're using captures, because otherwise you don't care how it matches.
Example (where +? is the non-greedy version of +):

With input aaab

(a+)(.+) will return the groups aaa and b

The first + "greedily ate" all the a

(a+?)(.+) will return the groups a and aab

The first + only ate one a


Add packagePrefix to SourceItem

A source set in Intellij has a property called packagePrefix so that if the source root is not located at root of package namespace it is know which package it belongs to.
For example:
for file src/test/Test.scala with content
package test
class Test

If the source set directory is /src/test, we should set package prefix to test, otherwise Intellij would think that test.Test class is actually _root_.Test.
Related PRs for integration:
https://github.com/scalacenter/bloop/pull/1183
https://github.com/scalameta/metals/pull/1470
https://github.com/JetBrains/intellij-scala/pull/503

Thanks, looks good! Can you also add it to the specification and amend the generators?

Thanks, looks good! Can you also add it to the specification and amend the generators?

I added the comment in specification.md, also updated the generators.
Would you be able to release this so I can proceed with other PRs?

Thanks for the contribution! I don't fully understand the motivation of this change.

If the source set directory is /src/test, we should set package prefix to test, otherwise Intellij would think that test.Test class is actually root.Test.

Why is the source set directory /src/test and why does IntelliJ think that? The root should be /src and if it's /src/test then IntelliJ shouldn't resolve that symbol to _root_. Looks like an issue that should be fixed on the IntelliJ side, either in the IntelliJ's project configuration or the presentation compiler.
I think we should keep the fields in SourceItem to a minimum and I'm concerned of adding a new field just to make the IntelliJ integration easier. Have you considered other ways of fixing this issue?

Thanks for the contribution! I don't fully understand the motivation of this change.

If the source set directory is /src/test, we should set package prefix to test, otherwise Intellij would think that test.Test class is actually root.Test.

Why is the source set directory /src/test and why does IntelliJ think that? The root should be /src and if it's /src/test then IntelliJ shouldn't resolve that symbol to _root_. Looks like an issue that should be fixed on the IntelliJ side, either in the IntelliJ's project configuration or the presentation compiler.
I think we should keep the fields in SourceItem to a minimum and I'm concerned of adding a new language-specific field just to make the IntelliJ integration easier. Have you considered other ways of fixing this issue?

This is due to pants model, that we can put BUILD files in any package to customize the build (e.g. dependencies). For example we can have following files:
src/main/bsp/BUILD
src/main/bsp/A.scala (with package 'bsp')
src/main/bsp/foo/BUILD
src/main/bsp/foo/B.scala (with package 'bsp.foo'
@jvican Thanks for looking at this!
Generally, if there is a build file on some level, the parent directory is mapped to a module and to a source root of this module. For such inner modules, that have mismatch of package structure and source root, the package prefix is the way to say how it should be interpreted.
If we want to support pants through bsp, I think this kind of concept will be required. It should be enough to know the package prefix per BuildTarget (not source item) but still. Same problem would appear for bazel integration as well as other tools that use similar concept.
Do you see some other reasonable place to put it?

Thanks for the detailed response.

If we want to support pants through bsp, I think this kind of concept will be required. It should be enough to know the package prefix per BuildTarget (not source item) but still.

I think adding this information to the build target (scala and java build targets) instead of every source item is what makes the most sense. Then, build tools such as pants and bazel can export the right package prefix based on the source roots of the build target.

I think adding this information to the build target (scala and java build targets) instead of every source item is what makes the most sense.

I'm not sure. Wouldn't the prefix depend on the individual source root? Given that we can have sources in arbitrary places for any target.
But also, I realized it shouldn't really be part of SourceItem as it's a JVM-specific feature. So if we need it on every source item, it could be a kind of extended JvmSourceItem? OR some other way of communicating this information?

I'm not sure. Wouldn't the prefix depend on the individual source root? Given that we can have sources in arbitrary places for any target.

If I've understood correctly, a package only has one individual source root so this should be fine.

If I've understood correctly, a package only has one individual source root so this should be fine.

A package may have multiple source roots. Perhaps this is not relevant to this use case, but we should consider it.

If I've understood correctly, a package only has one individual source root so this should be fine.

A package may have multiple source roots. Perhaps this is not relevant to this use case, but we should consider it.

Indeed, we can have individual files with different package prefix in the same directory with pants. So to respect the model, it should be at the level of SourceItem, perhaps handled with dataKind and data field like in BuildTarget?
On the other hand, this is not possible to be represented in Intellij so I don't personally worry about this now, at some point during the mapping it will still be required to just pick one package prefix per directory.
For now I am amending PRs with the version where I put this into ScalaBuildTarget. If we should go with SourceItem and it is acceptable to make it extensible in the way I mentioned, let me know I will update again.

@jastice @jvican Do you think we should go with just ScalaBuildTarget or extend SourceItem or maybe something else?

I would like to keep the source item abstraction as simple as possible and would like to avoid adding repeated, language-specific information to it that bloats up the abstraction, so I prefer adding this information to the scala build target.
The case where a target has multiple source roots can be implemented by adding a list of source roots to a target and then having the tool consuming the information mapping every source to a source root based on the prefix. This is what makes the most sense to me. Most of the time, a build target only has one source root but when it does have more the tool consuming this information should be in charge of doing the work of mapping sources and source roots.

I would like to keep the source item abstraction as simple as possible and would like to avoid adding repeated, language-specific information to it that bloats up the abstraction, so I prefer adding this information to the scala build target.
The case where a target has multiple source roots can be implemented by adding a list of source roots to a target and then having the tool consuming the information mapping every source to a source root based on the prefix. This is what makes the most sense to me. Most of the time, a build target only has one source root but when it does have more the tool consuming this information should be in charge of doing the work of mapping sources and source roots.

Ok, cool! In that case, do you think we can proceed with merging these and releasing bsp so I can go further with the remaining 3 PRs?

I would like to keep the source item abstraction as simple as possible and would like to avoid adding repeated, language-specific information to it that bloats up the abstraction, so I prefer adding this information to the scala build target.
The case where a target has multiple source roots can be implemented by adding a list of source roots to a target and then having the tool consuming the information mapping every source to a source root based on the prefix. This is what makes the most sense to me. Most of the time, a build target only has one source root but when it does have more the tool consuming this information should be in charge of doing the work of mapping sources and source roots.

I agree, this idea sounds very practical. Can you sketch how this would look? a kind of mapping
sourceRoot -> packagePrefix?

I agree with previous comments that it's undesirable to put this new field under SourceItem. I find it unsatisfying to add this to ScalaBuildTarget however since this is a "buildTargets/sources" related feature.
Would it make sense to update SourcesItem instead?
export interface SourcesItem {
  target: BuildTargetIdentifer;
  /** The text documents or and directories that belong to this build target. */
  sources: SourceItem[];
+  /** The root directories from where source files should be relativized.
+   *
+   * Example: ["file://Users/name/dev/metals/src/main/scala"]
+   */
+  roots?: Uri[];
}

The contract would be that when relativizing a source file, the first root who owns that file would be used as a parent.
The BSP spec currently doesn't talk about "packages", only URIs. It would be the job of a client like IntelliJ to infer the package name by relativizing a given source item to the root URI.

I took a stab at implementing this change in Metals and the following logic seems to be a sufficient approximation for how Pants detects "source roots"
  def approximateSourceRoot(dir: Path): Option[Path] = {
    val pattern = FileSystems.getDefault.getPathMatcher(
      "glob:**/{main,test,tests,src,3rdparty,3rd_party,thirdparty,third_party}/{resources,scala,java,jvm,proto,python,protobuf,py}"
    )
    def loop(d: Path): Option[Path] = {
      if (pattern.matches(d)) Some(d)
      else {
        Option(d.getParent()) match {
          case Some(parent) => loop(parent)
          case None => None
        }
      }
    }
    loop(dir)
  }

approximateSourceRoot(
  Paths.get("foobar/src/main/scala/com/foobar/").toAbsolutePath()
)
res0: Option[Path] = Some(/Users/lgeirsson/dev/metals/foobar/src/main/scala)

This method attempts to reproduce the Python logic here
https://github.com/pantsbuild/pants/blob/cf26b534d562745b6e3add9a6b5185bd6fa3e7ab/src/python/pants/source/source_root.py#L140
Down the road, this method should not be necessary once this issue https://github.com/pantsbuild/pants/issues/9266 is fixed in upstream Pants.

Would it make sense to update SourcesItem instead?

Yes, I like this solution even better.

Would it make sense to update SourcesItem instead?
I agree, I like this solution most

I'll work on getting a release out now


Don't generate tables in the build.rs (do so in advance).

regex is a pretty slow dependency to build (well, regex-syntax is anyway), and it's pretty unnecessary for this crate to generate the table each time it builds.
I did this by just moving your build.rs to its own crate, which dumps the table to stdout (because it's easy, flexible, but mostly harder to mess up than taking a file argument. Although if you'd rather I do that, I can).
For clarity, cargo run -p print-table > src/case_folding_data.rs can update the pre-generated table.
Oh, also I updated you to unicode 13.0.0. I did it just because seems like good manners to do so when I'm updating the tables anyway, but I can undo it if you'd prefer.

Ah, there's already a PR for unicode version bump in #14. I'll drop that commit.

r? @SimonSapin (gentle nudge)

Found this when investigating compile time for RustPython. Looks like SimonSapin has transferred the project to unicode-rs. @Manishearth, does this change seem reasonable to you?

@Manishearth, thanks for the suggestion. I can't edit this pr, so  created #21 with a workflow. Verified it by manually messing up the file on my own branch: https://github.com/crazymerlyn/rust-caseless/actions/runs/12504550179


Show more info in the livecheck command

Verification

[X] This issue's title and/or description do not reference a single formula e.g. brew install wget. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.

Provide a detailed description of the proposed feature
In the output of the livecheck command show:

method
urls or any other info used to do the checks

What is the motivation for the feature?
I used the livecheck command for the first time just now to debug a new cask (below) and found it difficult to understand how to get useful information from the command:
❯ brew livecheck script-kit
script-kit: 1.54.53 ==> 1.59.1

❯ brew livecheck script-kit --verbose
script-kit (guessed): 1.54.53 ==> 1.59.1

❯ brew livecheck script-kit --json
[
  {
    "cask": "script-kit",
    "version": {
      "current": "1.54.53",
      "latest": "1.59.1",
      "outdated": true,
      "newer_than_upstream": false
    }
  }
]

❯ brew livecheck script-kit --json --verbose
[
  {
    "cask": "script-kit",
    "version": {
      "current": "1.54.53",
      "latest": "1.59.1",
      "outdated": true,
      "newer_than_upstream": false
    },
    "meta": {
      "livecheckable": false,
      "url": {
        "original": "https://github.com/johnlindquist/kitapp/releases/download/v1.54.53/Kit-macOS-1.54.53-x64.dmg",
        "processed": "https://github.com/johnlindquist/kitapp.git"
      },
      "strategy": "Git",
      "strategies": [
        "Git"
      ]
    }
  }
]

❯ brew livecheck script-kit --debug
/usr/local/Homebrew/Library/Homebrew/brew.rb (Cask::CaskLoader::FromDefaultTapPathLoader): loading script-kit

Cask:             script-kit
Livecheckable?:
How will the feature be relevant to at least 90% of Homebrew users?
Developer feature
What alternatives to the feature have been considered?
Not sure

CC @samford @nandahkrishna @SMillerDev for thoughts.

Have you tried with --verbose --debug since you seem to be after verbose debug information?

Assuming that "method" refers to which livecheck strategy applies, it sounds like some of the information you're looking for is provided by brew livecheck --debug. If you want to programmatically work with the same information, brew livecheck --json --verbose basically provides the same information you would find in the debug output. [For what it's worth, the only thing that --verbose changes about a --debug run at the moment is that it prints the version objects instead of only the matched version text.]
To answer your other questions:

"where these versions are coming from": The Git strategy matches versions from Git tags (using git ls-remote --tags underneath). By default, the strategy matches anything after any leading non-digit text in the tag and the strategy filters out matches that contain certain unstable keywords (this filtering behavior doesn't apply if a livecheck block is used). [The "Livecheckable?" output is an antiquated/legacy way of indicating that the cask doesn't contain a livecheck block.]
"which are guesses": The "guessed" text from the normal output indicates that the formula/cask doesn't contain a livecheck block (it's equivalent to Livecheckable?: No in the debug output). In this scenario, livecheck goes through "checkable" URLs in the cask (url, homepage), identifies which strategies apply, and uses the Git strategy with its default behavior. We only add a livecheck block if no checks apply to any URLs by default, the check creates incorrect matches, the default check doesn't correctly identify the newest version, etc. Sometimes the default check works perfectly fine for a given formula/cask, so "guessed" is really only meant to indicate whether a livecheck block is present (not so much a confidence level).
"which are tags": With the Git strategy, all the matched versions are coming from tags.
"which are github releases": The Git strategy can't tell which versions are releases. Based on the output above, it looks like this cask URL is a GitHub release asset, so you should be using GithubLatest instead of Git. That strategy checks for the "latest" release on GitHub and returns the version (though sometimes the default regex isn't sufficient/appropriate and you need to specify one in the livecheck block).

You can find general information on livecheck in the related documentation, more on the strategies in the related technical documentation, and you can also dig into the strategy code to understand how they function.
At least from my perspective, the questions that you seem to have about livecheck and its behavior are best handled in documentation rather than modifications to livecheck's output. I'm open to ideas but I can't immediately think of any changes that would answer your previous questions within livecheck's output.


Triggers.Add() Throws Error in Build 56462

For both lines using Triggers.Add() in C#, I get this error:
Microsoft.Win32.TaskScheduler.WeeklyTrigger' does not contain a constructor that takes '0' arguments
DateTime dt = Common.formatTimeForLoading(days_times.get(day));
dt = dt.AddMinutes(Convert.ToDouble(offset_delay));
Microsoft.Win32.TaskScheduler.DaysOfTheWeek theday = (Microsoft.Win32.TaskScheduler.DaysOfTheWeek)Enum.Parse(typeof(Microsoft.Win32.TaskScheduler.DaysOfTheWeek), char.ToUpper(day[0]) + day.Substring(1));
td.Triggers.Add(new Microsoft.Win32.TaskScheduler.WeeklyTrigger { StartBoundary = dt, DaysOfWeek = theday });
td_bg.Triggers.Add(new Microsoft.Win32.TaskScheduler.WeeklyTrigger { StartBoundary = dt, DaysOfWeek = theday });

These lines did not throw an error with build 54519.
Originally posted: 2010-09-10T08:15:46

I just tested this code (as close as I could make it at least) and did not have an error when compiling or executing. Please try to clean and recompile and see if the error persists. The constructor and arguments did not change between the two versions.
Originally posted: 2010-09-10T15:17:48

I cleared out all the built files and attempted to rebuild. Same error.
I removed the dll reference from the project and re-added it, then attempted to rebuild.  Same error.
Originally posted: 2010-09-14T12:42:01


Unable to get plugin to work on TeamCity free version

Hello,
I've just downloaded TeamCity for Mac OSX and am unable to get your plugin to work.  I've got the plugin installed (TC lists it as one of the installed plugins) but the "Web populated select" option in the Spec window is not showing up.  Let me know if you need any more information.

Hello, @DVGeoffrey!
I've just downloaded latest 9.1.1 version of TeamCity and tested it on my mac - everything works like a charm.
You have to click on Edit button next to Spec label. In the appeared window there should be Type select box, in which you should be able to select Web populated select.
Unfortunately, right now I'm going to vacation without my notebook. In case of any question you can ask me here and I'll try to answer them, but it could come with some delay.
Also if it's really bug, the expected date of it to be fixed also could be postponed by two weeks.

I've definitely done these steps and have had no luck.  However, I've moved on to installing your plugin on our development TC and am seeing it work!  I'm going to close this and chalk it up to me probably misconfiguring something.  Thanks for being quick to respond and enjoy your vacation.


Disable multiline expression rule

Is there a way to disable this rule?

I tried this, but it didn't work.
.editorconfig
ktlint_args=--disabled_rules=multiline-expression-wrapping
disabled_rules=multiline-expression-wrapping

Please consult ktlint documentation: https://pinterest.github.io/ktlint/latest/faq/#how-do-i-enable-or-disable-a-rule

Thanks for the quick response and the documentation link @paul-dingemans!
I updated the rule according to the documentation:
ktlint_standard_multiline-expression-wrapping = disabled

But now all rules seem to be disabled.
Before applying the rule:

After applying the rule: (no visual warnings)

What is the content of your ktlint-plugin.xml file (located in idea folder)? Please also check wheter the Problem Window displays anything like below:

It seems that is required to disable this rule as well:
ktlint_standard_string-template-indent

This is the ktlint-plugin.xml:

By the way, I'm missing the configuration to show lint errors as a visual warning (instead of red errors), it is possible to config this into the XML file?

It seems that is required to disable this rule as well:
ktlint_standard_string-template-indent

Yes indeed. This is shown in log and some popup-notification.

By the way, I'm missing the configuration to show lint errors as a visual warning (instead of red errors), it is possible to config this into the XML file?

No, but this is something that will be addressed in #414


Fails to launch on fresh install Windows 10

Most recent version (Sqlectron-win32-x64.zip version 1.2.0) crashes on trying to start it up. There was no visible error, it just wouldn't start after being installed. I managed to find this crash folder (zipped & attached here).
Sqlectron Crashes.zip

I have just tested on Windows 8 and it is working. I can take a look on that using Windows 10 only after 01/04. When I get back to my place where there is a much better internet to download a VM with Windows 10. :sob:
By the way, have you tried running it with Windows 8 compatibility? It might work. :pray:

Nice suggestion on compatibility mode, I should've tried that. I just tried it though and I was hopeful but alas it didn't change the behavior :(

I guess was a problem during the build for windows. I have released a new version  https://github.com/sqlectron/sqlectron-gui/releases/tag/v1.3.0 and its working on my VM with windows 10. Please @jasonCodesAway, could you check it out?

Closing it now. Let me know if you find any problem.

Sorry I was on back-to-back business trips. It works!!! Thank you :)


Add tests for streaming queries with Jet

We need to test:

cancellation of a streaming query
results delivered with low latency to the client (e.g. a stream of one item per second should not wait until 4096 items are generated before returning anything to the client)
multiple streaming queries over one connection

I assume the above will just work, but we need a test for that.

We also depend on jet 4.4-SNAPSHOT, it should be 4.5


USER STORY: Event Detail Page

As a developer, I will want to change the date format of events and also want to incorporate arrow icons to navigate through the listed events.
Issues:

[x] #294
[ ] #295

Closing since we no longer use user story issues.


Xwayland menus don't open after output changes its coordinates

Xwayland menus don't open after output changes its coordinates. The easiest way to reproduce:

Start sway, open VLC under Xwayland, open a menu, close the menu
Hotplug an output, make sure that this actually changes the output coordinates of the first output (for example, if both were auto added to wlr_output_layout)
Menus don't open anymore in VLC

The same happens in other Xwayland apps which have menus, I've reproduced the bug also with Konsole under Xwayland. Native wayland apps don't have this bug.
A side note: I managed to reproduce this in my compositor as well. There I can adjust output position at runtime, and if I move the output this way(without hotplugging), the same bug happens, even if I send the appropriate configure events (e.g moving the view according to the output layout change). This is the reason that makes me think this is a wlroots bug, not a sway-specific one. Feel free to close this however if you think everything is OK on the wlroots side.

Can you still reproduce?


date-picker only half responsive

Describe the bug
the date-picker goes left and right to accommodate screen width, but it does not always move when it should. More precisely, when the window gets bigger than it was when the page was first loaded, the picker moves alright, but when the window get smaller than when the page was loaded, the picker gets stuck and end up out of the viewport
Steps to reproduce (if applicable)
Steps to reproduce the behavior:

open /ui/search on a browser window taking half the screen width.
select an index
resize the window. When it get wider, the date picker follows, but when it gets thinner than a half screen, the picker get stuck and end up out of the viewport

Expected behavior
The picker should always move to accommodate the window getting resized
Configuration:
Please provide:

Output of quickwit --version: Quickwit 0.5.0-nightly (fe651b7 2023-04-24T10:20:16Z)
The index_config.yaml: not relevant

this seems to come from the query editor being assigned a fixed width on page load


Add support for using OpenMeteo Open Dataset for training/inference

OpenMeteo has started a public dataset (see https://github.com/open-meteo/open-data) that is archiving multiple different providers of weather data forecasts. The archive only goes back to December 2023, so currently probably isn't super helpful for training, but would be interesting to have support as the archive gets larger, and we might want to finetune models or try different initializations for ensembles, like in #85.
Context
Being able to use multiple different NWPs as comparisons/finetuning/initializations could help a lot in seeing how these models compare to other, more physics-based simulations. They also include models that have much higher resolutions than ERA5, or for limited areas, even HRES/ENS. This then relates to being able to use models with adaptive meshes or with a nested high resolution area inside the global model (#78, #3).
Possible Implementation
Similar to #86 except the data is not in Zarr, but a format more suited to site-level forecasts. Would want to get global or local grids of data from it, so would require some reshaping of the data.

Hi @jacobbieker, can I take this one?

Yep! That would be great

Hey @jacobbieker,
I've added code to fetch hourly data from different NWPs via the OpenMeteo API. Any quick thoughts on how we can compare these NWPs effectively? Also, could you check out the code?
import openmeteo_requests  # Importing required libraries
import requests_cache
import pandas as pd
from retry_requests import retry

class WeatherDataFetcher:
    BASE_URL = "https://api.open-meteo.com/v1/"  # Base URL for OpenMeteo API

    def __init__(self):
        # Initialize the WeatherDataFetcher class
        # Setup the Open-Meteo API client with cache and retry on error
        cache_session = requests_cache.CachedSession('.cache', expire_after=3600)
        retry_session = retry(cache_session, retries=5, backoff_factor=0.2)
        self.openmeteo = openmeteo_requests.Client(session=retry_session)

    def fetch_weather_data(self, NWP, params):
        # Fetch weather data from OpenMeteo API for the specified model (NWP) and parameters
        url = f"https://api.open-meteo.com/v1/{NWP}"  # Construct API URL
        try:
            responses = self.openmeteo.weather_api(url, params=params)  # Get weather data
            return responses[0]  # Return the first response (assuming only one location)
        except openmeteo_requests.OpenMeteoRequestsError as e:
            # Handle OpenMeteoRequestsError exceptions
            if 'No data is available for this location' in str(e):
                print(f"Error: No data available for the location for model '{NWP}'.")
            else:
                print(f"Error: {e}")
            return None

    def process_hourly_data(self, response):
        # Process hourly data from OpenMeteo API response
        # Extract hourly data from the response
        hourly = response.Hourly()

        # Extract variables
        hourly_variables = {
            "temperature_2m": hourly.Variables(0).ValuesAsNumpy(),
            "relative_humidity_2m": hourly.Variables(1).ValuesAsNumpy(),
            "precipitation": hourly.Variables(2).ValuesAsNumpy(),
            "cloud_cover": hourly.Variables(3).ValuesAsNumpy()
        }

        # Extract time information
        time_range = pd.date_range(
            start=pd.to_datetime(hourly.Time(), unit="s", utc=True),
            end=pd.to_datetime(hourly.TimeEnd(), unit="s", utc=True),
            freq=pd.Timedelta(seconds=hourly.Interval()),
            inclusive="left"
        )

        # Create a dictionary for hourly data
        hourly_data = {"date": time_range}

        # Assign each variable to the corresponding key in the dictionary
        for variable_name, variable_values in hourly_variables.items():
            hourly_data[variable_name] = variable_values

        # Create a DataFrame from the dictionary
        hourly_dataframe = pd.DataFrame(data=hourly_data)
        return hourly_dataframe

    def print_location_info(self, response):
        # Print location information from OpenMeteo API response
        print(f"Coordinates {response.Latitude()}°N {response.Longitude()}°E")
        print(f"Elevation {response.Elevation()} m asl")
        print(f"Timezone {response.Timezone()} {response.TimezoneAbbreviation()}")
        print(f"Timezone difference to GMT+0 {response.UtcOffsetSeconds()} s")

def main():
    # Main function to demonstrate usage of WeatherDataFetcher class
    fetcher = WeatherDataFetcher()  # Create instance of WeatherDataFetcher

    # Specify parameters for weather data fetch
    NWP = "gfs"  # Choose NWP model
    params = {
        "latitude": 40.77,  # Latitude of the location
        "longitude": -73.91,  # Longitude of the location
        "hourly": ["temperature_2m", "relative_humidity_2m", "precipitation", "cloud_cover"],  # Variables to fetch
        "start_date": "2023-12-21",  # Start date for data
        "end_date": "2024-03-15"  # End date for data
    }

    # Fetch weather data for specified model and parameters
    response = fetcher.fetch_weather_data(NWP, params)

    # Print location information
    fetcher.print_location_info(response)

    # Process and print hourly data
    gfs_dataframe = fetcher.process_hourly_data(response)
    print(gfs_dataframe)

if __name__ == "__main__":
    main()  # Call main function if script is executed directly

Hey @jacobbieker,
I've added code to fetch hourly data from different NWPs via the OpenMeteo API. Any quick thoughts on how we can compare these NWPs effectively? Also, could you check out the code?
import openmeteo_requests  # Importing required libraries
import requests_cache
import pandas as pd
from retry_requests import retry

class WeatherDataFetcher:
    BASE_URL = "https://api.open-meteo.com/v1/"  # Base URL for OpenMeteo API

    def __init__(self):
        # Initialize the WeatherDataFetcher class
        # Setup the Open-Meteo API client with cache and retry on error
        cache_session = requests_cache.CachedSession('.cache', expire_after=3600)
        retry_session = retry(cache_session, retries=5, backoff_factor=0.2)
        self.openmeteo = openmeteo_requests.Client(session=retry_session)

    def fetch_weather_data(self, NWP, params):
        # Fetch weather data from OpenMeteo API for the specified model (NWP) and parameters
        url = f"https://api.open-meteo.com/v1/{NWP}"  # Construct API URL
        try:
            responses = self.openmeteo.weather_api(url, params=params)  # Get weather data
            return responses[0]  # Return the first response (assuming only one location)
        except openmeteo_requests.OpenMeteoRequestsError as e:
            # Handle OpenMeteoRequestsError exceptions
            if 'No data is available for this location' in str(e):
                print(f"Error: No data available for the location for model '{NWP}'.")
            else:
                print(f"Error: {e}")
            return None

    def process_hourly_data(self, response):
        # Process hourly data from OpenMeteo API response
        # Extract hourly data from the response
        hourly = response.Hourly()

        # Extract variables
        hourly_variables = {
            "temperature_2m": hourly.Variables(0).ValuesAsNumpy(),
            "relative_humidity_2m": hourly.Variables(1).ValuesAsNumpy(),
            "precipitation": hourly.Variables(2).ValuesAsNumpy(),
            "cloud_cover": hourly.Variables(3).ValuesAsNumpy()
        }

        # Extract time information
        time_range = pd.date_range(
            start=pd.to_datetime(hourly.Time(), unit="s", utc=True),
            end=pd.to_datetime(hourly.TimeEnd(), unit="s", utc=True),
            freq=pd.Timedelta(seconds=hourly.Interval()),
            inclusive="left"
        )

        # Create a dictionary for hourly data
        hourly_data = {"date": time_range}

        # Assign each variable to the corresponding key in the dictionary
        for variable_name, variable_values in hourly_variables.items():
            hourly_data[variable_name] = variable_values

        # Create a DataFrame from the dictionary
        hourly_dataframe = pd.DataFrame(data=hourly_data)
        return hourly_dataframe

    def print_location_info(self, response):
        # Print location information from OpenMeteo API response
        print(f"Coordinates {response.Latitude()}°N {response.Longitude()}°E")
        print(f"Elevation {response.Elevation()} m asl")
        print(f"Timezone {response.Timezone()} {response.TimezoneAbbreviation()}")
        print(f"Timezone difference to GMT+0 {response.UtcOffsetSeconds()} s")

def main():
    # Main function to demonstrate usage of WeatherDataFetcher class
    fetcher = WeatherDataFetcher()  # Create instance of WeatherDataFetcher

    # Specify parameters for weather data fetch
    NWP = "gfs"  # Choose NWP model
    params = {
        "latitude": 40.77,  # Latitude of the location
        "longitude": -73.91,  # Longitude of the location
        "hourly": ["temperature_2m", "relative_humidity_2m", "precipitation", "cloud_cover"],  # Variables to fetch
        "start_date": "2023-12-21",  # Start date for data
        "end_date": "2024-03-15"  # End date for data
    }

    # Fetch weather data for specified model and parameters
    response = fetcher.fetch_weather_data(NWP, params)

    # Print location information
    fetcher.print_location_info(response)

    # Process and print hourly data
    gfs_dataframe = fetcher.process_hourly_data(response)
    print(gfs_dataframe)

if __name__ == "__main__":
    main()  # Call main function if script is executed directly

Hi,
Overall looks good although a bit hard to review here, could you open a pull request instead to add the code? I can give better feedback that way.


Override keyword should not be required on optional base type members, without implementations.

Bug Report

🔎 Search Terms
override keyword optional

🕗 Version & Regression Information

This is new functionailty released in 4.3.0

⏯ Playground Link

Playground link with relevant code
💻 Code
abstract class BaseType {
    abstract requiredSettings(): object;
    customInit?(): Promise<void>;
}

class Specialization extends BaseType {

    requiredSettings() {
        return {};
    }

    async customInit() {
        // .. do something
    }
}

🙁 Actual behavior
When using the noImplicitOverride flag, an optional base type field, with no implementation, requires the override keyword.  By contrast abstract methods do not require the override keyword.

🙂 Expected behavior
An optional field, with no implementation in the base class should not require the override keyword.

(Crossposting this comment) This is intentional. The mental model to have in place here is, "If I typo this method name, what will happen?"
If you typo the name of an abstract member (assuming you're in a concrete class), you'll get an error, because you failed to implement all abstract members. override isn't necessary to prevent you from making this mistake, so you don't need to write override in this case.
If you typo the name of an optional member, you'll now have calculateHeight and cacluateHeight, and the latter will just go silently uncalled forever. override is necessary to prevent you from making this mistake, so when overriding an optional member, you should be writing override.

@RyanCavanaugh thanks for the reply.  I definitely understand the design goal of explicit declaration here. The challenge I'm seeing is the mismatch between class members that are optional, and interface methods that are optional.  It appears interfaces are not held to the same standard as classes, and abstract class members are treated differently than non-abstract.
Below will actually throw a compilation error, as override is not supported on interface methods. I'm not sure if this is a gap, but it seems inconsistent from the perspective of abstract classes and interfaces achieving similar goals.
interface BaseType {
    customInit?(): Promise<void>;
}

class Specialization implements BaseType {

    override async customInit() {

    }
}

It's intentional that override doesn't apply to implements clauses, since you're not overriding anything.

Right, but I'd argue that an optional  member on an abstract class is not being overridden either, since it does not have an implementation.  The scenario you provided with calculateHeight and cacluateHeight, should apply equally to an interface as much as it does to a base class, in terms of risk to incorrectly honoring the contract:
interface Calculatable {
   calculateHeight?(): number;
}

class Calculator implements Calculatable {
   /* overide*/  cacluateHeight() {
     return 0;
   }
}

vs
abstract class BaseCalculator {
   calculateHeight?(): number;
}

class Calculator extends BaseCalculator {
   overide cacluateHeight() {
     return 0;
   }
}


Extending supported?

Hi again - this library works like a charm, but I was wondering if you see an easy way to extend the rendering? Maybe that's already possible and I'm missing the exact entry point?
What I would love to do actually is restricting paragraphs length using the numberOfLines property.
So I tried several approaches provided by the marked.js documentation found at https://marked.js.org/using_pro, but even the simple walkTokens method would not be called. So I might do something wrong. But after looking at the library code I think the current  implementation does not allow extending the Renderer.
I was just wondering if you have any thoughts on this before I might try to implement a very hacky temporary solution? Thanks in advance!

Hi @derRaab I'm planning to introduce marked.js options for extensibility in V2. It may take time. Meanwhile contributions are welcomed towards this.

https://github.com/gmsgowtham/react-native-marked/releases/tag/v2.0.0


[Discussion] Change database to mariadb

At this time the mysql image does not support ARM processors. Or in other words, it does not work on the new M1 from Apple .
I tested the set up on an M1 once with Maria DB.
With Maria DB it works and seems to run the same way as with mysql.
So what do you think about changing the setup from mysql to maria db for supporting the ARM stack with no disadvantage for other machines.

Proposed solution
db:
    image: mariadb:10.5.8
    command: --default-authentication-plugin=mysql_native_password
    ports:
      - ${PORT_MYSQL}:3306
    volumes:
      - ./data/mysql:/var/lib/mysql
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}

@TheCadien or switch to (mysql/mysql-server)[https://github.com/mysql/mysql-docker] that has ARM64 on the (docker page)[https://hub.docker.com/r/mysql/mysql-server] which interestingly is a fork from the original docker-library/mysql sulu-docker uses.

For reference, this is the issue regarding arm64 support for the official mysql image: https://github.com/docker-library/mysql/issues/318
I do not have any experience with using mariadb. But I am open to change this if there is no progress in https://github.com/docker-library/mysql/issues/318 in the next months 🙂

The only problem I see we are not official testing against mariadb and we recommend mysql in our docs and a comming guide. Does somebody know the inpact of the platform flag:
Reference: https://stackoverflow.com/questions/65456814/docker-apple-silicon-m1-preview-mysql-no-matching-manifest-for-linux-arm64-v8

@TheCadien can you try this by adding the platform flag:
mysql:
    platform: linux/x86_64
    image: mysql:8.0.19
    ...
    ```

@mfehr94 It basically looks like it will work, I can definitely create a Docker container with it and access it.
However, the container seems to be extremely slow.
Doctrine even returns me only the following as an error.
`In AbstractMySQLDriver.php line 115:
An exception occurred in driver: SQLSTATE[HY000] [2006] MySQL server has gone away`
And like @alexander-schranz i'm not really sure what the plattform tag is.


Compilation issues resolved on arm

modified:   Chippy-8.c line 123 and line 467

Your change in line Chippy-8.c line 123 gives me a compiler error: Format "%u" expected unsigned int but "long unsigned int" was provided


Multi Mouse

Description of the new feature / enhancement
Using two mouse / keyboard at the same time
And also using Mouse and Tablet independently
Scenario when this would be used?
Gaming / Graphic Designing
Supporting information
Something like Mousemax V2 HomeEdition

Neat idea but no plans


500 Internal Server Error Bot Emulator (C# SDK) on Windows Server 2016 / 2012r2

I deployed my bot to Windows Server 2016 with IIS 10. It starts fine but after few messages it starts giving my Internal Server 500. When I run it on my local computers IIS it works perfectly fine. I am using .Net version 4.6 on both Server and local computer. I am not sure why is this happening?I tried it on windows server 2012r2 and IIS 8, it gives same inetranl server error 500 after few message exchanges.
Here is some detail in Events Log about error.

Faulting application name: botframework-emulator.exe, version: <IP_ADDRESS>, time stamp: 0x596d1933
Faulting module name: ntdll.dll, version: 6.3.9600.18725, time stamp: 0x59380775
Exception code: 0xc0000005
Fault offset: 0x0000000000035690
Faulting process id: 0x15a8
Faulting application start time: 0x01d3168d86f3c274
Faulting application path: C:\Users\muhammad\AppData\Local\botframework\app-3.5.31\botframework-emulator.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: f48b02d4-8280-11e7-80ce-000c29837137
Faulting package full name:
Faulting package-relative application ID:

Following is the image of error in emulator:

Hi @m-ehxan, The error message in your screenshot points to your bot returning a 500. Are you able to trace the request on the bot side?

@eanders-MS, Bot works fine on local host but when I test it on domain name with emulator it gives me this error. This is the error caused by failure of emulator, not the bot itself

Sorry for the slow reply. The error message in your screenshot is generated in response to your bot returning a 500 error code. There is no other case when this error would be printed.

@eanders-MS , I have tested it on Skype while running it on the Windows Server 2016 and it works perfectly fine there. The problem is with the emulator not the bot itself. Somehow it crashes in after some messages

Somehow it crashes in after some messages
@m-ehxan can you determine what makes the crashing messages different than non-crashing?

@m-ehxan can you please clarify: Is the Emulator application crashing? Or are you seeing a 500 error in the emulator log?

Closing due to inactivity. If you still need help troubleshooting, let us know and we'll reopen.


[Bug]: Business Edition Helm Chart cannot enable high availability

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Due to the removal of the v2beta1 version of HPA (https://kubernetes.io/docs/reference/using-api/deprecation-guide/#horizontalpodautoscaler-v125), if you add autoscaling.enable = true in the Helm Release, you get the following error:
no matches for kind "HorizontalPodAutoscaler" in version "autoscaling/v2beta1"

Steps To Reproduce

Use a k8s cluster with version >= 1.25. In my case I'm on AKS with v1.25.11
Try to deploy the Business Edition Helm Chart v3.0.4
You get an error

Public Sample App
No response
Environment
Production
Issue video log
No response
Version
Self Hosted Business Helm Chart Version 3.0.4

Reff: https://docs.aws.amazon.com/eks/latest/userguide/pod-security-policy-removal-faq.html

@rhuanbarreto  we shall cover pdb  in a different feature and we have created an issue for the same here

Any updates on when this fix will come?

Any updates on when this fix will come?

You can pull the latest helm charts and you can use the helm charts.
Thankyou

I pulled. But still having issues for having a PVC with ReadWriteMany to be used. I'm on Azure, so I cannot use EFS.


Actix: Route skipped when using scope

web::scope routes with same path but different http method are ignored from the generated spec.
For example:
use actix_web::{App, HttpServer};
use paperclip::actix::web;
use paperclip::actix::{api_v2_operation, OpenApiExt};

#[api_v2_operation]
async fn get_users() -> String {
    "users".into()
}

#[api_v2_operation]
async fn create_user() -> String {
    "create user".into()
}

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new()
            .wrap_api()
            .service(
                web::scope("/example")
                    .route("/", web::get().to(get_users))
                    .route("/", web::post().to(create_user)),
            )
            .with_json_spec_at("/api/spec")
            .build()
    })
    .bind("<IP_ADDRESS>:8080")?
    .run()
    .await
}

Expected spec:
{
  "swagger": "2.0",
  "definitions": {},
  "paths": {
    "/example": {
      "get": {
        "responses": {}
      },
      "post": {
        "responses": {}
      }
    }
  },
  "info": { "version": "", "title": "" }
}

Generated spec:
{
  "swagger": "2.0",
  "definitions": {},
  "paths": {
    "/example/": {
      "post": {
        "responses": {}
      }
    }
  },
  "info": { "version": "", "title": "" }
}

Replacing web::scope with web::resource gets the expected spec:
web::resource("/example")
    .route(web::get().to(get_users))
    .route(web::post().to(create_user))

But I think this should work with scope too.
Cargo.toml:
[dependencies]
actix-web = "3"
paperclip = { git = "https://github.com/wafflespeanut/paperclip", features = ["actix"] }

It's not a solution, but a workaround.
You can still have scope, if you use resource:
web::scope("/example")
    .service(
        web::resource("")
            .route(web::get().to(get_users))
            .route(web::post().to(create_user))
    ),

yup, that's what I did. Thanks :D


featu: [Add support for exporting the configuration[ (FF-2437)

Fixes: #issue
Motivation and Context
Users who want to bootstrap their client SDK need a mechanism to export the configuration from their NodeJS server.

Description
Adds a new method to the client called getConfiguration - it is implemented by exporting the contents of the servingStore: SyncStore. This is implemented as a Map and trivial to export all the flags. The top-level method returns the UFC response.
Customers will be instructed to serialize this to JSON if desired and transmit it over an internal API.
How has this been tested?
New unit tests.

Not sure if these questions are related, but here they go:

Isn't the Node server version of the configuration incompatible with the JS client version? Or if the diagram referring to using the JS client version on the server (which aligns with how I'm thinking about this) to get the obfuscated config?
And also we had paused exposing the ApiEndpoint class in this PR but I think (in a separate PR) we can make it importable again. Does that sound right?

Not sure if these questions are related, but here they go:

Isn't the Node server version of the configuration incompatible with the JS client version? Or is the diagram referring to using the JS client version on the server (which aligns with how I'm thinking about this) to get the obfuscated config?

Yes this is a good observation. I am planning on allowing the JS client to configure itself in obfuscated or non obfuscated mode, the latter being for this use case of importing a configuration from nodejs. Do you see concerns with this approach, assuming the customer is aware of the security relaxation they are performing?

And also we had paused exposing the ApiEndpoint class in this PR but I think (in a separate PR) we can make it importable again. Does that sound right? Or does this approach make that unnecessary since the SDK is handling the fetch?

Cool yea now that we have the go ahead should complete that work to expose it.


Slow Envoy init due to secret initialization

Our Envoy currently holds about 2000 secrets. On startup, it will begin initializing these secrets but won't serve traffic until all of them have been loaded.
On first start, it takes about 20-30 minutes to load them all. During this time, you could run curl localhost:19000/config_dump | grep "initialized" | wc -l and it will slowly count down. Once it reaches 0, it almost immediately.
We're currently using the Golang Control Plane Snapshot API.
I'm wondering if there's a faster way to load these secrets, or potentially even a way to lazily load them?
Envoy Version: 1.21.2
I suspect this is due to us having a single control plane with ADS but I'm only spitballing here

While fetching secrets over ADS will have some overhead, it should take orders of magnitude lower than 20-30 minutes. It might help to see what is going on over the wire during these transactions - maybe debug/trace level logs would be the next step. CC @adisuissa @kyessenov

@JakeCooper Do you happen to have log traces and/or flame graphs?

This sounds a lot like https://github.com/envoyproxy/envoy/pull/19971.

Hmm @howardjohn also just opened https://github.com/envoyproxy/envoy/issues/21518 which seems also related.


Error After set variable row for Container child

Hello,
this code is :
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';

void main() {
  debugPaintSizeEnabled = false;
  runApp(MyApp());
}

class MyApp extends StatelessWidget {

  Row stars = Row(
    mainAxisAlignment: MainAxisAlignment.center,
    mainAxisSize: MainAxisSize.min,
    children: <Widget>[
      Icon(
        Icons.star,
        color: Colors.green[500],
      ),
      Icon(
        Icons.star,
        color: Colors.green[500],
      ),
      Icon(
        Icons.star,
        color: Colors.green[500],
      ),
      Icon(Icons.star, color: Colors.black),
      Icon(Icons.star, color: Colors.black),
    ],
  );

  Row gallery = Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
      Expanded(
        child: Image.asset(
          "assets/image1.jpg",
        ),
      ),
      Expanded(
        flex: 2,
        child: Image.asset(
          "assets/image2.jpg",
        ),
      ),
      Expanded(
        child: Image.asset(
          "assets/image3.jpg",
        ),
      ),
    ],
  );

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.amber,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text("Flutter for design"),
        ),
        body: ListView(
          children: <Widget>[
            Container(padding: EdgeInsets.only(top: 20), child: gallery),
            Container(padding: EdgeInsets.only(top: 20), child: stars)
          ],
        ),
      ),
    );
  }
}

I have two 'Container()', in Second 'Container' i have create variable 'stars' after add to child Container My code does not have problem but in First Container after add 'Row' into variable 'gallery'
error show type Container' is not a subtype of type 'Row' of 'function results ,
I was very surprised why there was no error for the second ' Container' after putting it in the variable but for the first 'Container' have problem
After change this code my problem solved!!!!!!!!!!!!!:
Row gallery = Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
      Expanded(
        child: Image.asset(
          "assets/image1.jpg",
        ),
      ),
      Expanded(
        flex: 2,
        child: Image.asset(
          "assets/image2.jpg",
        ),
      ),
      Expanded(
        child: Image.asset(
          "assets/image3.jpg",
        ),
      ),
    ],
  );

to(set  into funtion):
get gallery => Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
      Expanded(
        child: Image.asset(
          "assets/image1.jpg",
        ),
      ),
      Expanded(
        flex: 2,
        child: Image.asset(
          "assets/image2.jpg",
        ),
      ),
      Expanded(
        child: Image.asset(
          "assets/image3.jpg",
        ),
      ),
    ],
  );

but in docs -> https://flutter.dev/docs/development/ui/layout
var stars = Row(
  mainAxisSize: MainAxisSize.min,
  children: [
    Icon(Icons.star, color: Colors.green[500]),
    Icon(Icons.star, color: Colors.green[500]),
    Icon(Icons.star, color: Colors.green[500]),
    Icon(Icons.star, color: Colors.black),
    Icon(Icons.star, color: Colors.black),
  ],
);

why???????????????????

You haven't actually included the error you've seen, so it's not possible to help. Notably, the error refers to a function "results" which doesn't exist in the code snippet you've shared. This is likely a bug with your own code, and you would have better results reaching out on a channel in flutter.dev/community or stackoverflow.


[FLINK-14635][e2e tests] Use non-relocated imports for AWS SDK Kinesis classes in tests.

What is the purpose of the change
This allows compiling the code base fully in the IDE again by changing the way that the AWS SDK classes are used in the `KinesisPubsubClient in the Kineses end-2-end test.
Some imports were referring to relocated classes from the connector, which cannot be resolved in the IDE because no shading happens during compilation.
Brief change log

Move the KinesisPubsubClient to flink-connector-kinesis
Export a test-jar with the test utils from flink-connector-kinesis
Add the test-jar to the Kinesis end-2-end test
There is a separate cleanup commit for some compiler warning and code inspections

Verifying this change
This changes a test which still runs and works.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): yes (in a test)
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

@tweise here is the edited version, per your suggestion.

@StephanEwen thanks! Nice that you got this to work. This will now allow us to use the utility for our internal tests also (where it was originally derived from).
Just one comment regarding the now purpose deprived interface that can be removed, LGTM apart from that.

Thanks! Will merge it after addressing the comment.

Manually merged in 2b0a8ceeb131c938d2e41dfee66099bfa5f366ae


Use default cursor on the rejection reasons list item

What is the motivation for adding/enhancing this feature?

Current we are showing cursor pointer on the rejection reason list item even though the item is not clickable. We should show default cursor instead.
What are the acceptance criteria?

[ ] ...

Can you complete this feature request by yourself?

[ ] YES
[ ] NO

Additional information

Changes verified and working fine in release v2.4.3. Hence, closing this ticket.
https://jam.dev/c/63baae60-c98e-4bbb-a781-55bdee795cc0