Feature Request: Add shapes to Slide Master

Hello!
Sometimes we may need to customize the Master Slide to provide a really custom presentation, changing the background, a client's logo, include some fixed text, etc. Although we can insert this background and logo slide by slide, it is inefficient, and not so elegant...
I could see some workarounds suggesting replacing images in the master slide from a previous model (I could not make it work, it is in another thread), but it still requires a previously structured base presentation. The ideal is to be able to freely create this slide master runtime, from a totally blank presentation (including a blank master).
Trying to insert a shape using the command below returns an error: "AttributeError: 'MasterShapes' object has no attribute 'add_picture'", informing that it is not implemented:
prs = Presentation()
slide=prs.slide_master
img = slide.shapes.add_picture(image1, left, top, width, height)

I think that technically it is possible, considering Powerpoint specs because using Delphi I can customize the master slide simply adding shapes. It has some wrapper components that encapsulate some Microsoft APIs and there are working commands like this:
PPT.SlideMaster.Shapes.AddPicture(image1, 1, 1, left, top, width, height);

But the idea is to do that using Python with python-pptx, because Delphi requires Powerpoint installed and running in the machine to work (the app actually open - who creates the presentation is Powerpoint itself, the API just controls it) - this makes python-pptx much more practical and powerful, especially when generating presentations in a server.
Is there some way to insert texts, pictures, and other shapes to Master Slide? If not, is it possible to implement it in a near feature?
Thanks and regards!

There is no technical reason that a slide-master object couldn't have an .add_picture() method. Plenty of PowerPoints have a logo on the slide-master, for example. The question is who wants it bad enough to sponsor it. I occasionally add features to python-pptx because I need them for a project I'm working on. Other than that, features are added by sponsorships. We've tried accepting contributed features, but basically that doesn't work for this project because the engineering standards are high and contributors, who are usually not professional developers, in general can't meet them.
If you have project budget and want to consider a sponsorship for the features you need, let me know. That's how much of the library got there.

Hello Steve,
 Thank you for your reply!

  First, congratulations and thank you very much for your work on python-pptx – great work! Makes things really very easy to use, and the possibility of generating dynamic presentations even without Powerpoint installed makes it very powerful!

I totally understand your considerations about the nature of the work, and the need for some return if developing more specific features. I’m sure that it already contains long journeys of hard work and knowledge, in benefit of a whole community!

About the feature, there is the workaround of customizing the whole base presentation for each client, instead providing the elements to be added to a blank slide-master, although it is a more manual process. As I am still exploring and learning to use the python-pptx resources, I’m trying to reproduce the tasks I used to do with Delphi, so I found this issue.

Anyway, it would be nice to have full automated control of the presentation creation process, so I’d like to ask, how much would be a proper sponsorship for this feature? I think it should be enough for now to add only pictures and text boxes* to a totally blank slide-master (blank layout, with no placeholders).

*slide_master.shapes.add_picture() and slide_master.shapes.add_textbox()
Thanks and regards,
Marcelo Carvalho.
De: Steve Canny<EMAIL_ADDRESS>Enviada em: segunda-feira, 2 de dezembro de 2019 16:03
Para: scanny/python-pptx<EMAIL_ADDRESS>Cc: mrscarvalho<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Assunto: Re: [scanny/python-pptx] Feature Request: Add shapes to Slide Master (#575)
There is no technical reason that a slide-master object couldn't have an .add_picture() method. Plenty of PowerPoints have a logo on the slide-master, for example. The question is who wants it bad enough to sponsor it. I occasionally add features to python-pptx because I need them for a project I'm working on. Other than that, features are added by sponsorships. We've tried accepting contributed features, but basically that doesn't work for this project because the engineering standards are high and contributors, who are usually not professional developers, in general can't meet them.
If you have project budget and want to consider a sponsorship for the features you need, let me know. That's how much of the library got there.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/scanny/python-pptx/issues/575?email_source=notifications&email_token=ANSD4QGWALWJVKLUHKZT46LQWVLVLA5CNFSM4JTIOS2KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFURGIQ#issuecomment-560534306 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ANSD4QFPE2W6JIUO64BSDUTQWVLVLANCNFSM4JTIOS2A .  https://github.com/notifications/beacon/ANSD4QA4SBSXVW237DPABRTQWVLVLA5CNFSM4JTIOS2KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFURGIQ.gif

I haven't tested this extensively, but changing the the inheritance of the LayoutShapes class in shapetree.py from _BaseShapes to _BaseGroupShapes appears to allow this behavior.

I haven't tested this extensively, but changing the the inheritance of the LayoutShapes class in shapetree.py from _BaseShapes to _BaseGroupShapes appears to allow this behavior.

Maybe the documentation should mention that we don't support modifying a master and saving it with the presentation. I'll use xslt or something to get what I want now that I found an issue that indicates that this sort of thing is not supported through pypptx.

Maybe the documentation should mention that we don't support modifying a master and saving it with the presentation. I'll use xslt or something to get what I want now that I found an issue that indicates that this sort of thing is not supported through pypptx.

I have - in several places - used the XML support shipped with python-pptx to extend its capabilities. I think you should consider that approach. (XSLT if you're familiar with it is great. If not it's not. And you would still need to embed it in the zip file and fix up other things in the zip file.)

I have - in several places - used the XML support shipped with python-pptx to extend its capabilities. I think you should consider that approach. (XSLT if you're familiar with it is great. If not it's not. And you would still need to embed it in the zip file and fix up other things in the zip file.)

After playing around with powerpoint my approach will be to set up a set of
slide masters in PPT, then instead of using the constructor to create a
default empty presentation, I'll use the empty presentation with my set of
masters and select the layouts I need from it. I just spent about 2 hours
figuring out that I couldn't do things like center text, remove bullets,
adjust the font size, etc. This will work better anyway because there are
effects that powerpoint does (glow in particular) that I can have it put
into the masters that no other programs seem to process correctly, and I
understand pypptx just passes all that stuff through ignoring it so it
remains in the slide presentation. I generate presentations with around 80
slides in each, using only about half a dozen backgrounds but otherwise the
same layout, so the efficient approach is to have one master per
background. Anyway it works great once understanding its capabilities and
limitations.
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Virus-free.
www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Sun, Jan 24, 2021 at 1:13 AM Martin Packer<EMAIL_ADDRESS>wrote:

I have - in several places - used the XML support shipped with python-pptx
to extend its capabilities. I think you should consider that approach.
(XSLT if you're familiar with it is great. If not it's not. And you would
still need to embed it in the zip file and fix up other things in the zip
file.)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/scanny/python-pptx/issues/575#issuecomment-766327494,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGHWKWRNXYUP5PPBKVPUN63S3P32DANCNFSM4JTIOS2A
.

After playing around with powerpoint my approach will be to set up a set of
slide masters in PPT, then instead of using the constructor to create a
default empty presentation, I'll use the empty presentation with my set of
masters and select the layouts I need from it. I just spent about 2 hours
figuring out that I couldn't do things like center text, remove bullets,
adjust the font size, etc. This will work better anyway because there are
effects that powerpoint does (glow in particular) that I can have it put
into the masters that no other programs seem to process correctly, and I
understand pypptx just passes all that stuff through ignoring it so it
remains in the slide presentation. I generate presentations with around 80
slides in each, using only about half a dozen backgrounds but otherwise the
same layout, so the efficient approach is to have one master per
background. Anyway it works great once understanding its capabilities and
limitations.
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Virus-free.
www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Sun, Jan 24, 2021 at 1:13 AM Martin Packer<EMAIL_ADDRESS>wrote:

I have - in several places - used the XML support shipped with python-pptx
to extend its capabilities. I think you should consider that approach.
(XSLT if you're familiar with it is great. If not it's not. And you would
still need to embed it in the zip file and fix up other things in the zip
file.)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/scanny/python-pptx/issues/575#issuecomment-766327494,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGHWKWRNXYUP5PPBKVPUN63S3P32DANCNFSM4JTIOS2A
.

I tried to add this function. First of all, Steve's work is really good. My main work is to copy a few functions related to the add_picture function under _BaseGroupShapes to MasterShapes. Then since MasterShapes doesn't have a _grpSP member, I changed it to a _spTree member, which shows that they actually refer to the same object during my debugging.
Next is the id problem of the image. The original code assigns a very large id to the newly added image (the maximum value of the used ID + 1), which prevents the file from being opened by powerpoint, so I wrote a new @proprety function _next_pic_shape_id in _BaseShapes class, wrote a new @proprety function _next_pic_shape_id in the CT_GroupShape class, these two functions copy the _next_shape_id and _next_shape_id in their respective classes, just modify the calling relationship and modify the conditions in the xpath function from "@id" to "//p:cNvPr/@id". Make the id of the image only calculate the shape that contains the image
The modified code is currently working fine in my environment, using
prs = Presentation(input_file)
for slide_master in prs.slide_masters:
    slide_master.shapes.add_picture(pic, left, top, width, height )
prs.save(output)

You can add images in MasterSlide

Great! Can background images also be added to masters?
On Mon, Jun 20, 2022 at 12:04 AM realwatch @.***> wrote:

I tried to add this function. First of all, Steve's work is really good.
My main work is to copy a few functions related to the add_picture
function under _BaseGroupShapes to MasterShapes. Then since MasterShapes
doesn't have a _grpSP member, I changed it to a _spTree member, which
shows that they actually refer to the same object during my debugging.
Next is the id problem of the image. The original code assigns a very
large id to the newly added image (the maximum value of the used ID + 1),
which prevents the file from being opened by powerpoint, so I wrote a new
@proprety https://github.com/proprety function _next_pic_shape_id in
_BaseShapes class, wrote a new @proprety https://github.com/proprety
function _next_pic_shape_id in the CT_GroupShape class, these two
functions copy the _next_shape_id and _next_shape_id in their respective
classes, just modify the calling relationship and modify the conditions in
the xpath function from @." to @.". Make the id of the
image only calculate the shape that contains the image
The modified code is currently working fine in my environment, using
prs = Presentation(input_file)
for slide_master in prs.slide_masters:
slide_master.shapes.add_picture(pic, left, top, width, height )
prs.save(output)
You can add images in MasterSlide
—
Reply to this email directly, view it on GitHub
https://github.com/scanny/python-pptx/issues/575#issuecomment-1160240666,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGHWKWRV5Z7CXSARHVYO77LVQA62JANCNFSM4JTIOS2A
.
You are receiving this because you commented.Message ID:
@.***>


Questions about resource_handle

Is there a way I can clear the reference of resource_handle just like std::shared_ptr::reset?
There seems no == operator overloading, how can I compare two resource_handles?
Thanks!

handle = {}?
Do you want to compare the contained objects or their addresses?bool obj = *h1 == *h2;
bool addr = std::addressof(*h1) == std::addressof(*h2);

handle = {}?
Do you want to compare the contained objects or their addresses?bool obj = *h1 == *h2;
bool addr = std::addressof(*h1) == std::addressof(*h2);

Thanks! I'll have a try!

You're welcome. I'm closing the issue but feel free to reopen it in case of problems. 👍

I want to fully simulate what std::shared_ptr does so I choose to compare their addresses. Here's what I write:
template<typename T>
bool operator==(const entt::resource_handle<T>& lhs, const entt::resource_handle<T>& rhs)
{
    return std::addressof(*lhs) == std::addressof(*rhs);
}

But this will cause an assertion if any of them has null resource assigned. Any ideas? Thanks!

Handles convert to bool. You can check if both are valid before getting the elements.

Handles convert to bool. You can check if both are valid before getting the elements.

So I just modify like this
···
template
bool operator==(const Asset& lhs, const Asset& rhs)
{
if (lhs && rhs) return std::addressof(*lhs) == std::addressof(*rhs);
if (!lhs && !rhs) return true;
return false;
}
···

Yeah, exactly, something like:
return (!lhs && !rhs) || (lhs && rhs && std::addressof(*lhs) == std::addressof(*rhs));

Hey~
Is there a way I can assign entt::resource_handle<Derived> to entt::resource_handle<Base>?
I have an abstract asset class called IAsset, and a derived class called SceneAsset. I want to implement a getter somewhere to get the appropriate asset with a virtual function like below:
virtual entt::resource_handle<IAsset> GetAsset() = 0;

But I cannot get the following to work (it says "no suitable conversion exists"):
virtual entt::resource_handle<IAsset> GetAsset() override { return m_SceneAsset; /* Its type is entt::resource_handle<SceneAsset> */ }

Thanks!

There is no built-in method to do that with the default implementation of a handle.
However, it looks like a good addition. I invite you to create a new issue for that. 🙂
That said, in the meantime you can get around it by specializing the handle class.
It's more cumbersome than a built-in solution but it can get the job done if you can't wait.

There is no built-in method to do that with the default implementation of a handle.
However, it looks like a good addition. I invite you to create a new issue for that. 🙂
That said, in the meantime you can get around it by specializing the handle class.
It's more cumbersome than a built-in solution but it can get the job done if you can't wait.

Sure, I'll wait for that!

Lets' reopen the issue to not forget about it. 👍

Can you tell me if the conversion function available on branch wip work as expected? Thanks.

Can you tell me if the conversion functions available on branch wip work as expected? Thanks.

I'm using single-include file in my engine, could you please update that so that I can easily test it? Thanks!

Hi @skypjack , is it possible to add a function to resource_handle to return the shared_ptr's use_count()?

@GavinNL it makes sense actually but could you open another issue for that?
I want to keep track of all requests and I risk to miss them if they are in a comment of a different issue.
Thanks!

Sure! I'll do that.

Can you tell me if the conversion functions available on branch wip work as expected? Thanks.

Hey~
Is there a way I can assign entt::resource_handle<Derived> to entt::resource_handle<Base>?
I have an abstract asset class called IAsset, and a derived class called SceneAsset. I want to implement a getter somewhere to get the appropriate asset with a virtual function like below:
virtual entt::resource_handle<IAsset> GetAsset() = 0;

But I cannot get the following to work (it says "no suitable conversion exists"):
virtual entt::resource_handle<IAsset> GetAsset() override { return m_SceneAsset; /* Its type is entt::resource_handle<SceneAsset> */ }

Thanks!

I have tested this conversion. It works pretty well in 3.8.0_single_include file! Thanks!
Could you please add another conversion function like std::dynamic_pointer_cast<> as down_cast is also important to me. Thanks a lot!

I strongly suggest to open a dedicated issue for this @hls333555 I can't promise I won't forget about it otherwise. 😅


feat: Do not load Previews when the feature is disabled.

What is the purpose of this pull request?
Avoid loading, for example, test-only gems in production when using sidecar previews. As discussed https://github.com/palkan/view_component-contrib/discussions/24
What changes did you make? (overview)
Added initializer that excludes all files ending in preview.rb in any preview path.
Is there anything you'd like reviewers to focus on?
Nah
Checklist

[ ] I've added tests for this change
[x] I've added a Changelog entry
[ ] I've updated a documentation

Thanks!


Replace predicate functions with CAPI util functions

Issue #, if available:
Description of changes:
Replace custom predicate functions with CAPI util/predicates functions in the CloudStackCluster and CloudStackMachine controller
Testing performed:
make test
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/ok-to-test


[web] Implement production and test entry point embedders

On the Web we need to initialize the page for Flutter's consumption, such as load fonts, configure <meta> viewport tags, and so on. Let's call such initialization code an "embedding" of Flutter. We currently have two such embeddings:

Production embedding: prepares a web-page for running an app normally. This is the embedding you get when you run flutter run.
Test embedding: prepares a web-page for running a test. The test embedding hardcodes some things irrespective of the actual browser window, such as default to device pixel ratio of 3.0, and replace all fonts with the "Ahem" font.

We need to implement these two embeddings such that user code does not need to altered to run on the web. For example, user-written code should not call ensureTestPlatformInitializedThenRunTest, or webOnlyInitializeTestDomRenderer.

A couple questions:
(1) Would a trampoline file (i.e., the real main) that calls into the user's main work?
(2) How does this work today with Flutter and the VM?

(1) Would a trampoline file (i.e., the real main) that calls into the user's main work?

I think a trampoline should be sufficient in the short-term. In the long-term I expect more advanced add-to-app scenarios may need to be able to control the lifecycle of the dart "isolate".
We may also need to control the event/microtask loop more tightly. For example, currently our "begin frame" and "draw frame" events are combined into a single event (because otherwise we'd split the animation frame into two, which would break everything). However, this means that "begin frame" does not flush microtasks.

(2) How does this work today with Flutter and the VM?

Flutter Engine uses Dart VM's C API to start/stop the VM and isolates (example).


Improve code quality

Just thought about adding jscs and eslint. Also add scripts to lint files on the precommit hook and globally.

I can take this one. Been doing this stuff for a while now for different projects.

I would appreciate if you can make this one!

Awesome. Will make a PR later today then.

@sullenor see #8

:+1:


rename not working

I code like this
connection.onInitialize((params): InitializeResult => {
	workspaceRoot = params.rootPath;
	return {
		capabilities: {
			// Tell the client that the server works in FULL text document sync mode
			textDocumentSync: documents.syncKind,
			// Tell the client that the server support code complete
			completionProvider: {
				resolveProvider: true
            },
            renameProvider: true
		}
	}
});

connection.onRenameRequest((params): WorkspaceEdit => {
    const result: WorkspaceEdit = {
        changes: {}
    }
    return result;
});

and hitting F2 in my file doesn't do anything, despite completion working as expected.
I'd at least expect the rename UI to show.

I take it back. Being lost in various compile script ;-)


[Do not merge under all Reviewers sign off] Submit adr for v8 code de-version

Submitting ADR 12 for discussion with the cf cli team and CF community members.
To clarify what I mean by de-version here, in the CLI code base there are a lot of directories/packages labeled as v6, v7, v2action, v3action, v7action, all with reference to some version of the cf CLI or CAPI.   I think this experience would be improved by trying as much as possible to remove the concept of version, and just having one version of a command per branch, check the markdown file in the PR for more info.
After reading that please feel free to leave feedback, emoji reactions, suggestions for changes, or any concerns on this PR.

I really like this proposal and I think we'll be able to mitigate any changes in upkeep with cherry picking fixes back to v7


Strange Probelm

I got similar output with different attribute vectors even with pretrained model

It seems that the decoder of the generator did not get the right attributes. Could you provide more information? Did you train the model or test the model? How did you get the image output? If I can reproduce your problem, that will be easier to solve.

I find the reason, I fine-tune your model using different attributes :
[
"Bald", "Bangs", "Blond_Hair", "Brown_Hair", "Bushy_Eyebrows", "Eyeglasses", "Male",
"Mouth_Slightly_Open", "Mustache", "Pale_Skin", "Wearing_Hat", "Young"
]
I load the pretrained model but the attribute prediction layers in dec part with:
    def load(self, path):
        states = torch.load(path, map_location=lambda storage, loc: storage)
        if 'G' in states:
            states_G = {key:value for key, value in states['G'].items() if not key == "dec_layers.0.layers.0.weight" \
                       and not key == "dec_layers.1.layers.0.weight" }
#             states_G = states['G']
            self.G.load_state_dict(states_G, strict=False)
        if 'D' in states:
            states_D = states['D']
            self.D.load_state_dict(states_D, strict=False)
        if 'optim_G' in states:
            self.optim_G.load_state_dict(states['optim_G'])
        if 'optim_D' in states:
            self.optim_D.load_state_dict(states['optim_D'])

I get the output buy
def show(img):
    npimg = img.numpy()
    plt.rcParams["figure.figsize"] = (20, 10)
    plt.imshow(np.transpose(npimg, (1,2,0)), interpolation='nearest')
    plt.show()
show(vutils.make_grid(samples.cpu(), nrow=1, padding=10))

Could you give some tips on fine-tuning your model with different attributes?

I think I have to speak about what I am doing. I am trying to use attention mechanism to limit the effect on the focused area according to the changed attributes(the same purpose as STGAN but with different method).
And I am training the model from scratch, does the phenomena that the outputs of different attributes are the same appeared in your training procedure?

I got it now. I never try to fine-tune AttGAN, so it is actually an unexplored experiment. I'd like to make sure that you loaded the dataset with correct attributes, which are your target attributes. And read the training losses from the tensorboard. You will know you're making progress if the classification losses (dc_loss and gc_loss) drop down.
In my training procedure, the network first learnt to generate rough faces. Then it could generate faces with right attributes. The classification loss dropped and converged at this step. Afterwards, the faces from the network got better and better with respect to quality. When training from scratch, the right attributes appear on the generated faces after about 60k iterations. But in your case, you got beautiful faces without correct attributes. It's quite a weird result tho. One potential reason is that the given images and labels did not match each other.
I'm sorry that I accidentally wiped out my experimental results, such as training loss history, in the last month. Only CelebA-HQ 384x384 remains here https://github.com/elvisyjlin/AttGAN-PyTorch/issues/8#issuecomment-475630411. You can take a look if you need it.
By the way, STGAN did show a big progress in the field of face attribute manipulation. I really appreciate it. But my research is quite similar to that and also is under review...

I am not a researcher now and I am trying because of interest.
Thanks for your valuable job.

You're welcome. I suggest you try 1) to train the model from scratch without any code modification, then 2) to fine-tune on your target attributes. In this way, it is easier to figure out what goes wrong.


PE-1785: Treat .tgz and .gz files as GZip

The same changes were applied at https://github.com/dart-lang/mime/pull/66 as well


Add support for MoneyField from django-money

Now in admin this field loks like

but in default django admin it's looks like

How to make that currency shows too?
Thank you so much for such a great admin!

What a beautiful project, I can't wait to use it!
But indeed, django-money is not supported unfortunately, the currency field is completely missing

Thanks for kind words. Django-money integration is already prepared and will be shipped in few days.

New feature has been released.


[Make] Fix make clean issue #43

What is the purpose of this pull request (PR)?
Fixes issue with make clean.
Does this PR resolve an open issue (reference issue #)?
Fixes issue tasks: #43

utACK - this will fix even though I haven't tested. Will merge upon Travis completion.


Windows Controls Overlay: how does zoom work with this feature?

If I zoom the page should the title bar content get bigger?  Maybe there is already a CSS mechanism to handle this?

Following the existing pattern of the browser frame, I would not expect the overlay to change size when zooming the page. The overlay would match the size of the title bar on any other installed PWA

Good catch @BoCupp-Microsoft. As @amandabaker said, the overlay would not resize, but the web content acting as a title bar would. So you could end up with the title bar getting much larger (or even smaller) than the controls. As pixels are no longer fixed in dimension (i.e., they scale like other relative values) I'm not quite sure how you'd be able to force the title bar to remain at a consistent size (at least not without using JS to listen for a synthetic text resize event and then applying some logic to scale it up/down relative to the root font size and your target height). We should dig into this a bit more.

This issue has been migrated to https://github.com/WICG/window-controls-overlay/issues/58 for continued discussion.


System.IO.FileInfo error

I have installed this module using
Install-Module PSParquet
I have created a data pscustomobject. Running the below command results in this error:
Export-Parquet -InputObject $GatewayObj -Path "c:\temp\file.parquet"

Please update your issue with your system information.
Are you using Windows PowerShell? The module requires PowerShell 7.x.

Cloding. No feedback


scour.py: Use named constants rather than literal integers for `nodeType'

The code used to look like this:
if child.nodeType == 1:
    ...

Now, the code looks like this:
if child.nodeType == Node.ELEMENT_NODE:
    ...

Codecov Report

Merging #149 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #149      +/-   ##
==========================================
+ Coverage   91.22%   91.23%   +<.01%
==========================================
  Files           5        5
  Lines        2143     2144       +1
==========================================
+ Hits         1955     1956       +1
  Misses        188      188

Impacted Files
Coverage Δ

scour/scour.py
92.84% <100%> (ø)
:arrow_up:

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 e36cd48...fdbf890. Read the comment docs.


fix problem with payment method value in custom attribute

Summary
I check if the value is an object before using JSON.stringify. The issue arises because result.paymentMethod.type is a string, and after converting it with JSON.stringify, the value becomes "paypal", which breaks the OMS and ERP systems.

Tested scenarios
Description of tested scenarios:
Fixed issue:

Hi @AVATOR ,
Thanks for creating the PR.
Can you please let us know if you are using our OMS or some third party developed OMS?
Kind regards,
Zenit
Adyen

No. We don't use your OMS code. We have code that was implemented before. OMS grabe order without problems but ERP skip payment information if value "paypal" instead of paypal

Hi @AVATOR ,
As this change is related to your ERP system, you can keep the change in your codebase, but we are not integrating it in our cartridge as it does not benefit our use cases.
Hence, I'm closing this PR.
Kind regards,
Zenit
Adyen


Server Custom Characters

[x] Setup Database

[x] Server specific cowfiles
[ ] Global cowfiles (don't rely on built-in anymore from upstream)

resolved by #15


Allow metadata pass-through in flax.struct.field

What does this PR do?
Allows passing through metadata when creating a flax.struct.field. This is useful when you want to add some metadata to your field to be read later.
Checklist

[ ] This PR fixes a minor issue (e.g.: typo or small bug) or improves the docs (you can dismiss the other
checks if that's the case).
[ ] This change is discussed in a Github issue/
discussion (please add a
link).
[ ] The documentation and docstrings adhere to the
documentation guidelines.
[ ] This change includes necessary high-coverage tests.
(No quality testing = no merge!)

@IvyZX Pushed a test, let me know if anything else is needed.

Codecov Report
Attention: Patch coverage is 0% with 2 lines in your changes missing coverage. Please review.

Project coverage is 0.00%. Comparing base (31adb00) to head (62b15bf).
Report is 78 commits behind head on main.

Files
Patch %
Lines

flax/struct.py
0.00%
2 Missing :warning:

Additional details and impacted files
@@          Coverage Diff           @@
##            main   #4056    +/-   ##
======================================
  Coverage   0.00%   0.00%
======================================
  Files        106     107     +1
  Lines      13582   13824   +242
======================================
- Misses     13582   13824   +242

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

@IvyZX Fixed.

@IvyZX Are we awaiting some automated process to get this merged?

@IvyZX Is this good for merging?


Migrate to using CLICK rather than ARGPARSE

The click package provides an annotations based interface to argparse.
Re-implement the CUTOUT command using click.

Replaced and tested


Provide control over pod labels and annotations

There are certain capabilities in Kubernetes that require annotations to be present on the pod, for example the kubernetes.io/ingress-bandwidth and kubernetes.io/egress-bandwidth to support Network Traffic Shaping. At the moment, they cannot be controlled.
Similarly, labels on pods can be used for filtering or monitoring.
We need to provide some control to users who define the build strategies as well as to those who define build runs. Some scenarios:

For the traffic shaping, it makes sense to define the annotations in the build strategy as this is the place where the resources for the steps are also defined.
It also makes sense if users can defined labels on a build run and use the same label to search for taskruns and pods, which means that those labels need to be copied as well.

We will also need to think about / consider:

Do we want to propagate labels and annotations on builds to the taskrun as well ?
What about name clashes (same label / annotation defined with different values on build strategy / build / build run), what value wins.  In the network traffic scenario, the person who defines the values in the build strategy does not want those to be overwritten in the build / buildrun. In other scenarios, this might be fine.
Instead of providing annotations for the pod in the metadata of the build strategy / build / build run, one could also introduce something like spec.podAnnotations and spec.podLabels to allow to explicitly define values that are set on the task run / pod, while other values can be defined in the metadata that do not get propagated.
Which kind of configuration on the build controller level is needed to restrict setting annotations and labels?

Definitely something to work out via an enhancement proposal. There are other annotations out there a build strategy would want to take advantage of, such as user namespaces on CRI-O clusters.
Not sure if we've officially laid this out as an API convention, but it feels like we have precedent for inherited spec attributes that flow from BuildStrategy -> Build -> BuildRun. BuildRun can override and augment specs from Build, Build can override and augment specs from BuildStrategy.

Definitely something to work out via an enhancement proposal. There are other annotations out there a build strategy would want to take advantage of, such as user namespaces on CRI-O clusters.
Not sure if we've officially laid this out as an API convention, but it feels like we have precedent for inherited spec attributes that flow from BuildStrategy -> Build -> BuildRun. BuildRun can override and augment specs from Build, Build can override and augment specs from BuildStrategy.

Thank you for the feedback, Adam. Yeah, EP is planned. The inheritance as you lay it out is the obvious model I also agree with in general. Nevertheless, with the possible persona differentiation with admins maintaining build strategies and users that create builds and build runs, we also require a mechanism for certain annotations defined by the admin in the build strategy not to be over-writable.
We'll think through it.

If possible, I suggest we can do this enhancement step by step.

If we all agree annotations should also be propagated from build strategy like what we are doing for label: https://github.com/shipwright-io/build/blob/ae7a36292ad165203eaa043f85703842c3f3b0ed/pkg/controller/buildrun/generate_taskrun.go#L257-L259, I suggest we add the annotations capability as first step so that we complete this missing part first.
If there is some end-user requirements in future that want to override the label or annotation from build or buildrun, I think it could be the second part of the enhancement.

But I think the first part is more important because we miss that.

If possible, I suggest we can do this enhancement step by step.
* If we all agree `annotations` should also be propagated from build strategy like what we are doing for label: https://github.com/shipwright-io/build/blob/ae7a36292ad165203eaa043f85703842c3f3b0ed/pkg/controller/buildrun/generate_taskrun.go#L257-L259
  , I suggest we add the annotations capability as first step so that we complete this missing part first.

* If there is some end-user requirements in future that want to override the label or annotation from build or buildrun, I think it could be the second part of the enhancement.

But I think the first part is more important because we miss that.

This matches exactly what I agreed with Enrique yesterday afternoon. EP will come soon.

EP is open and it focuses on annotations first to not over-complicate things: EP: Propagating annotations from the build strategy to the pod #523. Labels cover other scenarios that we can handle separately.

Annotation propagation has been implemented here: Propagate annotations from BuildStrategy to TaskRun #539.
Putting the remaining label work in a separate issue: Provide user control over pod label #625


Introduce mutant testing tool

Introduce a mutant testing tool e.g. mutmut https://mutmut.readthedocs.io/en/latest/

Install package
Config sensible mutation criteria/scope
Add specific workflow job to run mutation tests on checkin

Addressed in https://github.com/AndrewJanuary/PM-Monitor/pull/20


Location Service Accuracy

🏗 Enhancement Proposal
Location Service accuracy (on Android)
Pitch
Well on Android we have 3 types of accuracy:
Gps, Network and High accuracy .
I was thinking about adding some functionality, so that someone can identify the current selection and maybe provide a stream to notify about changes.
My main concerns are the following:

Should we add all the options like:
Gps, Network, High Accuracy, Off, Unknown (when the user hasn't granted permissions).
or simply if the user has enabled 'High Accuracy' as the most common scenario

This one is more about the implementation:
For a second stream, should the result coming back from the Android, be a map in this form => Map{type: String (position, location accuracy.. etc), data: Object} <=, or should a second event channel be created?

Platforms affected

[ ] :iphone: iOS
[x] :robot: Android

@pparadox11 this looks like an interesting feature and would be useful for users on Android. So I am looking forward to a pull-request ;).
Regarding your questions:
To answer your first question, I think if we implement it we should implement all of the options.
And regarding the second question, this depends a bit how we implement it. I currently see three options:

We return the location accuracy as part of the location update. So each time we get a location update from Android we also include the accuracy of the location update (as part of the Position object);
We create a method call that people can use to check the current available accuracy settings;
We create a new event channel which developers can subscribe to and get updates when the accuracy settings change.

I think we can implement all three options (al though I am not sure if option 3 is actually natively supported). Maybe we can start with implementing the first option which will already give developers a change to detect the current accuracy by looking into the position results being returned. What do you think?

Hi,
Hmm i am thinking about the case 1, maybe it's too much asking always about the location service accuracy? If you want to i can give it a try.
Case 2, yes of course.
Case 3, my main issue here is can we have 2 event channels? how we can distinguish that on the android  part?. As i have read the we have like 1 callback onListen but it doesnt give the channel name..?
About the part of location service accuracy change, we can register a broadcast receiver, but i dont know where and exactly we should unregister to avoid leaks.
I need some studying on my part ^^.

Well on Android we have 3 types of accuracy: Gps, Network and High accuracy.

Isn't GPS == High accuracy? I think you are merging two different things into one bucket. There are:

Sensors/providers (gps, cell networks, wifi, nfc, gyroscope).
Quality groups. (high_accuracy, low_power, no_power)

Keep in mind that there also FusedLocationManager which uses much more providers then default one from android framework. That includes wifi, which improves init discovery speed and reduces battery usage tremendously.
On Android with each Location response you can get accuracy and provider. In geoloactor accuracy is already passed to Dart side. If you need sensor i think that can also be added to DAO object for exposing it on Dart side.

We create a new event channel which developers can subscribe to and get updates when the accuracy settings change.

I am not sure if you are talking about sensors or quality groups.

quality group doesn't change because it is requested by developer during location request API method call.
sensors might be working in parallel. So when location updates are returned in sequence: Location1(network), Location2(network), Location3(gps), Location4(network). It doesn't mean that network switched to gps and back. Both providers works at the same time. Just one returns more data which matches applied filter.

Can you describe problem which you are trying to solve?

Hi,
The problem i want to solve, is what type of location accuracy has the user of the phone has choose.
High accuracy = All possible providers (wifi, mobile networks, gps)
Gps = only gps.
Battery saving = wifi, mobile network.
But this doesn't mean that if you get a position and you have enabled high accuracy, that you will get it as a high accuracy position, as many things can factor the output that moment.
Thats the problem i want to solve. not exactly the accuracy of the position, because that can factor from app to app, as want do you define a high accuracy position? 10, 15, 70 meters?

Hi,
It would be very useful for my app if I was able to ensure the device used GPS only, in certain circumstances. There are situations when the location provided by WIFi is a completely different from the device's actual location eg. when the WiFi internet feed comes from a centralised server located somewhere else in the world.
Are you likely to add this feature to geolocator?

I think it is a very interesting topic about being able to request to change the quality group, since precisely in the getCurrentPosition() method, if the device is not in high precision mode, the method returns nothing, no no response.  Until I have discovered that changing the energy-saving quality group to high precision, I have not solved the problem of the no response request and then it returns an answer.  Therefore, it would be VERY interesting to be able to request to change the quality group from the application and check whether or not it is in high precision and thus act accordingly.


Website logo

Enter your question -
Providing the logo for website
Enter link to the question(if question belongs to any online platform) -
No link
Tags for the question(eg - Array, Basic, Stack, etc.) -

@SarthakKeshari
In which folder should I place the .PNG file and word file

@SarthakKeshari
Kindly check the logo

@MohammedHassan07,
Amazing

@MohammedHassan07,
Thankyou🎁 for coming up with such an aesthetic and innovative logo.
I invite you to add more value to the project by creating a pull request.
Title of PR - "🌟Website logo declaration"
Body of PR should contain -
Website title
Logo Image file
Inspiration and the reason behind creating the contributed logo(more than 40 words for the reason will be appreciated)
Also attach a website_name.txt file containing the same details as body of PR along with your image file.

@MohammedHassan07,
Directly in the "Java-Questions-and-Solutions" folder.


Templates: Switch between nightly and release

Currently device documentation shows the state of evcc's master branch. This leads to confusion because users already see options that will come in the next release and won't work in stable right now.
We need to communicate this better and/or provide a toggle mechanism for both nightly and release users.

Ich denke das wäre erstmal eine gute Lösung.

Jetzt fehlt nur noch der Switch- vielleicht analog Sprache?


Replace binary_cross_entropy with binary_cross_entropy_with_logits

This PR addresses Issue #401 .
Changes:

replace torch.nn.functional.binary_cross_entropy with torch.nn.functional.binary_cross_entropy_with_logits in lightning_metrics.py
rename class BinaryCrossEntropy to BinaryCrossEntropyWithLogits
update unit tests in test_metrics.py

/azp run

The test test_train_classification_model presently fails.

Could you please switch test_image_encoder_with_mlp.py and test_rnn_classifier.py to 16 bit precision now? config.use_mixed_precision = True at the two places you noticed will give us correct test coverage.

Addressed. Tests pass!

/azp run

There is also a test failure on Windows, a precision problem:
assert tensor(0.7930) == 0.7930444578329722   +tensor(0.7930)   -0.7930444578329722

Stack trace
def test_classification_metrics() -> None:
        classification_module = ScalarLightning(DummyClassification())
        metrics = classification_module._get_metrics_computers()
        outputs = [torch.tensor([0.9, 0.8, 0.6]), torch.tensor([0.3, 0.9, 0.4])]
        labels = [torch.tensor([1., 1., 0.]), torch.tensor([0., 0., 0.])]
        for output, label in zip(outputs, labels):
            for metric in metrics:
                metric.update(output, label)
        accuracy_05, accuracy_opt, threshold, fpr, fnr, roc_auc, pr_auc, cross_entropy_with_logits = [metric.compute() for metric in
                                                                                metrics]
        all_labels = torch.cat(labels).numpy()
        all_outputs = torch.cat(outputs).numpy()
        expected_accuracy_at_05 = np.mean((all_outputs > 0.5) == all_labels)
        expected_binary_cross_entropy_with_logits = log_loss(y_true=all_labels, y_pred=expit(all_outputs))
        expected_fpr, expected_tpr, expected_thresholds = roc_curve(y_true=all_labels, y_score=all_outputs)
        expected_roc_auc = auc(expected_fpr, expected_tpr)
        expected_optimal_idx = np.argmax(expected_tpr - expected_fpr)
        expected_optimal_threshold = expected_thresholds[expected_optimal_idx]
        expected_accuracy = np.mean((all_outputs > expected_optimal_threshold) == all_labels)
        expected_optimal_fpr = expected_fpr[expected_optimal_idx]
        expected_optimal_fnr = 1 - expected_tpr[expected_optimal_idx]
        prec, recall, _ = precision_recall_curve(y_true=all_labels, probas_pred=all_outputs)
        expected_pr_auc = auc(recall, prec)
        assert accuracy_opt == expected_accuracy
        assert threshold == expected_optimal_threshold
        assert fpr == expected_optimal_fpr
        assert fnr == expected_optimal_fnr
        assert roc_auc == expected_roc_auc
        assert pr_auc == expected_pr_auc
>       assert cross_entropy_with_logits == expected_binary_cross_entropy_with_logits
E       assert tensor(0.7930) == 0.7930444578329722
E         +tensor(0.7930)
E         -0.7930444578329722

/azp run

There is also a test failure on Windows, a precision problem:

I was able to reproduce the AssertionError locally as well, it looks like a floating point arithmetic difference between F.binary_cross_entropy and F.binary_cross_entropy_with_logits.
Here is a code snippet that reproduces the error:
import torch
import torch.nn.functional as F
from sklearn.metrics import log_loss

# define variables
logits = [torch.tensor([2.1972, 1.3863, 0.4055]), torch.tensor([-0.8473,  2.1972, -0.4055])]
posteriors = [torch.sigmoid(logit) for logit in logits]
labels = [torch.tensor([1., 1., 0.]), torch.tensor([0., 0., 0.])]

# concatenate variables
all_labels = torch.cat(labels)
all_logits = torch.cat(logits)
all_posteriors = torch.cat(posteriors)
all_labels_np = all_labels.numpy()
all_posteriors_np = all_posteriors.numpy()

# print variables
print(f"logits = {all_logits}")
print(f"posteriors = {all_posteriors}")
print(f"labels = {all_labels}")

# compute losses
binary_cross_entropy = F.binary_cross_entropy(all_posteriors, all_labels)
expected_binary_cross_entropy = log_loss(all_labels_np, all_posteriors_np)
binary_cross_entropy_with_logits = F.binary_cross_entropy_with_logits(all_logits, all_labels)

diff1 = binary_cross_entropy - expected_binary_cross_entropy
diff2 = binary_cross_entropy_with_logits - expected_binary_cross_entropy
diff3 = binary_cross_entropy_with_logits - binary_cross_entropy
# print differences
print(f"binary_cross_entropy - expected_binary_cross_entropy = {diff1}")
print(f"binary_cross_entropy_with_logits - expected_binary_cross_entropy = {diff2}")
print(f"binary_cross_entropy_with_logits - binary_cross_entropy = {diff3}")

which yields
logits = tensor([ 2.1972,  1.3863,  0.4055, -0.8473,  2.1972, -0.4055])
posteriors = tensor([0.9000, 0.8000, 0.6000, 0.3000, 0.9000, 0.4000])
labels = tensor([1., 1., 0., 0., 0., 0.])
binary_cross_entropy - expected_binary_cross_entropy = 0.0
binary_cross_entropy_with_logits - expected_binary_cross_entropy = -5.960464477539063e-08
binary_cross_entropy_with_logits - binary_cross_entropy = -5.960464477539063e-08
Traceback (most recent call last):
  File "test.py", line 58, in <module>
    assert binary_cross_entropy_with_logits == expected_binary_cross_entropy
AssertionError

So, I opted to use pytest.approx in test_metrics.py https://github.com/JacopoTeneggi/InnerEye-DeepLearning/blob/94c1b0795b7119321bf653f9ca365f2897c9157c/Tests/ML/test_metrics.py#L201 , is this reasonable?

@JacopoTeneggi  yes, using pytest.approx is the right thing to do

/azp run

@JacopoTeneggi , good and bad news, tests now pass, but flake8 complains: .\Tests\ML\test_metrics.py:169:77: E241 multiple spaces after ','

/azp run

@JacopoTeneggi , all ready - I'll leave the pleasure of pressing "merge" to you :-) Please replace the default commit message with something more readable.
Thanks for your contribution!

Thank you for your help @ant0nsc ! Unfortunately, I am not authorized to press the "merge" button to main :(


Custom action to add to refresh explorer to take PATH

Custom action to add to refresh explorer to take PATH changes into effect. This tool basically sends a WM_STATE_CHANGED message through a custom C++ routine so that the explorer knows there is a change in the PATH variable.

Merging this to release.


project to gradle| Jar

Hi, friend, it would be great if this project was available to use as a dependency on Gradle to use it on Android or the JAR. I made a fork in this project to make that feature possible, but now I do not have much time. However, if you can add that functionality before I have more time available, it would be fabulous. Since I am short of time I will have to copy your classes and add them to my project .

I think this is a duplicate of #3. java-otp is already available via Maven Central.


Allow 'blacklisting' terms / limiting number of hits per commit

Hello,
I am trying to set up this tool for a project because of its simplicity. However, I could'nt figure out if there was a way to blacklist terms.
For example, I wanted to have something such as this:
  minor:
    - "feature:"

However, when I want to add features to the project, I name my branch feature/xxxx and then merge it into develop, which will trigger the version bump, in addition to the commits. Even worse, I am using gitlab merge requests feature and the merge commits often contain text from previous commits. This results in even the smallest changes bumping the version by a disproportionate amout every time.
This is making the tool close to unusable for me and I think this is a quite common workflow.
What do you think ? What is the expected workflow ?

@NicolasIRAGNE could you please check now with the latest version ( 1.4.1 ) if the issue persists?

Thanks a lot, will test in a bit with my repository and compare results :-)

Alright I have been doing some testing and I can't really say if it is working or not because there are some other issues / things I do not understand yet.
How does the "DEFAULT" increment work? Is it set to simply increment patch on every commit ?
Consider the following situation:

With the following config:
force:
  major: 1
  minor: 0
  patch: 0
  commit: 202bfb6b0f30a0f8bc029f1d093d2de35870ce83 # This is current develop HEAD
wording:
  minor:
    - "add"

This is the output I get:
>semver-gen-1.4.1.exe generate -l -d
DEBUG:
---COMMITS BEFORE CUT---
[]

DEBUG: >>>> FOUND MATCH 853 3

DEBUG:
---COMMITS AFTER CUT---
[{202bfb6b0f30a0f8bc029f1d093d2de35870ce83 Nicolas IRAGNE<EMAIL_ADDRESS>Remove git thing
2021-12-09 10:38:50 +0100 +0100} {255fe6562908abc8a7c1ccfa798f89adbb367fc2 Nicolas IRAGNE<EMAIL_ADDRESS>add some stuff
2021-12-11 02:19:22 +0100 +0100} {347a27b7ad99d87f2bada259176bd3531c18cee6 Nicolas IRAGNE<EMAIL_ADDRESS>Merge branch 'test' into develop
add some stuff

See merge request !43
2021-12-11 02:32:53 +0100 +0100}]

DEBUG: Forced versioning (MAJOR) 1

DEBUG: Incrementing patch (DEFAULT) on  Remove git thing | Semver: 1.0.1

DEBUG: Incrementing patch (DEFAULT) on  add some stuff | Semver: 1.0.2

DEBUG: Found match for  add | add

DEBUG: Incrementing minor (WORDING) on  add some stuff | Semver: 1.1.1

DEBUG: Incrementing patch (DEFAULT) on  Merge branch 'test' into develop
add some stuff

See merge request !43 | Semver: 1.1.2

DEBUG: Found match for  add | add

DEBUG: Incrementing minor (WORDING) on  Merge branch 'test' into develop
add some stuff

See merge request !43 | Semver: 1.2.1

SEMVER 1.2.1

There are a few things I can see that are not what I would expect:

The commit that is set as 'base' (here develop HEAD) is processed during version computation
Version patch is still incremented on WORDING hits
Merge commit is processed (this could be resolved by having an option to exclude terms)

Simply adding one commit bumped the version to 1.2.1 when I expected it to bump to 1.1.0.
NB: This happens with the previous version as well. These are just issues I did not notice because I was trying on a bigger history and the output was hard to read.
What do you think ?

Thank you so much - that was really helpful!
I've done some extra coding and:

excluded merge events from calculations as they're included in the respective commits
added another feature which I've been thinking about for a while - with either flag -e or config force.existing: true the semver-gen will respect existing tagging in place and start calculations only going forward from the latest tag issued

I think - and perhaps this should go into its own issue - it should be possible to have direct control on how the default incrementing works.
Something like this: (just a quick draft of how I would imagine it)
#Choose to process either merge commit OR all the commits instead. Useful in case of just wanting to increment the default branch everytime a MR is accepted.
only-merge-commits: true
auto-increment:
  default: Minor
  base: 'develop'
  branches:
    - feature: Minor
    - fix: Patch
    - patch: Patch
    - refactor: Major
    - test: None

Something like this would allow the following behavior:

Merging branch feature/cool_update onto base branch bumps the minor version
Merging branch fix/fix onto base branch bumps the patch version
In case of merging a branch like patch/fix : I think the prefix should take precedence
Merging branch cool_branch should increment Minor
Merging branch test or test/stuff does not do anything

And if we use
only-merge-commits: false

Then the rules apply to every commit except the merge commit instead, with the wording rule still applying.
However, these are not easy changes and this perhaps goes beyond the scope of your project as these use cases are not what you were going for in the first place. I have switched tools at the moment because we had an urgent need in production but will still watch development because this could be an interesting lightweight alternative to the more complex tools.
Thank you for taking the time to discuss :-) I would gladly help with some testing if you update it.

It's a really good idea but will require a bit of code reshuffling - yet, I am happy to take care of it but definitely not this weekend :)
By the way - if you'd like to disable auto-increment on every commit you can enable strict mode which then will bump the patch version only keyword match

Oh, interesting, I thought strict mode meant stricter matching on the wording (like disabling fuzzy).

No, it essentially disables the automatic incrementation on every patch and triggers increments only if matched strings are detected. I'll make it more clear in the documentation :)

Hi, so just to be clear. Setting strict to false will auto increment patch if no keyword matches in the commit message?

@joonalaine yes, exactly. For example - if your commit brings some changes, and your pipeline builds the docker container which you'd like to test - you can test it whilst making sure ( different tag due to bumped patch ) that it is what you wanted to test.
Personally, I'm not getting too attached to the patch versions, and neither does google for example with their versioning ( 112.0.5615.40 for Chrome at the moment ), it's major and minor, which are of interest :)

Thanks!


fetch: add config and auth for #194

This adds JSON config in /etc/rkt/config.json and options for basic auth and oauth bearer token auth.
Credentials are sent only over HTTPS.
See #194.

@krnowak This looks awesome. Can you rebase this on master so we can start the review?

@krnowak I think we will need to also make some updates on the spec to either call out which methods of auth are possible and that's it's optional.

I've issued a PR against the spec regarding auth on discovery endpoints: https://github.com/appc/spec/pull/115

@kelseyhightower I had an assumption that discovery does not require auth. I suppose that we can add that on top of my work. It will need some thought. A scenario for example:
In config we have:
{
"auth":
{
"coreos.com":
{
"type": "oauth",
"token": "foo"
}
}
}
"rkt fetch coreos.com/etcd", it tries to download image from https://coreos.com/etcd.aci, but it runs meta-discovery because there is no such file. Discovery tells us that the file resides in images.coreos.com/aci/etcd.aci. So, images.coreos.com does not fit the "coreos.com" from configuration, so no credentials are sent. We could be clever and reuse the credentials used for coreos.com/etcd. What about the wicked case when user needs to provide different credentials for coreos.com and different for images.coreos.com? Would we support such a thing?

I don't want to copy the way that docker does this with a single configuration file since it makes it hard to lay down new files. Can we move to a directory based configuration instead? Something like how the KeyStore works: https://github.com/coreos/rocket/blob/master/pkg/keystore/keystore.go and https://github.com/coreos/rocket/issues/215

{
   "rktVersion": "v1",
   "rktKind": "auth",
   "domains": [
       "coreos.com"
   ]
   "type": "oauth",
    "token": "foo"
}

/etc/rkt/auth.d/
/usr/lib/rkt/auth.d/

Open questions:

Is it desirable to have an auth type for domain wildcards?
Do we want subdomain wildcards?

@philips so obviously with that approach there is no user-level granularity, it's just all-or-none (e.g. /etc/rkt only readable by a rocket Unix group). Are you seeing this the same as https://github.com/coreos/rocket/issues/43 ? A non-privileged user on a given system either can or cannot fetch/read all images. (I would argue this is a simplification we should go with for now, but want to be explicit)

@jonboulle Yes, a "rkt group" belonging can fetch/read all images. They are trusted for all local operations around the store.

OK, would like to see this ticket start moving again :-)

@krnowak can you pick this up again please?

Sure, I'll pick it up once I'm done with cmake builder. Should be next week then.

Great, thanks
Am 19.03.2015 09:45 schrieb "Krzesimir Nowak"<EMAIL_ADDRESS>
Sure, I'll pick it up once I'm done with cmake builder. Should be next
week then.
—
Reply to this email directly or view it on GitHub
https://github.com/coreos/rocket/pull/364#issuecomment-83656657.

@krnowak Is there ongoing work for this? It is currently set for v0.5.0 which is due to release this week.

@philips: Please postpone it to v0.6.0 if that's possible. I'll start working on this either tomorrow or a day later.

This PR depends on PR #729.

BTW, if you want to test it on your own and you don't have any ACI service requiring authorization, then there is https://github.com/endocode/test-aci-auth-server/

This looks great! Could you please add a usage example to the documentation too?

Ok, I rebased against current master (there were some minor conflicts because of renaming cas to store), fixed the issues mentioned above. On top of that I added more checks to addParser and registerSubDir in config.go and unexported the Headerer implementations in auth.go - they shouldn't be public anyway.
@jonboulle wrote:

This looks great! Could you please add a usage example to the documentation too?

Ah, I'm not sure I understand. Do you mean describing an example setup? Like contents of config files in vendor and custom dirs, how overriding vendor config with custom config works and then what might be the result of rkt invocation? Because nothing else changes in running rkt - no new parameters or commands.

Ok, I rewrote the documentation (now in Documentation/configuration.md). Hopefully this one is detailed enough and provides enough examples to be clear how to actually use it.

This looks great to me. I think the one caveat is that we haven't really answered either of the open questions in https://github.com/coreos/rkt/pull/364#issuecomment-69989710 , but I think we can just do that in follow up.

LGTM

@philips landing, please circle back when you get a chance and we can roll forward


[FEATURE]: Add Effect for Lights.

Discord Username
sage9001
Enhancement Type
Feature
Request
When using any kind of Lighting tag, I would like an effect to be added onto the token.  The icon to match the "lit" icon and maybe the tag name.  This way, when we have a light source in use, and it goes on for a few games, we can know what the source is.  Have the effect removed when the light source is "unlit".

Thats a nice idea! I will add it on the next major version!
I think it would be better to name the effect with the item's name because all tags are in english.

You're right.  The Item name makes more sense. :)


Collect changefeed metrics

What does this PR do?

Motivation

Additional Notes

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Changelog entries must be created for modifications to shipped code
[ ] Add the qa/skip-qa label if the PR doesn't need to be tested during QA.

Current dependencies on/for this PR:

master:

PR #17076

PR #17077

PR #17078

PR #17079 👈

This comment was autogenerated by Freephite.


Change iteration-over-set to flag set literals only

Summary
Changes the logic of the iteration-over-set rule to match Pylint and only flag iterations over set literals.
Addresses comment by @andersk in https://github.com/charliermarsh/ruff/issues/4706#issuecomment-1579386665.
Test Plan
cargo test

Thanks!


Adds RoBERTa model

Complete transparency-- I was mainly was pattern matching until I was able to get my toy example to work 😅

Hi @jonahgeorge, thanks for the PR. The code looks good, but think we can leave out the test case for this specific model.

@ankane updated the PR to remove the test case, LMK if you would like any other tweaks

Great, thanks!


entgql: add goModel directive to generated enums

Next PR, will add support for mapping fields with custom GoType to goModel.

Hey, to make sure this working. please remove the mapping in the function genModels()

Hey, I think we can skip the update unit-tests part.

Not sure what do you mean by that.


Please disable, when having documents already open and working with two or more panes

I love this feature when I open documents.
But when working with two or more open files, clicking, dragging/dropping, this becomes horrible.
I click on a part on my open right window - a short moment later my courser jumps.
I click on the left again - my courser jumps.
I want my location remembered, when I open my document, not while I have it open working on it.
This is something Obsidian already does on its own, not interfering with clicking on certain parts :)

I would love to see an option in the settings for this as well. Otherwise, very useful!

I agree. Should have the option to disable when jumping between two opened files. Makes the use very difficult.

Agree

Agree. It's pretty annoying. Wonder if the trigger to go to scroll position could be set to first loading a document, instead of every focus.

Well, since the author doesn't update in the last 5 months. Someone needs to make a pull request(maybe not) or just fork it and make things update.

I can update the plugin if https://github.com/dy-sh/obsidian-remember-cursor-position/pull/56 solves the problem.

I can update the plugin if https://github.com/dy-sh/obsidian-remember-cursor-position/pull/56 solves the problem.

nice, I'm using it rn. Rather than waiting for better solution. I just want "It's just work". It been holding for 5 months now. I don't think a better solution would come out in a minute  😂

updated the plugin with https://github.com/dy-sh/obsidian-remember-cursor-position/pull/56

Tested it in 1.0.9 and it appears to be working.

Side by Side on the same document (and different scroll positions) ✅
Side by Side with different documents ✅
Opening the same document in multiple tabs ✅

Great work and so happy that this is now integrated. I had disabled this plugin becuase of this missing.


NodeComposer wrapped in a FilteringSpecimenBuilder is ignoring Without instructions

Hi. Firstly heres a hastily written test:
public class Foo1
    {
        public Foo1()
        {
            FooCollection = new List<Foo2>();
        }

        public string TestX { get; set; }
        public ICollection<Foo2> FooCollection { get; set; }

        public ICollection<Foo3> BadCollection { get; set; }

    }

    public class Foo2
    {
        public string Test { get; set; }
        public Foo1 Foo1 { get; set; }
    }

    public class Foo3
    {
        public string Test7 { get; set; }
    }

    public class Pos
    {
        [Fact]
        public void BackReferenceShoudRefEqualCollectionContainer()
        {
            var fix = new Fixture();

            fix.Customize<Foo2>(c => c.Without(x => x.Foo1));

            fix.Customizations.Add(new FilteringSpecimenBuilder(
                    new Postprocessor(SpecimenBuilderNodeFactory.CreateComposer<Foo1>()
                .WithAutoProperties(true)
                .With(c => c.TestX, "WORK U")
                .Without(c => c.BadCollection)//THIS LINE SEEMS TO HAVE NO EFFECT
                .Do(c => Debug.WriteLine("THIS IS WORKING"))
                        ,
                        new CollectionBackReferenceFiller<Foo1, Foo2>("FooCollection", (s, c) => s.Foo1 = c)),
                    new TypeSpecification<Foo1>()));

            var a = fix.Create<Foo1>();
            Assert.True(a.FooCollection.All(x=>x.Foo1 == a));
            Assert.Null(a.BadCollection);
        }

        [Fact]
        public void BackReferenceShouldNotBeReferentialEqual()
        {
            var fix = new Fixture();

            Assert.False(fix.OmitAutoProperties);

            fix.Customize<Foo2>(c => c.Without(x => x.Foo1));
            fix.Customize<Foo1>(c => c.With(x => x.TestX, "Work U").Without(x => x.BadCollection));

            var a = fix.Create<Foo1>();

            Assert.True(a.FooCollection.All(x => x.Foo1 == null));
            Assert.Null(a.BadCollection);
        }
    }

So BackReferenceShouldNotBeReferentialEqual passes but BackReferenceShoudRefEqualCollectionContainer does not. The last assertion fails. It populates BadCollection with a list of objects but it should be leaving it as null. All the other instructions work, the With call and the Do call (i see the console output).
This is causing havoc in my real tests where I need to stop all the unneeded circular references from being created/followed.
and heres the specimencommand
    public class CollectionBackReferenceFiller<T, TElement> : ISpecimenCommand
        where T : class
    {
        private readonly string _collectionProperty;
        private readonly Action<TElement, T> _backReferenceSetter;

        public CollectionBackReferenceFiller(string collectionProperty, Action<TElement, T> backReferenceSetter)
        {
            _collectionProperty = collectionProperty;
            _backReferenceSetter = backReferenceSetter;
        }

        public void Execute(object specimen, ISpecimenContext context)
        {
            if (specimen == null)
                throw new ArgumentNullException("specimen");
            if (context == null)
                throw new ArgumentNullException("context");

            var typedSpecimen = specimen as T;
            if (typedSpecimen == null)
                throw new ArgumentException(
                    "The specimen must be an instance of " + typeof(T).Name,
                    "specimen");

            Array.ForEach(typedSpecimen.GetType().GetProperties(), x =>
            {
                if (x.Name == _collectionProperty)
                {
                    var elements =
                        ((IEnumerable<object>)context
                            .Resolve(new MultipleRequest(typeof(TElement))))
                            .Cast<TElement>().ToArray();
                    Array.ForEach(elements, e => _backReferenceSetter(e, typedSpecimen));

                    x.SetValue(typedSpecimen, elements.ToList());
                }
            });
        }
    }

and this guy
public class TypeSpecification<T> : IRequestSpecification
    {
        public bool IsSatisfiedBy(object request)
        {
            var requestType = request as Type;
            if (requestType == null)
                return false;

            return typeof(T).IsAssignableFrom(requestType);
        }
    }

any thoughts on why this might be? Thanks

OK :)
FWIW, I simply hadn't had the time to get around to investigate this yet, but since you closed the issue, I'll leave it be at that.


Client Allocation Request for:

Client Allocation Questions
Core Information

Name:
Website / Social Media:
Region: North America
DataCap Requested: 1TiB
Addresses to be Notarized:
Notary Requested: s0nik42

@jessie8o8 Please subscribe to notifications for this Issue to be aware of updates. Notaries may request additional information on the Issue.

This user’s identity has been verified through filplus.storage


gutter color when using ale

Expected Behavior
gutter has the same or similar background as the editing window
Current Behavior
gutter is in a light grey which makes it intrusive
Context
setup: i started using the 'ale' asynchronous linting vim plugin (seems great). there are options for setting the gutter symbol but i don't think the plugin tries to set colors?
My Environment
vim 8; MacVim on OS X 10.12

the same happens when diffing -- the gutter is in a light grey. this is also different from what is shown in the screenshots here.

a workaround is to manually call :hi clear SignColumn

@nilsbecker I started using tender colorscheme and had similar issues with ALE and so far explicitly setting a value in base.yml for SignColumn and regenerating the colorscheme with estilo seems to have addressed it.


added missing .fill() method; fixed .polygon() method, supporting def…

added missing .fill() method;
fixed .polygon() method, supporting default values of 0 for x and y;
fixed .fillPolygon() and .strokePolygon() methods, removing duplicate call to .beginPath().
Sorry if I mangled the whitespace in the file and fixed in the master branch. The thing is polygon is severely borked without these changes. Great work on playgroundjs!

Merged manually and pushed into new version.
Thanks for contribution :)


Add Rust impl of wasmtime_ssp_fd_prestat_dir_name

This PR is a continuation of #130, and also addresses #120. It ports wasmtime_ssp_fd_prestat_dir_name from C to Rust, re-using the functions and mechanisms ported in #130 (i.e., things like rwlock_rdlock! macro or fd_prestats_get_entry).

Hi Kubkon,
I saw the request https://github.com/CraneStation/wasmtime/issues/120 and would like to contribute as well. I am new to Rust however so I want any change to be thoroughly tested. How are you exercising your changes here to make sure it doesn't have bugs?

All contributions are welcome. Please check in your interest in #120 and what you'd like to work on with @sunfishcode.
As far as the tests are concerned, we don't have any in that crate yet, but it's probably something we'd like to have in the long run. I'm not sure in what form yet though. I'm sure @sunfishcode would offer some great comments and direction here.
One way of testing the ported host calls from C to Rust, is to run a WebAssembly module using the wasmtime runtime with trace on for the wasmtime-wasi crate:
$ RUST_LOG=wasmtime_wasi=trace wasmtime a.out

where a.out is a WebAssembly module. This will generate a trace of all syscalls that the WebAssembly module invokes, and you can inspect there whether any changes you've committed work as expected.
Hope that helps! Let me know if anything is unclear.

Yes this helps, thanks! I'll examine your change a little more, try this technique, and then see what I can contribute first.

Testing is indeed something we're still figuring out. I've started experimenting with writing WASI tests in Rust using Rust's libc crates' WASI bindings, here: https://github.com/sunfishcode/misc-tests which you can compile with "cargo build +nightly --target=wasm32-unknown-wasi" and run with wasmtime, though it's still a little rough. I'm interested in other ideas people have for how we can write tests too!

LGTM!


rich media

Does the message sent support rich media? For example, if I want to send an emoji, an image, or a video while chatting, how should I achieve this?

Is this image, video, and file also saved in Mongo？

Does the message sent support rich media? For example, if I want to send an emoji, an image, or a video while chatting, how should I achieve this?

Turms clients can send a string and arbitrary binary data as messages via turmsClient.sendMessage, which means you can pass anything.
Just as Markdown, HTML, or others work, it's up to the client to implement to decide how to parse and display the string and binary data in messages.
I suggest people implement their representation based on Markdown because Markdown has a strong ecosystem, there are a lot of Markdown rendering/editor libraries you can use out of the box. If you have custom business requirements that Markdown doesn't support, you can add your implementation based on the Markdown.

Take an example, I draw a pie below based on the pure text:
pie title NETFLIX
         "Time spent looking for movie" : 90
         "Time spent watching it" : 10

Output:
pie title NETFLIX
         "Time spent looking for movie" : 90
         "Time spent watching it" : 10

Is this image, video, and file also saved in Mongo？

Use object storage service, e.g. AWS S3, MinIO.
It's unprofessional to store files in MongoDB usually.

1.If MinIO is used for storing files, images, and videos, while mongoDB only stores the corresponding addresses. How does the system distinguish whether the current address in the message is a randomly entered address by the user or a link to a file, image, or video?
2. Is "uploadMessage Attachment" to upload an attachment and then save the corresponding "attachment ID" in the "text" field of "message", or what field?


Tutorial POLL

Would you like a tutorial on Youtube for the following topics, then react to this issue with the corresponding emoji :)

❤: Tutorial for setting up and using Tinderbotz
🚀: Tutorial for learning web automation using selenium so you can build your own (tinder)bot.

<3

Yes please


Update API level testing expectations in PR template

Task/Issue URL: https://app.asana.com/0/488551667048375/1205064083287336/f
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

Current dependencies on/for this PR:

develop

PR #3343   👈

This comment was auto-generated by Graphite.


REL: Prepare for the VectorLab 1.0.1 release

Codecov Report

Merging #3 (86dad72) into maintenance/1.0.x (609b86e) will decrease coverage by 4.76%.
The diff coverage is 71.82%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@                  Coverage Diff                  @@
##           maintenance/1.0.x       #3      +/-   ##
=====================================================
- Coverage              87.73%   82.97%   -4.76%
=====================================================
  Files                     69       91      +22
  Lines                   2576     3742    +1166
=====================================================
+ Hits                    2260     3105     +845
- Misses                   316      637     +321

Impacted Files
Coverage Δ

...lab/data/dataloader/_torch_geometric_dataloader.py
36.84% <0.00%> (ø)

...ab/metrics/pairwise/tests/test_metrics_pairwise.py
98.00% <ø> (-0.04%)
:arrow_down:

vectorlab/optimize/_estimate.py
78.78% <ø> (ø)

vectorlab/utils/_time.py
74.13% <ø> (ø)

vectorlab/vector/tests/test_array.py
82.50% <ø> (ø)

vectorlab/nn/models/_classifier.py
26.47% <26.47%> (ø)

vectorlab/nn/models/_autoencoder.py
26.66% <26.66%> (ø)

vectorlab/nn/models/_gnn_decoder.py
33.33% <33.33%> (ø)

vectorlab/nn/modules/loss.py
42.85% <42.85%> (ø)

vectorlab/nn/modules/gnn_loss.py
50.00% <50.00%> (ø)

... and 26 more

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


Added the Connect4 game #482

I have added the game "Connect4: Where Strategy Meets Fun, One Disc at a Time!".
Issue #482
Connect4 is a classic two-player strategy game where players take turns dropping colored discs into a vertical grid. The objective is to be the first to connect four of your discs in a row—horizontally, vertically, or diagonally—before your opponent. This project implements the game with interactive gameplay, including win detection, a user-friendly interface, and customizable features to enhance the experience. Perfect for casual play or developing strategic thinking!

Thank you

This is related to #482 .
Under the labels gssoc-ext hactoberfest-accecpted level 2


TextBox.AcceptsReturn lost \n in UWP

This issue has been moved from a ticket on Developer Community.

I set TextBox.AcceptsRetrun = true in UWP project.  When I key down Enter and new line the content, the TextBox.Text don't provider \n , only got \r. I test WPF project, it don't have the issue. reference the link: https://stackoverflow.com/questions/42498195/uwp-textbox-is-missing-the-line-feed-n-character-in-windows-10-build-14393TextBox lost \n already be happen on Windows 10 (14393).

Original Comments
Visual Studio Feedback System on 1/2/2020, 06:10 PM:
We have directed your feedback to the appropriate engineering team for further evaluation. The team will review the feedback and notify you about the next steps.

Original Solutions
(no solutions)

Seeing similar regression issue.  Is there a fix planned for this or flag to adjust behavior?
StringBuilder should handle this use case?
https://docs.microsoft.com/en-us/dotnet/api/system.environment.newline?view=net-5.0
NewLine is automatically appended to text processed by the Console.WriteLine and StringBuilder.AppendLine methods.

Seeing similar regression issue.  Is there a fix planned for this or flag to adjust behavior?
StringBuilder should handle this use case?
https://docs.microsoft.com/en-us/dotnet/api/system.environment.newline?view=net-5.0
NewLine is automatically appended to text processed by the Console.WriteLine and StringBuilder.AppendLine methods.

This is nuts, the only platform I'm familiar with that uses \r line endings is classic MacOS.
Is there any plans to fix this, because I'm now needing to shim my data coming out of WinUI because no other platform knows how to process \r line endings.

Please fix this bug!

Unfortunately this would be a breaking change. What we need to do is add the property to TextBox to choose one over the other and keep the default the same. Switching this to a feature proposal.

Any plans to tackle this issue in the near future? I'm having the same problems in our UWP app and to say the least: This behavior does not match any other newline delimiter on Windows at all!

Again, a strange thing for Microsoft to wait years for such an annoying little thing... If someone out there does notice this bug..


Remove usage of goog.color and closure named colors

There are some mentions of goog.color in the comments, perhaps those should be removed too? In that case the private member ol.color.rgbColorRe_ will have no explanation, is that ok?

There are some mentions of goog.color in the comments, perhaps those should be removed too

Yes, these comments should be updated/removed.
In addition, we'll need to add upgrade notes for people who were using ol.ENABLE_NAMED_COLORS.

Amended with updated comments and upgrade note.

Thanks for the input, updated branch with isHex removed and new update notes based on feedback.

This removal will affect our ability to handle named colors in the WEBGL renderer.
To avoid this, a straightforward solution is to copy the goog color table into our code.

Sure, could do that. I was actually initially going that way but decided/thought it wasn't a feature worth keeping. Opinions from previous reviewers @tschaub and @marcjansen?

Fine for me if it isn't included if WEBGL isn't included.

I've made so that this PR only removes the use of goog.color. Cannot change the title of the PR to reflect that ol.ENABLE_NAMED_COLORS is left instact, but the commit message should be ok.

I've made so that this PR only removes the use of goog.color. Cannot change the title of the PR to reflect that ol.ENABLE_NAMED_COLORS is left instact, but the commit message should be ok.

Looks great to me. Thank you @bjornharrtell.

I really think we don't need named colors in our library. If someone wants to use named colors with WegGL, this can be translated with something like
function getRgbColor(color) {
  var el = document.createElement("div");
  el.style.color = "white";
  document.body.appendChild(el);
  var rgb = window.getComputedStyle(el).color;
  document.body.removeChild(el);
};

This could be done in the WebGL renderer, and of course el would not have to be created, added to the DOM and removed with every single call.

I agree. I'll wait for consensus before having another go at this PR.

Sorry @bjornharrtell for the back and forth on this.

@ahocevar, using window.getComputedStyle sounds like a great idea.
Having the conversion in ol.color.fromStringInternal_ would notably allow to share the cache; I think it would be better.
It would also make sense to have ol.ENABLE_NAMED_COLORS enabled by default for WEBGL users and allow to disable it as an optimization.

Having the conversion in ol.color.fromStringInternal_ would notably allow to share the cache; I think it would be better.

Fine with me.

It would also make sense to have ol.ENABLE_NAMED_COLORS enabled by default for WEBGL users and allow to disable it as an optimization.

We can then get rid of ol.ENABLE_NAMED_COLORS, because we don't keep all the color names in the code any more.

We can then get rid of ol.ENABLE_NAMED_COLORS, because we don't keep all the color names in the code any more.

OK, it is fine with me if we remove it.

what's the status with this? As NAMED_COLORS is disabled by default, and AFAIK not documented anywhere, I doubt whether many people even know of its existence.

I've rebased and made the changes so this PR simply removes NAMED_COLORS and any use of goog.colors.
I'm not sure how to complete the implementation suggestion using window.getComputedStyle, in particular to make it conditional in a way that does not slow or disrupt the Canvas renderer, so if it's still desirable to support named colors with the WebGL renderer that remains to be done.

you can remove tests in test/spec/ol/color.test.js

@bjornharrtell, if it is too complex to implement, then could you please update the changelog/upgrade-notes.md to state that using named color is no longer possible with the WEBGL renderer?

Thanks @gberaudo and @probins. I've changed the upgrade notes to explain that named colors are no longer supported with WebGL. I've removed one test and adapted the other that tests the cache since it still seem relevant.
I took another look at the suggested method from @ahocevar and while it looks like a neat hack I still do not see how to properly integrate it.

@bjornharrtell There were two typos in my snippet. I just updated it.

I'm a bit confused as to who should do what so this can be merged.

As the WebGL renderer is progressing, I'd like to take a second try at implementing the proposal from @ahocevar.

I've reimplemented so that named colors should be translated and cached. However I'm not sure how named colors are supported currently with ol.ENABLE_NAMED_COLORS at the default false and the canvas renderer - I suppose they don't need translation but I can't see the code path allowing that.

Very nice, thanks @bjornharrtell. With such a small code snipped, it was definitely the right decision to get rid of ol.ENABLE_NAMED_COLORS.

@bjornharrtell see https://github.com/openlayers/ol3/pull/1985#issuecomment-50462922 goog.color.names are irrelevant for Canvas, which uses names like 'cyan' etc whether ENABLE_NAMED_COLORS is set or not

Yeah I get that but I was worrying that my changes would mean that named colors now will be translated for the Canvas renderer regardless.

unnecessary added overhead, you mean. Also, is it necessary to create/add a new DOM element for every name? Would it not be better to have one named element and set the color?

As far as I can tell, ol.color.asArray is only used by ol.style.Icon when the color option is set  and ol.format.KML when writing KML. I don't see any renderer related use.

So the place to improve things is ol.style.Icon, where the color could be taken from the options as-is. Only the webgl renderer would have to call ol.color.asArray.
Any takers for a pull request with this improvement?


Minimap required

In sublime or atom. We can use minimap plugin to show where you are in current file.
But in vscode, there is no such plugin or internal to do such work.
Would you like add one？😀

Duplicate https://github.com/Microsoft/vscode/issues/4865


Fix our parallel (and repeating) builds (again)

The WAP packaging project in VS <= 16.7.3 produces a global property as
part of its normal operation that causes MSBuild to flag our projects as
out-of-date and requiring a rebuild. By forcing this property to match
the WAP values, we can get consistent builds.
That property is "GenerateAppxPackageOnBuild", and WAP sets it to
false. When we set that, of course, we don't get an MSIX out of our
build pipeline. Therefore, we have to break our build into two phases --
build, then package.
This is just like #3412, but a couple versions of VS in the future.
If you want to read a pareto-identical commit message, go read that one.

@msftbot merge this when it's done building

@msftbot merge this when 5 minutes do

This failed in x86 with no explanation. Really loving it.

/azp run

/azp run


Bot leaves Invalid Test Plan Item comments behind

See #112338.
They should all be deleted once the item is valid, I think it may only delete a single one?

Nevermind they got cleaned up :)