Why not IRequestHandler?

For requests that do not need to return a value, the docs say to use the RequestHandler base class.
Why not just overload the IRequestHandler interface like so?
public interface IRequestHandler<in TRequest, out TResponse>
    where TRequest : IRequest<TResponse>
{
    TResponse Handle(TRequest message);
}

public interface IRequestHandler<in TRequest>
    where TRequest : IRequest
{
    void Handle(TRequest message);
}

It would be more consistent, and avoid unnecessary inheritance.

Fork it and try it in the codebase! I don't remember off the top of my head why.

Cause it's much easier to deal with a single interface with two generic arguments than two different ones with different generic arguments :smile:

@khellang not sure if you're kidding :P Anyway, I made a PR, looks good so far https://github.com/jbogard/MediatR/pull/100

Cause it's much easier to deal with a single interface with two generic arguments than two different ones with different generic arguments
+1

The issue isn't a single interface vs two interfaces though, it's an interface and an abstract class (RequestHandler) vs two interfaces, and I for one prefer composition over inheritance whenever possible.
If both interfaces having the same name is confusing, the new interface can be called IVoidRequestHandler or ICommandHandler or anything else... The point is that having an interface for handlers that handle requests without responses is superior to having an abstract class for the same thing.

Well, there's nothing stopping you from doing that today. IRequest just
inherits IRequest where T is the Unit type. There's nothing forcing you
to use the base class.
On Wed, Aug 31, 2016 at 3:59 PM, Geir Sagberg<EMAIL_ADDRESS>wrote:

The issue isn't a single interface vs two interfaces though, it's an
interface and an abstract class (RequestHandler) vs two interfaces, and
I for one prefer composition over inheritance whenever possible.
If both interfaces having the same name is confusing, the new interface
can be called IVoidRequestHandler or ICommandHandler or anything else...
The point is that having an interface for handlers that handle requests
without responses is superior to having an abstract class for the same
thing.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/jbogard/MediatR/issues/99#issuecomment-243882220, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAGYMsU22FkCanCovNpNqjV32frplVJmks5qld0ngaJpZM4Jucd1
.

@jbogard Good point, I updated the wiki with an example:

In the rare case your message does not require a response, use the base RequestHandler class, or return the special void type Unit (IRequest inherits IRequest<Unit>):

public class OneWay : IRequest { }
public class OneWayHandlerWithBaseClass : RequestHandler<OneWay> {
    protected override void HandleCore(OneWay request) {
        // Twiddle thumbs
    }
}
public class OneWayHandlerWithInterface : IRequestHandler<OneWay, Unit> {
    public Unit Handle(OneWay request) {
        ...
        return Unit.Value;
    }
}

However, I would still argue that the first of these is more clean and intuitive:
public class SendMailHandler : IRequestHandler<SendMailRequest> {
    ...
    public void Handle(SendMailRequest request) {
        mailService.SendMail(request.To, request.From, request.Subject, request.Body);
    }
}
public class SendMailHandler : IRequestHandler<SendMailRequest, Unit> {
    ...
    public Unit Handle(SendMailRequest request) {
        mailService.SendMail(request.To, request.From, request.Subject, request.Body);
        return Unit.Value;
    }
}

In fact, with having a separate void interface, the Unit type is no longer needed as far as I can see.

The issue isn't a single interface vs two interfaces though, it's an interface and an abstract class (RequestHandler) vs two interfaces, and I for one prefer composition over inheritance whenever possible.

You're looking at this from the users POV, I was looking at it from the library's POV. I wasn't kidding. It's much easier to handle a single interface (with an abstract base class to hide away some stuff for the consumer) than two interfaces.

@khellang Gotcha, and from the library's POV I agree, my method does require some more code.
However, now that the work is done, I would think the benefit to the consumer outweighs the few extra lines of code to maintain?

From user's perspective, it's better to have an interface than an abstract class since C# doesn't have multiple inheritance.

The abstract class is strictly a convenience thing. There's nothing forcing anyone to use the abstract class. It's more C# doesn't have a proper void type, so I borrowed F#.
See also the silliness of having both an Action and Func delegate types.

One other thing - having two interfaces makes it quite a bit harder to build your own decorators. Having a single interface is better.

I came here with the same thought that there had to be a better way with void, but I much prefer the single interface if only for decoration. I hadn't thought that far through it before I was searching this out. So I'll be using Unit

In users point of view sometimes it's hard to get why can't I IRequestHandler<TRequest> when I really don't have response type. It's not clear why to have a Handler implementation of type Task<Unit>, with a return Unit.Value;, when you could have a Task without return. The main reason I would go with
public class SendMailHandler : IRequestHandler<SendMailRequest> {
    ...
    public Task Handle(SendMailRequest request) {
        await mailService.SendMail(request.To, request.From, request.Subject, request.Body);
    }
}

is compile time check. You can't register a handler crossed (handler with return, while the implementation have return Unit.Value).

One more thing regarding this topic.
How should one use AsyncRequestHandler<TRequest> and solve cross-cutting concerns?
Behaviours are not an option since:

The pipeline behaviors are only compatible with IRequestHandler<TRequest,TResponse> and can't be used with INotificationHandler.

Decorators also - since Handle method of AsyncRequestHandler is protected and I can't write a generic decorator for all of my handlers eg:
public class JaegerCommandHandlerDecorator<TCommand> : AsyncRequestHandler<TCommand> where TCommand : class, IRequest
at least not using any reflection magic which I would like to avoid if possible ;-)
Am I missing something? Or is switching to IRequestHandler<IRequest, Unit> only option?

That’s a convenience class. It still implements the same request handler
interface underneath.
Keeping things as a single interface makes MediatR much simpler. I do
expect C# to make things easier at some point seeing as how it’s becoming
more functional.
On Fri, Mar 13, 2020 at 3:08 AM Lucas<EMAIL_ADDRESS>wrote:

One more thing regarding this topic.
How should one use AsyncRequestHandler and solve cross-cutting
concerns?
Behaviours are not an option since:
The pipeline behaviors are only compatible with
IRequestHandler<TRequest,TResponse> and can't be used with
INotificationHandler.
Decorators also - since Handle method of AsyncRequestHandler is protected
and I can't write a generic decorator for all of my handlers eg:
public class JaegerCommandHandlerDecorator :
AsyncRequestHandler where TCommand : class, IRequest
at least not using any reflection magic which I would like to avoid if
possible ;-)
Am I missing something? Or is switching to IRequestHandler<IRequest, Unit>
only option?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/jbogard/MediatR/issues/99#issuecomment-598600481, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAZQMVCXTAOXTRVHL5KGMLRHHSY5ANCNFSM4CNZY52Q
.


Input with type=submit inside partial does not submit its own value

consider:

      <form
        f-partial="/partial/car_type"
        method="post"
      />
            <input
              type="submit"
              class="hidden"
              name="car"
              value="a"/>

when this input is clicked and the form is submitted, the req.formData(); should contain the value { car: "a"}, but it does not. It is empty instead.

Is the input inside the form? In the snippet the <form /> tag is self closing or is that a copy & paste error here and the form encapsulates the input element in your app?

@marvinhagemeister copy & pate error, my bad. Here is a better copy/paste
            <form
              f-partial={`/load_version`}
              method="post"
            >
              <input
                type="submit"
                name="version"
                value="saved"
                class="m-2 bg-blue-600"
              />
            </form>

then in the route:
  async POST(req, ctx) {
    const form = await req.formData();
    const formValues = Object.fromEntries(form.entries());
    console.log({ formValues });
	// prints empty object for formValues, if I remove partial navigation
 	// it does display the value though

Good news: Just took a look at this and it is already fixed in main.  I'm not sure which exact commit resolved it, but I cannot reproduce it there anymore 🎉


DeepSpeed: output with shape doesn't match the broadcast shape

🐛 Bug

I am getting an error when using deepspeed with a transformer wrapped in a Pytorch Lightning module, whereas my training script works fine without deepspeed. I'm not sure why this is the case, and would appreciate any and all help to follow.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
initializing ddp: GLOBAL_RANK: 0, MEMBER: 1/1
----------------------------------------------------------------------------------------------------
distributed_backend=nccl
All DDP processes registered. Starting ddp with 1 processes
----------------------------------------------------------------------------------------------------

LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Enabling DeepSpeed FP16.
You have not specified an optimizer or scheduler within the DeepSpeed config.Using `configure_optimizers` to define optimizer and scheduler.
Using /home/ubuntu/.cache/torch_extensions as PyTorch extensions root...
Emitting ninja build file /home/ubuntu/.cache/torch_extensions/utils/build.ninja...
Building extension module utils...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
ninja: no work to do.
Loading extension module utils...
Time to load utils op: 0.49509739875793457 seconds
Using /home/ubuntu/.cache/torch_extensions as PyTorch extensions root...
No modifications detected for re-loaded extension module utils, skipping build step...
Loading extension module utils...
Time to load utils op: 0.0005855560302734375 seconds
....
....
....
RuntimeError: output with shape [1] doesn't match the broadcast shape [1024, 1024]

When using a larger model (microsoft/deberta-v2-xlarge) that does not run on my GPU due to CUDA OOM errors, I obtain another error which is likely related to the same issue:
RuntimeError: Function LinearFunctionForZeroStage3Backward returned an invalid gradient at index 0 - got [2, 10] but expected shape compatible with [2, 10, 1536]

Please reproduce using the BoringModel
Cannot reproduce in Colab since deepspeed is not supported in interactive mode.

To Reproduce
Since collab cannot run deepspeed, you can find a short toy script to reproduce this error toy.py.
Simply run the attached gist to obtain the error.

Expected behavior
Expected behavior was to be able to train a large model using the deepspeed library.
Environment

CUDA:
- GPU:
- Tesla V100-SXM2-16GB
- available:         True
- version:           10.2
Packages:
- numpy:             1.19.2
- pyTorch_debug:     False
- pyTorch_version:   1.9.0+cu102
- pytorch-lightning: 1.3.8
- tqdm:              4.54.1
- deepspeed:    0.4.3
System:
- OS:                Linux
- architecture:
- 64bit
-
- processor:         x86_64
- python:            3.7.6
- version:           51~18.04.1-Ubuntu SMP Fri May 14 18:38:46 UTC 2021

Additional context

After more digging, this is looking like an a problem with the way that huggingface integrates with deepspeed and the way that pytorch-lightning does it. Eg. If you replace the huggingfacetransformer model with a basic nn.Embedding layer, deepspeed works fine..

It looks like the issues were resolved with the latest DeepSpeed (0.9.x) and Lightning (2.0.x) version. I was able to run the code snippet (thanks a lot for it!) with a GPU memory consumption of about 3750 MiB. I only had to do minor API changes to the script and use deepspeed.ops.adam.DeepSpeedCPUAdam as instructed by the error message. Here is the full code:
import torch
import torch.nn as nn
from torch.utils.data import DataLoader
from transformers import AutoModel, AutoTokenizer
from transformers.optimization import get_cosine_schedule_with_warmup
import lightning.pytorch as pl

# from deepspeed.ops.adam import FusedAdam - get different error (expected tensor on cuda but got cpu) with FusedAdam

class BoringDataset(torch.utils.data.Dataset):
    def __init__(self, len=1000):
        self.len = len

    def __len__(self):
        return self.len

    def __getitem__(self, idx):
        sample = {
            "text_input": "This is some fake and boring text.",
            "target": 0,
        }
        return sample

class BoringBertClassifierModel(pl.LightningModule):
    def __init__(self, bert_model="microsoft/deberta-v2-xlarge"):
        super(BoringBertClassifierModel, self).__init__()
        self.model_type = "BoringBertClassifierModel"
        # Load Text Model
        self.text_model = AutoModel.from_pretrained(bert_model)
        self.output_layer = nn.Linear(self.text_model.config.hidden_size, 1)
        self.criterion = nn.MSELoss(reduction="sum")

    def forward(self, text_input, **kwargs):
        outputs = self.text_model(**text_input)[0]
        x = torch.sum(outputs, dim=1)  # aggregate over sequence
        predictions = self.output_layer(x)
        return predictions.squeeze(1)

    def training_step(self, batch, batch_nb):
        predicted_targets = self(**batch)
        target_loss = self.criterion(predicted_targets, batch["target"])
        return target_loss

    def validation_step(self, val_batch, val_batch_idx, **kwargs):
        predicted_targets = self(**val_batch)
        target_loss = self.criterion(predicted_targets, val_batch["target"])
        return target_loss

    def configure_optimizers(self):
        import deepspeed
        optimizer = deepspeed.ops.adam.DeepSpeedCPUAdam(self.parameters(), lr=0.00001, weight_decay=0.01)
        # optimizer = torch.optim.AdamW(self.parameters(), lr=0.00001, weight_decay=0.01)
        schedule = get_cosine_schedule_with_warmup(
            optimizer,
            num_warmup_steps=100,
            num_training_steps=1000,
        )
        scheduler = {
            "scheduler": schedule,
            "interval": "step",  # runs per batch rather than per epoch
            "frequency": 1,
            "name": "learning_rate",  # uncomment if using LearningRateMonitor
        }
        return [optimizer], [scheduler]

if __name__ == "__main__":

    bert_model = "microsoft/deberta-large"  # runs fine without deepspeed
    tokenizer = AutoTokenizer.from_pretrained(bert_model, model_max_length=100)

    def collate_fn(batch):
        items = {}
        items["text_input"] = tokenizer(
            [batch_item["text_input"] for batch_item in batch],
            padding=True,
            return_tensors="pt",
            truncation=True,
        )
        items["target"] = torch.tensor(
            [batch_item["target"] for batch_item in batch]
        ).float()
        return items

    train_dataset = BoringDataset(len=100)
    val_dataset = BoringDataset(len=20)

    train_loader = DataLoader(
        dataset=train_dataset,
        shuffle=True,
        collate_fn=collate_fn,
        batch_size=2,
        num_workers=1,
    )
    val_loader = DataLoader(
        dataset=val_dataset,
        batch_size=4,
        shuffle=False,
        collate_fn=collate_fn,
        num_workers=1,
    )

    model = BoringBertClassifierModel(bert_model=bert_model)

    trainer = pl.Trainer(
        accelerator="cuda",
        devices=1,
        max_epochs=10,
        log_every_n_steps=1,
        strategy="deepspeed_stage_3_offload",
        precision="16-mixed",
    )

    # Train the model ⚡
    trainer.fit(
        model,
        train_dataloaders=train_loader,
        val_dataloaders=[val_loader],
    )

I'm closing the issue because it is very old, and the issues seem to be resolved. Happy to help if there are any further questions.


implement continuous delivery

implement CD via GH Actions

GH Actions delivered image to docker hub:

https://hub.docker.com/r/digitalocean/artifactory-docker-resource/tags


Results on the event page

We shouldn't show the Results heading if event is not completed.  Eg:  https://www.bitcoinpokertour.com/schedule/66a1b05395cb320b57347f26

Seems to work.  Closing


Improve style (part 4)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (221767b) 100.00% compared to head (5186c9e) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #277   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           95        95
  Lines         3123      3171   +48
  Branches       255       255
=========================================
+ Hits          3123      3171   +48

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fixed problem with custom Options, + made more safe

Bugfix:
When using custom options such as setting leftViewWidth, they are ignored due to that these options are already set and used when the class in initialized.
E.g.
let slideMenuController = SlideMenuController(mainViewController: mainVC, leftMenuViewController: menuTVC)
slideMenuController.options.leftViewWidth = 50
slideMenuController.options.contentViewScale = 1

The left view width would be ignored since the width of the leftContainerView container view is already set to the default of 270 when the class is initialized. Also, a custom class is not needed for setting the options.
Now one can set the options before initializing the class like so:
SlideMenuOptions.leftViewWidth = 50
SlideMenuOptions.contentViewScale = 1
let slideMenuController = SlideMenuController(mainViewController: mainVC, leftMenuViewController: menuTVC)

Improvement:
Added the [weak self] to avoid a retain cycle and make it a little more safe, even tough a UIView subclass might not hold a reference to the closure.
Refactoring:
In swift, calling self is no longer needed. I fixed this too.

Thank you for the good work!


Error: Error in migration engine. Reason: [libs/sql-schema-describer/src/walkers.rs:302:18] foreign key references unknown table

Context: This should be a known error

Command: prisma db push --preview-feature
Version: 2.11.0
Binary Version:<PHONE_NUMBER>2e47bdcec77a2f1e7c1fb83a463918
Report: https://prisma-errors.netlify.app/report/12051
OS: x64 darwin 19.6.0
JS Stacktrace:
Error: Error in migration engine.
Reason: [libs/sql-schema-describer/src/walkers.rs:302:18] foreign key references unknown table

Please create an issue in the migrate repo with
your `schema.prisma` and the prisma command you tried to use 🙏:
https://github.com/prisma/migrate/issues/new

    at ChildProcess.<anonymous> (/Users/Joel/Documents/Projects/2020-FPS/IBBA/ibba-listing-engine/frontend/node_modules/@prisma/cli/build/index.js:60100:23)
    at ChildProcess.emit (events.js:314:20)
    at ChildProcess.EventEmitter.emit (domain.js:486:12)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)

Rust Stacktrace:
[libs/sql-schema-describer/src/walkers.rs:302:18] foreign key references unknown table

This has recent reports with 2.17


Add toFixed prototypes

Closes #207

toFixed returns a string, so you need to convert it back into a number


Segmentation fault      (core dumped)

hello,There was an error about  ´ Segmentation fault      (core dumped) ´ when I run your example, Yiwan.sh,Can you tell me how to fix it?

Hi, I've fixed the bug. You could pull the new code and try again.

Hello, I'm still getting an error with the current code. It prints out "../results/yiwan_test_trust_region/" and then segmentation faults.


Add Corsair MP510

Not tested cryptographic functions, as Pyrite doesn't specify such capabilities.

:tada: This PR is included in version 0.8.21 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Domain activation failed - custom domain with valid CNAME record

App Id: d2ctnb7fwe3m0u
Region: us-east-1
Step: Domain activation
Status: Failed
We've followed the steps to as per documentation to set up a custom domain.
The client is using Route53 and has configured the correct DNS CNAME record.
Using whatsmydns we have confirmed the DNS record as per directions
https://www.whatsmydns.net/#CNAME/_56302cf9c095ed1be302ccff8df3f8ef.aquamobileswim.com
Yet the Domain activation fails.

Hi. Could someone advise? I don't see the CloudFront distribution in our account. Is there any way to see the CloudFront distribution generated by Amplify to try to diagnose? We've spent 3 days working on this with the client and they are ready to give up on us. We previously set this up for a different client and it worked without issue.

Hi @blairtaylor , Could you please remove and re-add the domain.  It seems like "aqxxxxxxxxswim.com" doesn't associate with any distribution. If you still face this issue, please let us know

Deleted and re-created the custom domain. I receive the same error.
Something went wrong. Please refer to our troubleshooting guide below to diagnose the issue. After fixing the issue, choose retry below. If retrying fails, please create an issue in our GitHub issue tracker.
Error message: One or more aliases specified for the distribution includes an incorrectly configured DNS record that points to another CloudFront distribution. You must update the DNS record to correct the problem.

@blairtaylor It seems like your custom domain already has a DNS record which point to another one CloudFront distribution. (ref: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-restrictions)
Can you delete the DNS records, and if it won't cause disruption, delete and recreate the custom domain?

Thanks @Joycehao19 . The client has sent me a dump of their DNS config which is in Route53. I only see one CNAME pointing to a CloudFront distribution. I do see a number of "acm-validations" records as we tried this setup several times without success. I can send the dump privately if that helps.

@blairtaylor when you add domain in Domain management, in SSL configuration stage, click Action -> view DNS records , in 3. Configure DNS provider, there should have a line looks like     www    CNAME    d1234567abcd.cloudfront.net. Can you make sure if this line matches the client's record?

@Joycehao19 We deleted and re-created the custom domain and it is working now.


CLA-Assistant not detecting full github name with dash in it

I tried to sign a CLA from the cla-assistant in the Emby Repository. It's not detecting my full username with the dash.
https://github.com/MediaBrowser/Emby/pull/1918

Hello phantom-voltage,
thank you very much for reporting this issue.
I do not think the problem you are having is related to the dash in your name. The commit in your pull request is actually not linked to your github account.
https://github.com/MediaBrowser/Emby/pull/1918/commits
(Notice it only shows "phantom" as committer and your profile picture is not shown.)
To fix this you can add the email address, which you used for the commit (phantom@blackbullet.lan), to your github account( Settings -> Emails -> Add email address ) or change the email address you use to your github mail. ( git config --global user.email<EMAIL_ADDRESS>)
Nevertheless, we should check if it is possible to avoid this issue somehow.


Font in the suggestion box looks wrong

It seems that the font in the suggestion box is different than the one for the VS code editor. I couldn't find any setting for that, so maybe it's a bug ?

Hi @tsonev7  - this appears to be a problem with the JavaScript language service, so it would be better to raise the issue on the VSCode repository at https://github.com/microsoft/vscode/issues
Thanks!
Mark

Got the same issue, haven't found a way to fix it yet.


Docs: update DG UML diagrams

Codecov Report

Merging #122 (9728dae) into master (007a2b0) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #122   +/-   ##
=========================================
  Coverage     41.80%   41.80%
  Complexity      273      273
=========================================
  Files            75       75
  Lines          1514     1514
  Branches        146      146
=========================================
  Hits            633      633
  Misses          820      820
  Partials         61       61

Continue to review full report at Codecov.

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


Translate ERDDAP user interface into other languages

Most of the text for the ERDDAP user interface (other than a few static .html documents) is in messages.xml.
Long ago, in my previous job, I was able to use commercial machine translation software to make translations to French, Spanish, German, Italian, and Dutch.
The translation was crude but usable.  For a couple of the languages, a human hand edited the translations. That was great.
Now there are web sites (and hopefully web services) that can translate to/from 100's of languages and they can do a much, much better job than the software I used.
The goal of this project is to create versions of ERDDAP using different languages.
(This was the part of the original design of ERDDAP. That's why most of the text is in messages.xml.)
There are two major tasks:
Major task # 1) Make a system which parses messages.xml, sends the parts to a machine translation system, and creates variants of messages.xml for other languages (e.g., messages.de.xml).  With this alone, a given ERDDAP could have a user interface which uses another language.
Major task # 2) (Optional) Make a structural change to ERDDAP so that one ERDDAP can serve messages in different languages, e.g., https://baseUrl/erddap/... would be the English (original) interface while https://baseUrl/erddap/de/... would be the German interface, etc. But some other actual system might be better.
Clearly, many people outside the US would appreciate this (even the Brits, who could switch to the British spellings of some words).
There are several interrelated issues for major task # 1. Different people could take on different issues.

There is still text in ERDDAP which has hard-coded text. These should be converted to use text from messages.xml.  The easiest way to identify these is to translate messages.xml and then see what text in the ERDDAP UI still needs to be translated.

Sometimes, 2+ tags in messages.xml are used to hold parts of a sentence. ERDDAP combines the parts with other information to make a sentence. This often doesn't work well with translation software because different languages put different parts of the sentence in different places (e.g., Germans put the main verb at the end). Hopefully, there are few of these. These should probably be changed to the pseudo character entity system or the MessageFormat system described below.

Often, a message exists with a whole sentence or block of text in messages.xml, but uses a pseudo character entity (e.g., &externalLinkHtml;) to mark where ERDDAP will plug in some piece of information at runtime.  This works with translation software if it simply ignores the unknown character entity and passes it through in the results. You'll have to test that this works with the translation system you choose, or deal with the problem (e.g., substitute a nonsense word temporarily).

Often, a message uses Java MessageFormat-style substitution placeholders like {0} and {1}. In these messages, any single quote ' is written as ''. So the translation system will have to deal with the placeholders (or you will) and you'll have to convert to one single quote before translation and convert to 2 single quotes after translation.

Often the message is HTML content. The translation system will have to preserve the HTML tags.

To do the actual translation, you probably have to write a script which goes through messages.xml, and for each tag,  cleans it up (eg convert 2 single quotes into 1 single quote), passes it to the translator, then inserts the result in a new messages.xml (e.g. with each single quote converted to 2 single quotes).

It would be nice to have a system which makes it easy to translate the entire messages.xml or translate/update just a single tag.  Thus, if one tag is changed for a new release of ERDDAP, there should be a way to update the translated version in the other versions of messages.xml.

Skills required: Script writing (Java?). Fluency in (or at least familiarity with) a language other than English (to use as the test case) is useful. You need to know a little Java to deal with issues # 1 and # 2.
Difficulty: This is a huge task if done properly (lots of editing of message formats), but only medium technical difficulty.  This is easily 3 months work (after after getting rolling with ERDDAP). Maybe this is too big. I don't know. Or just dive into this and see how far you can get in the available time. I suspect that just doing # 6 and # 7 (and dealing with issues # 3, # 4, # 5) might be a useful project on it's own (which you might be able to do crudely in 1 week). It would also highlight pieces of text that are hard coded in ERDDAP (issue # 1) or which need modifying in ERDDAP (issue # 2).
Mentor: Bob Simons (main author of ERDDAP)
Please also read the Programmer's Guide at https://coastwatch.pfeg.noaa.gov/erddap/download/setup.html#programmersGuide
especially the "Judging Your Code Contributions" section.

Hi, My name is Qi Zeng, a math major sophomore from Georgia Institute of Technology, on track to pursue a second major in CS. I'm interested in doing the GSoC to learn something outside my school and make some contribution to an open source community.
I'm proficient on English (6 years in the U.S.) and Chinese (mother tongue), and I have experience with Java. So I think I can potentially be a good fit for this translation project. Can we discuss more details about this project? For example, what I can do to get started with this issue? @BobSimons

@Q1Zeng,
Thanks for your interest in working on this project.
My understanding of GSoC (from https://summerofcode.withgoogle.com/how-it-works/#timeline )
is that students like you submit applications until Apr 13.
Then we review and select the best student proposals by May 17.
If you are accepted, we "bond" from May 17 - June 7 and actually work on the project together from June 7 to Aug 16.
So, what you can do now is:

Read my description of the project carefully.
I tried to outline how to approach the project and identify the challenges
that must be dealt with.
Read, research, and think about how you would do the project.
Read the Programmer's Guide to ERDDAP that I wrote
https://coastwatch.pfeg.noaa.gov/erddap/download/setup.html#programmersGuide
especially the section at the end on "Judging Your Code Contributions".
Get familiar with ERDDAP -- what it is, how it works, how to use it.
If needed, you can email me (bob dot simons @ noaa dot gov) to talk about the project.
Submit your application.

Best wishes.

Hi @BobSimons I am Ghanshyam Singh Moyal , sophomore at Indian Institute of Technology, Roorkee . I have a good experience with java . About languages I am proficient in English and Hindi (my mother tongue) . I would love to work on this project .

@jarvis-001, thanks for your interest in working on this issue,
Unfortunately, it is tentatively assigned to @Q1Zeng.
Please consider working on one of the other ERDDAP issues, especially those marked with GSoC. See
https://github.com/BobSimons/erddap/labels/GSoC
Best wishes.

Qi (as a Google Summer of Code intern) and I worked on a translation system in the summer of 2021. The resulting system was released in ERDDAP v2.15. Thank you, Qi!


UnboundLocalError: local variable 'notification' referenced before assignment

lemur notify expirations fails to execute with the output below
(lemur-dev) lemur@SERVER-NAME:/www/lemur-dev/lemur$ lemur notify expirations
Plugin 'DigiCertCISIssuerPlugin' may not work correctly. Required variable 'DIGICERT_CIS_API_KEY' is not set in Lemur's conf.
Plugin 'DigiCertIssuerPlugin' may not work correctly. Required variable 'DIGICERT_API_KEY' is not set in Lemur's conf.
Plugin 'ACMEIssuerPlugin' may not work correctly. Required variable 'ACME_DIRECTORY_URL' is not set in Lemur's conf.
Starting to notify subscribers about expiring certificates!
Traceback (most recent call last):
  File "/www/lemur-dev/bin/lemur", line 11, in <module>
    load_entry_point('lemur', 'console_scripts', 'lemur')()
  File "/www/lemur-dev/lemur/manage.py", line 534, in main
    manager.run()
  File "/www/lemur-dev/lib/python3.5/site-packages/flask_script/__init__.py", line 412, in run
    result = self.handle(sys.argv[0], sys.argv[1:])
  File "/www/lemur-dev/lib/python3.5/site-packages/flask_script/__init__.py", line 383, in handle
    res = handle(*args, **config)
  File "/www/lemur-dev/lib/python3.5/site-packages/flask_script/commands.py", line 216, in __call__
    return self.run(*args, **kwargs)
  File "/www/lemur-dev/lemur/notifications/cli.py", line 24, in expirations
    success, failed = send_expiration_notifications()
  File "/www/lemur-dev/lemur/notifications/messaging.py", line 123, in send_expiration_notifications
    if send_notification('expiration', security_data, security_email, notification):
UnboundLocalError: local variable 'notification' referenced before assignment

This appears to be related to the needs_notification function passing when the unit is set to days.

I believe this has already been fixed via: https://github.com/Netflix/lemur/commit/1c295896e6f412b0515a03de53a1612a3a71ba8c

@kevgliss Any suggestions on resolving this database upgrade issue while attempting to upgrade to the latest release?
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) enum label "create_cert" already exists
 [SQL: "ALTER TYPE log_type ADD VALUE 'create_cert'"]

DETAILS
(lemur-dev) lemur@SERVERNAME:/www/lemur-dev/lemur$ lemur -c /home/lemur/.lemur-dev/lemur.conf.py db upgrade
Plugin 'DigiCertIssuerPlugin' may not work correctly. Required variable 'DIGICERT_API_KEY' is not set in Lemur's conf.
Plugin 'ACMEIssuerPlugin' may not work correctly. Required variable 'ACME_DIRECTORY_URL' is not set in Lemur's conf.
Plugin 'DigiCertCISIssuerPlugin' may not work correctly. Required variable 'DIGICERT_CIS_API_KEY' is not set in Lemur's conf.
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade 5e680529b666 -> 8ae67285ff14, Modifies the unique index for the certificate replacements
INFO  [alembic.runtime.migration] Running upgrade 8ae67285ff14 -> a02a678ddc25, Adds support for rotation policies.
INFO  [alembic.runtime.migration] Running upgrade a02a678ddc25 -> 1ae8e3104db8, Adds additional ENUM for creating and updating certificates.
/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/engine/default.py:428: SAWarning: Connection is already established with a Transaction; setting isolation_level may implicitly rollback or commit the existing transaction, or have no effect until next transaction
  "Connection is already established with a Transaction; "
Traceback (most recent call last):
  File "/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
    context)
  File "/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
    cursor.execute(statement, parameters)
psycopg2.ProgrammingError: enum label "create_cert" already exists

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/www/lemur-dev/bin/lemur", line 11, in <module>
    load_entry_point('lemur', 'console_scripts', 'lemur')()
  File "/www/lemur-dev/lemur/manage.py", line 545, in main
    manager.run()
  File "/www/lemur-dev/lib/python3.5/site-packages/flask_script/__init__.py", line 412, in run
    result = self.handle(sys.argv[0], sys.argv[1:])
  File "/www/lemur-dev/lib/python3.5/site-packages/flask_script/__init__.py", line 383, in handle
    res = handle(*args, **config)
  File "/www/lemur-dev/lib/python3.5/site-packages/flask_script/commands.py", line 216, in __call__
    return self.run(*args, **kwargs)
  File "/www/lemur-dev/lib/python3.5/site-packages/flask_migrate/__init__.py", line 247, in upgrade
    command.upgrade(config, revision, sql=sql, tag=tag)
  File "/www/lemur-dev/lib/python3.5/site-packages/alembic/command.py", line 254, in upgrade
    script.run_env()
  File "/www/lemur-dev/lib/python3.5/site-packages/alembic/script/base.py", line 425, in run_env
    util.load_python_file(self.dir, 'env.py')
  File "/www/lemur-dev/lib/python3.5/site-packages/alembic/util/pyfiles.py", line 93, in load_python_file
    module = load_module_py(module_id, path)
  File "/www/lemur-dev/lib/python3.5/site-packages/alembic/util/compat.py", line 64, in load_module_py
    module_id, path).load_module(module_id)
  File "<frozen importlib._bootstrap_external>", line 388, in _check_name_wrapper
  File "<frozen importlib._bootstrap_external>", line 809, in load_module
  File "<frozen importlib._bootstrap_external>", line 668, in load_module
  File "<frozen importlib._bootstrap>", line 268, in _load_module_shim
  File "<frozen importlib._bootstrap>", line 693, in _load
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "migrations/env.py", line 72, in <module>
    run_migrations_online()
  File "migrations/env.py", line 65, in run_migrations_online
    context.run_migrations()
  File "<string>", line 8, in run_migrations
  File "/www/lemur-dev/lib/python3.5/site-packages/alembic/runtime/environment.py", line 836, in run_migrations
    self.get_context().run_migrations(**kw)
  File "/www/lemur-dev/lib/python3.5/site-packages/alembic/runtime/migration.py", line 330, in run_migrations
    step.migration_fn(**kw)
  File "/www/lemur-dev/lemur/migrations/versions/1ae8e3104db8_.py", line 23, in upgrade
    op.execute("ALTER TYPE log_type ADD VALUE 'create_cert'")
  File "<string>", line 8, in execute
  File "<string>", line 3, in execute
  File "/www/lemur-dev/lib/python3.5/site-packages/alembic/operations/ops.py", line 1842, in execute
    return operations.invoke(op)
  File "/www/lemur-dev/lib/python3.5/site-packages/alembic/operations/base.py", line 318, in invoke
    return fn(self, operation)
  File "/www/lemur-dev/lib/python3.5/site-packages/alembic/operations/toimpl.py", line 161, in execute_sql
    execution_options=operation.execution_options
  File "/www/lemur-dev/lib/python3.5/site-packages/alembic/ddl/impl.py", line 121, in execute
    self._exec(sql, execution_options)
  File "/www/lemur-dev/lib/python3.5/site-packages/alembic/ddl/impl.py", line 118, in _exec
    return conn.execute(construct, *multiparams, **params)
  File "/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 945, in execute
    return meth(self, multiparams, params)
  File "/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/sql/elements.py", line 263, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1053, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1189, in _execute_context
    context)
  File "/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1402, in _handle_dbapi_exception
    exc_info
  File "/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
    raise value.with_traceback(tb)
  File "/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
    context)
  File "/www/lemur-dev/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) enum label "create_cert" already exists
 [SQL: "ALTER TYPE log_type ADD VALUE 'create_cert'"]

Unfortunately adding values to ENUMs in postgres is painful in alembic. Internally when I hit the above error I just re-ran the migration with the following to force it through:
1ae8e3104db8_.py
def upgrade():
    connection = None

#    if not op.get_context().as_sql:
#        connection = op.get_bind()
#        connection.execution_options(isolation_level='AUTOCOMMIT')

#     op.execute("ALTER TYPE log_type ADD VALUE 'create_cert'")
#     op.execute("ALTER TYPE log_type ADD VALUE 'update_cert'")

#     if connection is not None:
#         connection.execution_options(isolation_level='READ_COMMITTED')

I haven't found a better method as of yet. Hoping someone better with alembic that I might be able to get our ENUMs upgraded more smoothly.

The idea is that it's complaining the new enum already exists so we shouldn't need to do anything else except upgrade the alembic version.

You mention running 1ae8e3104db8_.py, but I cannot locate this file within the lemur files. How exactly do I go about upgrading the alembic version as you said?

Commenting out the lines in 1ae8e3104db8_.py allowed us to get past the lemur -c CONFIGFILE db upgrade issues


(maint) update subcommand gem dependencies

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/3724/


chore: move get_tx_weights out of the Bouncer

This change is

Codecov Report
Attention: Patch coverage is 97.56098% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 78.04%. Comparing base (693da0e) to head (7d74e3a).

Files
Patch %
Lines

crates/blockifier/src/bouncer.rs
97.56%
0 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1940      +/-   ##
==========================================
- Coverage   78.04%   78.04%   -0.01%
==========================================
  Files          61       61
  Lines        8759     8757       -2
  Branches     8759     8757       -2
==========================================
- Hits         6836     6834       -2
  Misses       1485     1485
  Partials      438      438

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

crates/blockifier/src/bouncer.rs line 211 at r1 (raw file):

        // The countings here should be linear in the transactional state changes and execution info
        // rather than the cumulative state attributes.
        let state_changes_keys = tx_state_changes_keys.difference(&self.state_changes_keys);

To be consistent with the other variable names in this test (all variables that only contain the new entries introduced by the tx).
Maybe use the word new/newly like it used to be in get_casm_hash_calculation_resources and get_particia_update_resources ?
Suggestion:
tx_state_changes_keys


V4.0 release

This is a work in progress on the v4.0 release. It is published as 4.0.0-alpha.* and 4.0.0-beta.* versions until the release, after which the branch will be merged into the master

Codecov Report
Base: 73.8% // Head: 73.8% // No change to project coverage :thumbsup:

Coverage data is based on head (bdf2ff6) compared to base (0b33b67).
Patch has no changes to coverable lines.

Additional details and impacted files
@@          Coverage Diff           @@
##           master    #158   +/-   ##
======================================
  Coverage    73.8%   73.8%
======================================
  Files          34      34
  Lines        5636    5636
======================================
  Hits         4160    4160
  Misses       1476    1476

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


[Map] VCTF-Suspense2K4-Beta8

Have a query of the ut2004 suspense map specifically not showing up in my ingame map options under vctf.  We read the text file that was included, installed the EONSLocustA.ukx into Animations, and also the usx of same name into the StaticMesh folder. The Map files also in there proper locations. Maybe im quite rusty on this. I have quite a few maps that did show up, but gotta say.. Suspense from ut3 would be great. Our win10 laptop doesnt have the same gaming power that our older desktop used to have so were limited to ut2004 on this one. None of your maps, 8 tried to install, are showing up. Would love to see your work. Thanks for any help Jeffrey. Tony and Tessa W.

URL: https://unrealarchive.org/maps/unreal-tournament-2004/vehicle-ctf/S/vctf-suspense2k4-beta8_46b4172b.html
Hash: 46b4172bfcad63046d065feb83af347f49e12bec
Current name: VCTF-Suspense2K4-Beta8

For this map make sure also to install the EONS .u file, you'll need the same files that are used in the UT3 Vehicles mutator:

I think that'd be the fix for your issue (having been one of the authors behind the UT3 ports of vehicles and weapons). Maybe the required files of map need to be updated.


Get MIEngine working after the refactor

Update the name of the managed resource to match what is embedded in the module
Update the MIDebugPackage and MICoreUnitTests projects to copy required facade assemblies
Update the MIDebugPackage to exclude extra assemblies it was copying which we don't plan to ship with the MIEngine

@chlowell please take a look. @chuckries you might want to look also, as we will need to follow this pattern as we add more dependencies moving forward.

:+1:

Looks good to me :+1:


Retry mechanism for recover/release/ringchange

We need a retry mechanism in place to ensure eventual recover of state.
Caveat, this will hold ring changes in the queue until a success occurs. This seems beneficial to me, albeit different from current design, because it ensures consistency.
@iproctor @Raynos

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@kamran-m

cool


[DO NOT MERGE] Create non-widget ListComponent and DOM wrapping JsTypes

These commits introduce changes to the SyncBeanDef interface that require updates to downstream projects (Uberfire, Uberfire Extensions, and Dashbuilder). This PR should not be merged until these downstream changes  are ready to merge as well.

Presumably we'll also need to (possibly) change guvnor, kie-wb-common, drools-wb, jbpm-console-ng, jbpm-designer and kie-wb-distributions (depending on their usage of SyncBeanDef)?

@manstis I think those other repositories are unaffected. This change removes one method and adds another to the SyncBeanDef interface. I couldn't find any usage of the removed method or any implementations of SyncBeanDef in any droolsjbpm repositories.

Great stuff - I know of a couple of cases where we get collections of SyncBeanDef but IIRC we then only instantiate the beans... but at least I can keep an eye open should there be problems :-)

master: bf0d507903dfe85844a64c03c21af8d90f87a313 268a454170a167978b78584a13f5856e7ac4a831 7c59d75df0db1487bbeffea3864e442fa3167675


Fact to report the number of running containers

Simple Fact using 'docker ps' to report with Facter the number of running containers.
Since there are no Fact in this module today, hints or an update to the PR guidelines around Facter testing could be nice.

@tux-o-matic thanks for submitting and just to say I've not completely forgotten about this. I'm going to spend some time all-being-well on what facts would make sense to expose for Docker above and beyond just exposing the number of containers. With that in mind I'll hold of merging this so as to avoid an issue with that interface later. Thanks for the idea anyhow, much appreciated.


[Feature] support Playback-mode in Overlay

Description

the Playback-conversation should be published and avalable for target audience
should update Playback-logic to avoid saving playback-index into Storage (store only locally in state)
hide "Stop playback" button for published with me conversations
allow to publish Playback-conversations
add new option to the ChatOverlayOptions like overalay overlayConversationId to use for Overlay this conversation always, and be able to set it through the setOverlayOptions.

Use case/motivation
We want to host some demo Overlay with Playback-conversation
Related issues
No response
Confidential information

[X] I confirm that do not share any confidential information

Checked on STG :
For Replay chat there is no option Publish
Note 01: In case Replay chat is inside folder and user create Publish request for folder, then request will be created successfully.
Need to discuss correct behaviour
Note 02: Does share and Publish option should be available on Playback chat?

related defects
#1469

Verified the enhancement locally.
Steps are the following:

Create a chat with Plotly graph -> Create Playback version of the chat -> Publish playback chat, so, it appears in Organization structure -> Remember the ID of the chat (for example, select the chat and find it's ID in local store)
In app > cases> overlay > page.tsx update "overlayConversationId"
Compile and open Overlay in localhost -> Playback chat is shown, next/back arrow are working (hot keys are working)

Note: there is one blocking issue waiting to be fixed on BE side. Error is shown if to open Chart from published playback chat. https://github.com/epam/ai-dial-core/issues/348


 expands too wide if a URL with % HTML escape codes

--------------^ Click "Preview" for a nicer view!
We primarily use GitHub as an issue tracker; for usage and support questions, please check out these resources below. Thanks! 😁.

Gitter Community Chat: https://gitter.im/Semantic-Org/Semantic-UI-React
StackOverflow: https://stackoverflow.com/questions/tagged/semantic-ui-react using the tag semantic-ui-react
Also have a look at our docs: http://react.semantic-ui.com

I am not certain if this is a bug in semantic-ui-react's
 or just not understanding how to use it correctly, so I'm filing this here. I'll also post something on the StackOverflow for semantic-ui-react.
In the Table we've created on-line for logging issues in our products, the "Notes" style fields (in our case, "Opportunity," "Desired Outcome," etc.  Our code for the Table Cells, after setting it up with
's and such, is this —
...

  {item.submitted_by}

  {item.opportunity}

    {moment(item.create_date).format("MM/DD/YYYY")}

...

However, if someone puts notes in the field that has a URL that might contain HTML escape characters that start with the % sign, such as %2F for / and %20 for a space, etc., it causes the field to suddenly widen and stretch to the left, which then shoves all the other columns/fields that need to be screen off screen, as in the below.

If you just have regular notes that are text or have a URL with no HMTL escape characters in it, the cell formats at just the width size you wish and looks fine, nothing gets pushed to the left off-screen, as in the image below, which is how we want all our "Notes" cells formatted.

I've gone through all your docs on
 and
 and tried to find some prop or such that would fix this situation and have not been able to find anything that will shrink the cell back down to its desired size if the user put in a URL with HTML escape characters. Is there any way to fix this on my end? Please advise. Thank you in advance for your attention to this.

It's how tables work and it's not related to SUIR as I see. Please check existing options for cells alignment:
https://react.semantic-ui.com/collections/table/#variations-fixed
https://react.semantic-ui.com/collections/table/#variations-fixed-line
https://react.semantic-ui.com/collections/table/#variations-unstackable
If it will not help, please add CodeSandbox example, it will allow to see the problem.

Hello @layershifter - thank you. I also found, later, that the CSS overflow-wrap: break-word; for the table cell works also. Thank you for your response.


Using ListView to load items efficiently

Hey I had some performance issues in my app so I looked into the Flutter Performance tab in Android Studio. Inside Rebuild Stats it shows some Performance tips, like in my case Using ListView to load items efficiently. But this tip is kind of weird because I already use a ListView.seperated. I also couldn't find any documentation about what exactly is meant. My code:
ListView.separated(
        itemBuilder: (context, index) => ImageListTile(
              onTap: () {
                controller.selectItem(state.requestData[index]);
              },
              isSelected: state.requestData[index] == selectedItem,
              news: state.requestData[index],
            ),
        itemCount: state.requestData.length,
        separatorBuilder: (_, __) => const Divider(),
      )

class ImageListTile extends StatelessWidget {
  final News news;
  final GestureTapCallback onTap;
  final bool isSelected;

  const ImageListTile({
    Key key,
    this.news,
    this.onTap,
    this.isSelected = false,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    bool isDarkTheme = Theme.of(context).brightness == Brightness.dark;
    Color selectedColor = isDarkTheme ? Colors.black12 : Colors.grey[200];

    return InkWell(
      onTap: onTap,
      child: DecoratedBox(
        decoration: BoxDecoration(
          color: isSelected ? selectedColor : Colors.transparent,
        ),
        child: Padding(
          padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 16.0),
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: <Widget>[
              Expanded(
                child: Padding(
                  padding: const EdgeInsets.only(right: 16.0),
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: <Widget>[
                      Text(
                        parseHtml(news.title ?? ''),
                        style: TextStyle(
                          fontSize: 20.0,
                          fontWeight: FontWeight.bold,
                        ),
                      ),
                      const SizedBox(
                        height: 4,
                      ),
                      Text(
                        news.date,
                      ),
                    ],
                  ),
                ),
              ),
              news.imageUrl != null
                  ? ClipRRect(
                      borderRadius: BorderRadius.circular(2.0),
                      child: OKImage(
                        url: news.imageUrl,
                        width: 115.0,
                        height: 80.0,
                        fit: BoxFit.cover,
                        loadingWidget: Container(
                          color: Colors.grey[200],
                          width: 115.0,
                          height: 80.0,
                        ),
                      ),
                    )
                  : Container(
                      width: 100.0,
                      height: 100.0,
                    ),
            ],
          ),
        ),
      ),
    );
  }
}

Thanks for any help. And hoepfuly better docs.

@The-Redhat , do you have low fps when scrolling ? I have low fps problem in listview in the old devices (which when using native android app, scroll is very smooth)

@x4080 I haven't noticed low fps while scrolling on older devices.

Hi @The-Redhat,
Can you please confirm if you still experience performance issues on latest Flutter version (eg: dev, master) ?

No I didn't experience performance issues lately.


Do not replace location without host

addresses #40

@waterlink n.b. the first commit with the name fix -- is that right?

It's great!

🆒


🔴 Summary:
The "Flip a Coin" game allows users to experience a random coin flip through a simple web interface. The user clicks a button, and the game generates a random result, providing instant feedback with a visual representation of the coin flipping.
The project is a lightweight and fun web-based application designed for quick entertainment. The user interface includes a button to trigger the coin flip, a visual display of the coin, and a result message indicating whether the flip resulted in "Heads" or "Tails." The project aims to teach beginner developers about basic JavaScript functionalities, randomness generation, and DOM manipulation. It’s also a great way to get familiar with user interactions and improve responsive design with CSS.
Participant Role (Specify the Open Source Program name, e.g., GSSOC, Hacktoberfest, etc.):
Contributor GSSOC -EXTD,Hacktoberfest

already present in project


Fix initial toggle state of columns in context menu

Reference Issues or PRs
Fixes #27
What does this implement/fix?
Put a x in the boxes that apply

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds a feature)
[ ] Breaking change (fix or feature that would cause existing features not to work as expected)
[ ] Documentation Update
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build related changes
[ ] Other (please describe):

Testing

[ ] Did you test the pull request locally?
[x] Did you add new tests?

Tested on Binder:

bot please update snapshots


PKI module fails to import (Windows Server 2022 version 20240128)

Description
My team has production Azure DevOps pipelines which run on the Windows Server 2022 image. In the pipeline, we run PowerShell commands. After our pipelines began consuming the latest version of this image (20240128.1.0), our pipelines consistently fail, and we see the following error:
##[error]Import-PfxCertificate: The 'Import-PfxCertificate' command was found in the module 'PKI', but the module could not be loaded. For more information, run 'Import-Module PKI'.
We were unsuccessful in reproducing this issue. Running just the Import-PfxCertificate command in a pipeline on this image does not produce an error. However, we still think the new version of the image is the culprit, since reverting to the previous version of this image (20240122.1.0) mitigated the issue for us.
Happy to provide more detail as we can. Thanks for any help.
Platforms affected

[x] Azure DevOps
[ ] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] macOS 13
[ ] macOS 13 Arm64
[ ] macOS 14
[ ] macOS 14 Arm64
[ ] Windows Server 2019
[x] Windows Server 2022

Image version and build link
Experiencing issue in version: 20240128.1.0

Unable to provide build links as our product is not public.
Is it regression?
Yes - works fine with version: 20240122.1.0
Expected behavior
We expect PowerShell to be able to import necessary modules as usual.
Actual behavior
PKI module is inexplicably unable to be loaded.
Repro steps
We were unable to reproduce this in a simple pipeline based on the image. In a pipeline only running Import-PfxCertificate, all PowerShell modules were loaded just fine. Perplexing.
Since reverting to the previous version mitigated the issue in our production pipelines, we still feel this is a bug in the new image.

Hello @jlperkins, This is a very strange situation, since the latest image version you are using should be 20240204.1.0.  https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md
Any way we will check the Import-PfxCertificate  command behavior on the Azure DevOps runners.

Hello @jlperkins, I have tested the behavior of Azure PowerShell PKI module and could not reproduce the issue. The PKI module is a standard one so it is hard to imagine it is missing. The "Import" step was tested in both modes of pwsh: true/false
I am going to close the issue since it could not be reproducible.
If you have any other questions feel free to reach us.
Below you can find my test pipeline.
pool:
  vmImage: windows-2022

steps:
- task: PowerShell@2
  displayName: 'Create and export cert'
  inputs:
    targetType: 'inline'
    pwsh: true
    script: |

      $PSVersionTable.PSVersion.ToString() # get PS version
      Import-Module PKI -UseWindowsPowerShell # this will create WinPSCompatSesion PS Remoting session
      $s = Get-PSSession -Name WinPSCompatSession

      # Snippet to create and export test cert.
      icm $s {$TestCertificate = New-SelfSignedCertificate -Subject 'TestCertificate' -KeyExportPolicy 'Exportable' -CertStoreLocation 'Cert:\LocalMachine\My'}
      $mypwd = ConvertTo-SecureString -String '1234' -Force -AsPlainText
      icm $s {Export-PfxCertificate -Cert $TestCertificate -FilePath C:\mypfx.pfx -Password $using:mypwd | Out-Null}

      get-childitem -path c:\ # To check that .pfx file was created

- task: PowerShell@2
  displayName: 'Import cert'
  inputs:

    targetType: 'inline'
    pwsh: false
    script: |
      # Snippet to import previously created cert.
      $mypwd = ConvertTo-SecureString -String '1234' -Force -AsPlainText
      $params1 = @{
          FilePath = 'C:\mypfx.pfx'
          CertStoreLocation = 'Cert:\LocalMachine\Trust'
          Password = $mypwd
      }
      Import-PfxCertificate @params1


Implement transfer_all in Balances Pallet

This extrinsic allows a user to send their full transferable balance, to a recipient account.
Can be helpful when trying to transfer a user's full balance, taking into account fees, and leaving no dust behind.
closes https://github.com/paritytech/substrate/issues/8696

/benchmark runtime pallet pallet_balances

/benchmark runtime pallet pallet_balances

/bench runtime pallet pallet_balances

bot merge


Switch to new I/O

Three and a half hour of work, but it's there!
I started from scratch, as this approach was probably easier than rebasing #321
It adds a dependency to the byteorder crate, which provides equivalents to read_le_u16 and similar.

:balloon: @tomaka You are awesome!

I'm using this branch for my local videogame project, and everything seems to work fine.

Then let’s merge it, if something breaks we should think about better testing.
But before merging: Did we already push the latest old_io code to crates.io?

The only thing that hasn't been uploaded to crates.io is #340 (touches only the README, doesn't really matter on crates.io)
I'd suggest bumping to 0.3 as it's a breaking change.

although we are allowed to do anything we want in 0.x that sounds sensible

Let's merge!

So what's the deal with the version number? 0.2.5 or 0.3.0?

We can change it to 0.3.0.

I didn't understand this:

although we are allowed to do anything we want in 0.x that sounds sensible

@nwin I guess you meant that breaking changes are expected in 0.x, but since people could be having "0.2.*" in the Cargo.toml there is no reason not to go 0.3 with a such big change?

 For some reason I thought @nwin was against 0.3. Nevermind.
Let's publish 0.3.0 then?

@tomaka If you got it working on your rustc then please do it!

Done


Fixed #33965 -- Improved file-like object example of ImageField in docs.

https://code.djangoproject.com/ticket/33965

@mgax Thanks :+1:


Openmaint with empty database

Is it possible to create an Openmaint docker container with an empty database? Thank you in advance.

It's there, just run the image with other template:
docker run --name openmaint_app --restart unless-stopped -e CMDBUILD_DUMP="empty.dump.xz" --link openmaint_db  -p 8090:8080 -d itmicus/cmdbuild:om-2.1-3.3-b


feat(page): add allCookies

add AllCookies function which returns all the cookies in the cookie jar

We'll need to enhance DevTools protocol first to make it possible to query cookies per browser context; please see #645.
If you want to try contributing to DevTools protocol, please see Contributing To DevTools Protocol.
Closing this for now.


{".apng", "image/apng"}

Added APNG. See https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types#APNG and https://wiki.mozilla.org/APNG_Specification.

Thank you for your contribution!


Preserving plugin settings

Fixed plugin settings get deleted on disable
I tried using plugin.settings.json to put my own settings, but if you disable and enable the plugin, the settings get wiped out. Turns out that HunterPie loads the settings via JsonConvert.DeserializeObject<PluginSettings>(...), but Newtonsoft doesn't honor subtype json... It wouldn't know how.
This works around that by treating the settings are JSON, extracting PluginSettings for whatever HunterPie does with it, and before saving, it merges the original JSON with the potentially changed setting(s).
There are tests for the helper class that I added.
Related issues
In my plugin's repo I have these open:
https://github.com/SupaStuff/MHWItemBoxTracker/issues/13
https://github.com/SupaStuff/MHWItemBoxTracker/issues/14
This change fixes them. Alternatively, I could just write to a different file, but this is better.

Uh, plugin.settings.json purpose is to be a way HunterPie can manage your plugin without messing with your plugin's user config, it should not be used by your plugin as a config file.


Can the Shark_tank cache files be in the local directory?

I see that over 27GB of shark's cache files are going into my user directory which is on a different drive that I use for windows and is filling up the drive.
It would be nice to put the cached version on the same drive / location or be asked where to put it.
I can see this being a big issue for non-technical users who have no good way of finding these files and are having similar issues

Hi @Muramas
you can use the --local_tank_cache=<path> flag to store the cached files in the appropriate location.
Do try this an update if that is not working for you.
Thanks

Was able to check it out and it worked. It might be good to add this to the main page information.
Thanks,

Where to set this flag?


virt-launcher, libvirt: Free (all) domain resources (fix leaks)

What this PR does / why we need it:
Not all instances of the libvirt domain are released (free).
In turn, this causes memory leaks during the lifetime of the
virt-launcher.
Whenever a domain is retrieved from the libvirt-go package
successfully, it is now freed using a "defer".
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:
NONE

/cc @vladikr @rmohr

Not ready yet, need to massage it a bit more.

/test all

/retest

I think this test:
[Serial][rfe_id:393][crit:high][vendor:cnv-qe@redhat.com][level:system] VM Live Migration Starting a VirtualMachineInstance with setting guest time [test_id:4114]should set an updated time after a migration

has an issue  now.

I think this test:
[Serial][rfe_id:393][crit:high][vendor:cnv-qe@redhat.com][level:system] VM Live Migration Starting a VirtualMachineInstance with setting guest time [test_id:4114]should set an updated time after a migration

has an issue now.

Yes, thanks.
I suspect that another go-routine is hiding in the call stack. Investigating.

/retest


Illegal reflective access when recursively comparing XMLGregorianCalendar

assertThat().usingRecursiveComparison() on XMLGregorianCalendar objects triggers an illegal reflective access operation
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.assertj.core.util.introspection.FieldUtils (file:/home/lc22j176/.m2/repository/org/assertj/assertj-core/3.24.2/assertj-core-3.24.2.jar) to field com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl.orig_second
WARNING: Please consider reporting this to the maintainers of org.assertj.core.util.introspection.FieldUtils
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

assertj core version 3.24.2
java 14
junit-jupiter-api version 5.8.2

Test case reproducing the bug
  void AssertjXMLGregorianCalendarTest() throws Exception {

    XMLGregorianCalendar in = DatatypeFactory.newInstance().newXMLGregorianCalendar();
    XMLGregorianCalendar out = DatatypeFactory.newInstance().newXMLGregorianCalendar();

    assertThat(out).usingRecursiveComparison().isEqualTo(in);
  }

I'd say we also consider javax for Java types detection in DualValue.
@assertj/core do you agree?

Yes, I think anything that AssertJ won't be able to introspect because of java policy to restrict reflective access should be compared by their equals method since there is not much else we can do.
In this case, I could fix the issue by adding com.sun.* to java types detection (javax did not solve the issue but should be added too).

@lcharrie in the meantime, you can get rid of the warning by telling the recursive comparison to compare XMLGregorianCalendar with their equals method:
  void AssertjXMLGregorianCalendarTest() throws Exception {

    XMLGregorianCalendar in = DatatypeFactory.newInstance().newXMLGregorianCalendar();
    XMLGregorianCalendar out = DatatypeFactory.newInstance().newXMLGregorianCalendar();

    assertThat(out).usingRecursiveComparison()
                   .withEqualsForType(Objects::equals, XMLGregorianCalendar.class)
                   .isEqualTo(in);
  }


Becoming an Open Source CNA - Node.js ecosystem

The Node.js Security Working group has been discussing about becoming a CNA for the Node.js ecosystem (https://github.com/nodejs/security-wg/issues/97).
It seems that the form is not available yet. What is the best way to move forward here?
We already have a CNA experience for Node.js itself (see https://github.com/nodejs/security-wg/blob/master/processes/cve_management_process.md) and we can easily create and maintain a similar policy for the ecosystem. When we asked about creating a similar CNA, we were redirected here.
The scope of such CNA would fit the definition we have of a package (https://github.com/nodejs/security-wg/blob/master/processes/third_party_vuln_process.md#definitions): "a package is a module available for use with Node.js and hosted on the npmjs.org repository".

I think DWF is being folded back into mitre at this point http://cve.mitre.org/news/archives/2019/news.html#March072019_CVE_Program_Root_CNA_to_Assume_DWFs_Open_Source_Product_Coverage_Responsibilities_Beginning_March_7

dwf is closing up shop.


Fonts preloading for Spark

This is good for the initial commit.  We will be moving the Spark api to the platform layer in a future commit.


Release notes does not tolerate prerelease versions

What You Are Seeing?
Release notes does not tolerate prerelease versions
What is Expected?
Allow prerelease version in release notes
What version of Cake are you using?
0.20
Solution
The problem is in this regex here => https://github.com/cake-build/cake/blob/08907d1a5d97b66f58c01ae82506280882dcfacc/src/Cake.Common/ReleaseNotesParser.cs#L25
To fix this just use the following regex:
(?<Version>\d+(\s*\.\s*\d+){0,3})(?<Release>-[a-z][0-9a-z-]*)?
Source => https://github.com/NuGet/NuGet2/blob/2.13/src/Core/SemanticVersion.cs

Yes, go for it!

Hello again! Looking for some feedback.
As the previous asignee might have noticed the parse-method from the Version-class is what's causing problems, and not the regex! The regex functions perfectly fine but the parse-method cannot parse system versions with preleases number which contain characters and not simply digits, i.e. 1.0.0-alpha1 or 1.0.0-beta1 makes the method thrown an error.
Now the question is, should the ReleaseNoteParser-class try to change alpha or beta to some numerical value or does it make sense to introduce a NuGeT package which has a parser for this type of releases? Since this is my first time contributing to this project I'd like to get feedback since an import might be something you'd not want to have 😺

@devlead Just by skimming through it seems to fix the problem with having prerelease in the version, would you like me to introduce this class into the code base or since it's yours would you prefer to do it?
Or should this issue be removed and a new one for replacing the Version-class with your SemanticVersion-class?

Start with adding a new SemVersion property and use that to populate Version property.


[Docs] Hardcore training master chef secret note

Related Issues

This is already deployed https://docs.vuestorefront.io/guide/cookbook/checklist.html
closes #
Short Description and Why It's Useful

Screenshots of Visual Changes before/after (if There Are Any)

Which Environment This Relates To
Check your case. In case of any doubts please read about Release Cycle

[ ] Test version (https://test.storefrontcloud.io) - this is a new feature or improvement for Vue Storefront. I've created branch from develop branch and want to merge it back to develop
[ ] RC version (https://next.storefrontcloud.io) - this is a stabilisation fix for Release Candidate of Vue Storefront. I've created branch from release branch and want to merge it back to release
[ ] Stable version (https://demo.storefrontcloud.io) - this is an important fix for current stable version. I've created branch from hotfix or master branch and want to merge it back to hotfix

Upgrade Notes and Changelog

[x] No upgrade steps required (100% backward compatibility and no breaking changes)
[ ] I've updated the Upgrade notes and Changelog on how to port existing Vue Storefront sites with this new feature

IMPORTANT NOTICE - Remember to update CHANGELOG.md with description of your change
Contribution and Currently Important Rules Acceptance

[ ] I read and followed contribution rules

Seems like 'engines' : { node: "10.0" } in ./docs/package.json have caused travis-ci to fail a build which was a compulsory statement for zeit now deployment because node 8.0 is not supported now.
I mean, that must be not a problem?


Automated tests on real devices

#12
#24

We need to create shell commands for Kura, so we can fully automate deployments of Kura modules to RPi devices.

Let's reopen this when tools are ready.

perso I use https://www.weaved.com/ to connect to my RPi zero withour pb ;-)
let's try it too ;-)

We can use Brno hosting center for this purpose. That would be preferable over using some 3rd party company services :) .


Update benchmarks to include non-canonical CBOR encoding

Encoding benchmarks only use canonical CBOR, which is slower.  Add benchmarks for the faster encoding.

Close by commit 01fbb350bd5c2eb9d42e047b919367e7815b1fdf.


Add low exergy (3for2) emission system to Demand calculation

Currently, there are four emission system for cooling (none/ radiant panels/ centralized AC/ mini-split AC). But it is not possible to have a combination of these systems.
A low-exergy emission system which consists radiant panels, dehumidification of indoor air, and ventilation should be implemented.
Support from @gabriel-happle  will be needed.

sure!

Implement the calculation procedure with a generic control strategy designed by SH&GH (see workflow).
The script should calculate sensible & latent cooling loads from the 3for2 system.
Need to add additional variables to tsd. (e.g. Qsen,radiator)

CEA_new_AC_20170727.png


Javascript Classes...when using multiple calls to jerry_eval

Hi,
I've just started using JerryScript, it looks great! I have a question around Javascript classes though...
The following executes as expected when running it with jerry_eval...
class Foo {
   bar() {
     print('Hello World!');
   }
};

var foo = new Foo();
foo.bar();

However, when calling jerry_eval to create the class......
class Foo {
   bar() {
     print('Hello World!');
   }
};

...and then calling jerry_eval to use the class fails...
var foo = new Foo();
foo.bar();

Perhaps this is a scope thing? or deliberately designed this way to minimise memory usage?
Thanks in advance!

Hi Dave!
This is indeed scoping related, there are two key parts to this.
The first thing is that classes are lexically scoped. This is similar to how variables declared with let work, they can only be referenced until the lexical environment they were declared in goes out of scope.
class Foo {};

{
  class Bar {};

  // Both Foo and Bar are usable here
}

// Foo is usable, Bar will throw a ReferenceError

Secondly, eval calls are always evaluated in a new lexical environment, which is destroyed once the eval call is finished.
In the first example, both the class declaration and constructor call are in the same lexical environment that was created by the eval call, and so Foo can be resolved.
In the second example however, the lexical environment where the class was declared will go out of scope once the first eval call is finished. The second eval will be unable to reference any lexical variables from the previous lexical environment. It would roughly be equivalent to the following code:
// First eval
{
  class Foo {};
}

// Second eval
{
  new Foo();
}

According to the detailed description above the original issue seems resolved to me.


maybe don't put the version number in every single file?

The sources have headers like this:
/*
 * Amazon FreeRTOS V1.4.1
 * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved
...

Which results in diffs like https://github.com/aws/amazon-freertos/commit/8b6f1577b7da0712c6b8e3fdde2c18fbf1e6cf69 . If you're looking for what changed in that release, good luck!
In that particular release, there were 3 meaningful changes among 246 touched files:
~/r/r/amazon-freertos ((v1.4.1))> git show v1.4.1 --oneline --stat |grep -v " 2 "
tag v1.4.1

Version 1.4.1
8b6f157 Release Version 1.4.1
 CHANGELOG.md                                                   | 10 ++++++++++
 lib/ota/portable/pc/windows/aws_ota_pal.c                      |  8 ++++----
 tests/pc/windows/common/config_files/aws_test_ota_config.h     | 10 +++++-----
 246 files changed, 262 insertions(+), 252 deletions(-)

And in case you were under the illusion that comment headers like these can be accurately maintained,

There are three different versions apparently present:

~/r/r/amazon-freertos ((v1.4.1))>  grep "amazon freertos v1" -RIih . |sort |uniq -c
   1  * Amazon FreeRTOS V1.0.2
  85  * Amazon FreeRTOS V1.1.1
 102  * Amazon FreeRTOS V1.4.1

A bunch of copyright dates haven't been updated to 2018:

~/r/r/amazon-freertos ((v1.4.1))> grep copyright -RIih . |grep -i amazon |sort |uniq -c
   1                         Copyright © 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
   1                         Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
   2   * Copyright (C) 2018 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
 484  * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
 251  * Copyright (C) 2018 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
   1 *  Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
   2 // Copyright (C) 2018 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
  37 ; * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
  50 Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
  27 Copyright (C) 2018 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
   1 Copyright (c) 2017 Amazon Web Services

I can understand if you are required to include the license and date in comment headers, but is the version number really necessary?
In order to prevent this from being just a rant, I'll offer a suggestion: you could slightly reduce the pain on developers if you update the headers in a separate commit, not squashed together with code changes.

Hi Jrr,
I’m sorry for the difficulty that the versioning has caused.
I’d like to explain the philosophy behind it so that the changes seem a little less arbitrary (acknowledging that this will not change the large number of files in each diff!).
•	Whenever a the version of Amazon FreeRTOS is changed, all files in the demos folder have their version number incremented to match the Amazon FreeRTOS version, regardless of whether that particular file was changed or not.
•	The library files are versioned separately than the main Amazon FreeRTOS version--- these files are only updated if a file in the library is modified.
•	Finally, library portable layer files are versioned independently, and will only be incremented if the portable file is modified.
The top bullet explains why the diff you have pointed out includes so many files, and the second 2 bullets are (at least part of) the reason that there are many different versions attached to different files in the same release.
A version number is included in each file for a couple of reasons:
•	One is that FreeRTOS is distributed via many different channels and vendors beyond Github.   Often the entire code base is not distributed, just selected libraries, and not all of these distribution channels provide a version history or context.
•	Historically some application writers have performed mix-and-match updates where some libraries are updated but not all, and having the version number allows support to more quickly determine what code combination is being used by the application.
Thanks for your suggestion – I will pass on your idea of doing 2 commits (one for the content changes and one for the header/version changes) on up the chain.
Best,
Alexa

Thanks for the detailed response, Alexa. Two commits would help a lot.


Make properties also show associated types

Add ChangeLog.md
Modify Introduction to Widgets.ipynb to reflect changes to properties

@gibiansky I added a ChangeLog, taking inspiration from stack.


PublicClientApplication->getAllAccounts() not considering config.auth.authority

[ ]<EMAIL_ADDRESS>or<EMAIL_ADDRESS>[x ]<EMAIL_ADDRESS>and<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>
Description
We create our authApp-instance and provide the tenant (config.auth.authority)
Upon browser refresh we use getAllAccounts() and then aquireTokenSilent() in order to figure out whether the user is already logged in.
An issue come up because we have different Azure Active Directories and users sometimes are logged into more than one (i.e. when working with different apps).
Then getAllAccounts() returns more than one account because it doesn't consider the tentant.
Short sample implementation:
const config = {
    ....
    auth: {
        ....
        authority: TENANT1_ID,
    }
};

const authApp = new PublicClientApplication(config);

authApp.handleRedirectPromise().then(result => {
    if(!result) {
        const accounts = this.authApp.getAllAccounts();

        if(accounts.length === 0) {
            // not logged in
            return;
        } else if (accounts.length > 1) {
            // TOO MANY, THE ERROR HAPPENS HERE
            return; // :(
        }

        // there is an account -> try to get a token
        const account = accounts[0];
        const scopes = []; // could be something else..

        const authResult = await authApp.acquireTokenSilent({ scopes, account });

        // etc.
    }
})

Expected
getAllAccounts() should just return the accounts that the PublicClientApplication is configured with, and not unrelated ones as well.
Please let me know if you need more info or if I can help with anything else.
Regards,
Daniel

@daniel-seitz The definition of an account is tied up as much as with the tenantId as with the user. msal should treat a user logged in two different directories as two different accounts. In your case, since you know the tenantIds in advance and get all the accounts with getAllAccounts(), can you try filtering based on the tenantId?
We are working on a feature that adds getAccountsByTenantId() (cc @pkanher617) and that would be a better suited API. Currently it is work in progress though.

@sameerag thank you for your quick and to the point answer.
This is what I thought of as well, at the same time I would argue that when I new up the object with a certain config, I would expect that this object adheres to the config and wouldn't get things from outside of that boundary.
I don't know if there is a use-case to really get All accounts, from my perspective - yes - getAllAccounts seems to be intended to get ALL accounts and changing this part might bring unwanted sideeffects.
At the same time I think it would be a more suitable design to just retrieve the one that's given in the config (I assume the clientId indeed is being respected). That would feel cleaner and more what I'd expect from an object oriented perspective.
For now, I will implement the filter as you mentioned. Please let me know if you decide to change the behaviour.
This issue can be closed afterwards.
Regards,
Daniel

@daniel-seitz getAllAccounts() is intended to serve the purpose of literally getting all the accounts in the cache at a given point of time.msal-node and msal-browser currently support multiple accounts to be logged in, hence we do not intend to change this behavior. What you are asking seems to be rather getCurrentAccount() which is the application context of the msal-browser at the time of execution, and may be that can be implemented but I am not clear if it can be done simply. I will update on this thread once I understand the implementation cost.
cc @pkanher617

@sameerag no worries.
I am implementing the workaround - if I may call it like that - since this already serves the purpose.
Hence, it would be a welcomed feature, at the same time: no hurry in implementing this.
Thank you.

@daniel-seitz The tenant profiles feature will be able to help you to getAccountByTenantId and that is in progress. Since you can always track what your current account is, getAccountByHomeId or getAccountByLocalId may also serve your purpose.
Since an Account is tied up with IdToken and not configuration and we do not manage a currentAccount, and we do not plan to at this point.
Closing this issue as tenant profiles is already tracked as a feature. Do let me know if you have any concerns and we can revisit as needed.


Uses the PnP API to derive a safe cache folder

When installed under Yarn w/ PnP, packages are mounted as readonly zip archives. As a result, the remark caching logic that currently tries to locate the node_modules from __dirname results in the artifacts being written into the (read-only) archive, thus failing.
This diff fixes that by checking whether the current process operates under PnP mode, and using the PnP API in that case (which is a sounder way to get the project root anyway).

I agree, this all makes sense - thanks, will make a build

Wait I made a typo (not bc-breaking, it just prevents my change to be applied 🤦♀)

hahaha :D


The dimenstion generator.settings requests the non-existent parameter "name".

reported from twitter

Isn't name a thing necessary for inlined settings? I'm not too familiar with worldgen though. :eyes:

SPGoding is correct. You need to specify name when you don't put the noise settings in its own file.

So if the noise settings are in that file, I don't think you need a name.... am I saying something irrelevant?

From what I understand, you don't need name if the setting is put under data/<namespace>/worldgen/noise_settings/**.json. However, you do need a name specifying the resource location of this setting if you inlined (i.e. put) it in the dimension file.

Working as intended


How can I send an image data when requesting an Execute session?

How can I send an image data when requesting an Execute session? If I send a numpy array of images, there will be a body limit error

Hi, @gzxy-0102
I would like to know the following information to troubleshoot the problem.

What is the size of your numpy array?
Which protocol did you use, HTTP/HTTPS or TCP?
What did the error message say?

Hi, @gzxy-0102 I would like to know the following information to troubleshoot the problem.

What is the size of your numpy array?
Which protocol did you use, HTTP/HTTPS or TCP?
What did the error message say?

Hi, @kibae
I didn't record the size of numpy, but I can provide a picture
I am using the HTTP protocol
The error message is that the body has exceeded the limit

@gzxy-0102
There was a payload size limit for HTTP/HTTPS requests. I resolved this issue by adding the --request-payload-limit option. It can also be set using the environment variable ONNX_SERVER_REQUEST_PAYLOAD_LIMIT. The unit is in bytes.
https://github.com/kibae/onnxruntime-server?tab=readme-ov-file#options
Coincidentally, onnxruntime has been updated to version 1.18.1. I have prepared a new Docker image accordingly. If you are using the Docker image, you can pass the environment variable with an option like -e "ONNX_SERVER_REQUEST_PAYLOAD_LIMIT=xxxxxxxxxxxxxxx".
Please let me know if you encounter any issues. Thank you.

@gzxy-0102 There was a payload size limit for HTTP/HTTPS requests. I resolved this issue by adding the --request-payload-limit option. It can also be set using the environment variable ONNX_SERVER_REQUEST_PAYLOAD_LIMIT. The unit is in bytes. https://github.com/kibae/onnxruntime-server?tab=readme-ov-file#options
Coincidentally, onnxruntime has been updated to version 1.18.1. I have prepared a new Docker image accordingly. If you are using the Docker image, you can pass the environment variable with an option like -e "ONNX_SERVER_REQUEST_PAYLOAD_LIMIT=xxxxxxxxxxxxxxx".
Please let me know if you encounter any issues. Thank you.

@kibae Thank you so much. I whill try it later

Hi @kibae
It can now send images, but when I requested the API to register the model, the request to register the model kept running

Hi @kibae It can now send images, but when I requested the API to register the model, the request to register the model kept running

Hi @kibae It can now send images, but when I requested the API to register the model, the request to register the model kept running

Hello! Could you please send me the code to send the image? I'm interested in its function of converting from image to JSON

Hi @kibae It can now send images, but when I requested the API to register the model, the request to register the model kept running

Hello! Could you please send me the code to send the image? I'm interested in its function of converting from image to JSON

Hi @kibae It can now send images, but when I requested the API to register the model, the request to register the model kept running

Yes, I have exactly the same error, in the end I just refused logging in docker volumes and just watch them through exec so that they don't spam endlessly


Fixes and additions to the Swedish localization

Continuing to add more localization as I go along.

Thanks, @Lego3!


Secret/sap-btp-operator-clusterid INITIAL_CLUSTER_ID is misleading

Nowdays sap-btp-service-operator creates an adhoc cluster id, if one wasn't provided. This value is stored in Secret/sap-btp-operator-clusterid INITIAL_CLUSTER_ID and gives the impression that this is something initial.
However, if the cluster id WAS defined - that cluster id is also in INITIAL_CLUSTER_ID even though it's the actual cluster id - not "initial".
As a result, the value is in two places now:

Secret/sap-btp-operator-clusterid > INITIAL_CLUSTER_ID
ConfigMap/sap-btp-operator-config > CLUSTER_ID

Having the value existing in two places is a source of confusion.

Hi @pre
We store the same value under two keys to ensure that the cluster ID remains unchanged during operator updates. This resolves issues previously experienced by customers where the cluster ID changed after an update, leading to content mismatches.
Best regards,
Naama

OK


Padding should be only between stars and other improvements

See #3

Thanks a lot. I will make a release within few days.


Add Support for Anthropic Messages

Wanted support for the new Anthropic models on our on-prem version of BricksLLM. This seems to be functioning correctly to support the /messages endpoint that allows access to the Claude 3 models.

Thanks for the update. Taking a look

Another file called handler in message package also needs to get updated for counting the number of tokens from streaming responses.
For the anthropic text completion, we store the content of streaming responses in a field called  content and do the token counting asynchronously. You can test by checking whether the event generated by the streaming request contains the right completion_token_count inside postgres

do you guys need bedrock anthropic integration as well?

Anthropic's documentation indicates that you don't need to count tokens while streaming messages since they include the token counts as part of the output unlike OpenAI...is setting the completion token count here not what matters?
We don't need Bedrock support at this time, we use BricksLLM as a sort of Sandbox / Playground for developers rather than for any actual applications.

Anthropic's documentation indicates that you don't need to count tokens while streaming messages since they include the token counts as part of the output unlike OpenAI...is setting the completion token count here not what matters?
We don't need Bedrock support at this time, we use BricksLLM as a sort of Sandbox / Playground for developers rather than for any actual applications.

I see. Ignore what I said. I will proceed to testing the functionality

released a new docker image v1.14.0 for this


This makes encoded data more compact and structs are easier to use.
	type T struct {
		_ struct{} `cbor:",toarray"`
		A int      `cbor:",omitempty"`
		B string   `cbor:",omitempty"`
	}

Special field "_" is used to specify struct level options, such as "toarray".  Any value of T type is encoded as array of 2 elements.  "omitempty" is disabled by "toarray" to ensure that the same number of elements are encoded every time.
If "toarray" is omitted, "omitempty" works just like encoding/json.
I came across this at https://github.com/oasislabs/oasis-core/pull/2183/commits/ade6a1bbfe6f40b5c39f8f0796b9093081709943. @yawning has the best commit messages!

Nice, thanks!


Error on ol.format.KML().writeFeatures() for geometryCollection

Following the WKT example from the latest OL3.1.1 release, I was trying to batch convert a large number of WKT's to KML. However I noticed that the GEOMETRYCOLLECTION's are failing for some reason. Could it be that the writeFeatures() was never implemented for that subset of features?
 To bring this issue up to date, format.KML will read in certain types of KML MultiGeometry as a GeometryCollection. However, if you try and write any feature with a GeometryCollection, it fails with Cannot read property 'call' of undefined. This is because there is currently no code, and GeometryCollection is not listed in ol.format.KML.GEOMETRY_TYPE_TO_NODENAME_ or ol.format.KML.MULTI_GEOMETRY_SERIALIZERS_.


mercurial: move tests to passthru.tests

Motivation for this change
They're very expensive to run, especially if you don't have that many
cores, and can sometimes be a bit flaky (it looks like their CI doesn't
run things under the same constraints as we tend to).
Move them to a separate derivation, and make them test the actual
installed output rather than the local copy.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@ofborg build mercurial mercurial.passthru.tests mercurialFull mercurialFull.passthru.tests


update slf4j to avoid dependency to outdated (unmaintained) log4j (CVE-2022-23307)

The vulnerability CVE-2022-23307 won't be fixed in log4j 1.2.x anymore. The reload4j tries to mitigate some vulnerabilities in 1.2.x and should be a perfect drop-in replacement. The slf4j 1.7.36 (https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12/1.7.36) uses the latest reload4j with the most severe issues mitigated.
This is just a first step before removing log4j 1.x completely, but should first give a clean plugin.

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

@Stift,
Bamboo Artifactory plugin 3.2.7 is released. This version includes this change.
We'd appreciate your feedback on that.


log function is broken

Description

The logging is just broken. Like, enough said. Missing log messages.
Steps to reproduce
Run the follow when the current working directory is not a Reveal.js repo clone.
reveal-init -d . -c

Missing log messages in the temporary log file. These log messages do get displayed
in stdin, however.
Environment

Program version: master (after 2.1)
Shell interpreter: Bash

Fixed! (8dd6166)