question about the finetune data

in readme ,you said when finetuned should "Generate mel-spectrograms in numpy format using Tacotron2 with teacher-forcing"
but the generated mel-spectrograms 's number is not equal the oral mel，in meldataset.py.  got the audio like this
if audio.size(1) >= self.segment_size:
mel_start = random.randint(0, mel.size(2) - frames_per_seg - 1)
mel = mel[:, :, mel_start:mel_start + frames_per_seg]
audio = audio[:, mel_start * self.hop_size:(mel_start + frames_per_seg) * self.hop_size]
in this way, if  we use the oral audio but use the generated mel,  the traindata will be wrong, right?

mybe  use teacher-forcing can get the same number of oral wav

mybe  use teacher-forcing can get the same number of oral wav

@yanyanxixi  I think I have the same question likes you. You have user teacher-forcing in tacotron training or hifigan training ? How did you config them ?
Thanks in advance

@yanyanxixi  I think I have the same question likes you. You have user teacher-forcing in tacotron training or hifigan training ? How did you config them ?
Thanks in advance

@yanyanxixi I think I have the same question likes you. You have used teacher-forcing in tacotron training or hifigan training ? How did you config them ?
Thanks in advance

just do it like training step,  can get the predict_mel with the same number of real_mel,   so it can get the loss

@yanyanxixi I think I have the same question likes you. You have used teacher-forcing in tacotron training or hifigan training ? How did you config them ?
Thanks in advance

just do it like training step,  can get the predict_mel with the same number of real_mel,   so it can get the loss

I close this as there are no recent updates. Please reopen if anyone needs additional comments.

@yanyanxixi I think I have the same question likes you. You have used teacher-forcing in tacotron training or hifigan training ? How did you config them ?
Thanks in advance

just do it like training step, can get the predict_mel with the same number of real_mel, so it can get the loss

Hi @yanyanxixi  , I have the same problem with the miss-match, can you explain more about the step you get the fit lenght mel

Do you change anything from the origin hifigan repo
How you get mel from tacotron2 ?

Hope for your teach!

Hi @v-nhandt21, I've solved the problem based on the repo: https://github.com/Yeongtae/tacotron2/blob/master/GTA.py, but it has some errors need to be fixed. if you cannot figure out, you can ping me, I will find the code which has been modified by me and give you the link 😅.

@v-nhandt21

Wow, Is GTA really work and match size with the mel from ground-truth audio?
But I still wonder the difference between the two ways of generating mel, then fine-tune by force it learn with L1 :)) Have you compare element (mel frame) of them.

Yes it's really work and improves the quality of audio more better. Indeed the gta came from the training phase of tacotron, tacotron is an auto-regressive model so the successive mel-frame will depend on the previous, so you can only generate one mel-frame at one time. In the inference phase, the model will predict the next frame based on the frame which has been predicted, but in the training the model will use the ground truth mel-frame to predict the next one, so the size of the predicted mel can match with the ground-truth. I remember when I used gta to handle the miss-match problem, there were some audios still have the miss-match of 1 frame, but the quantity is small so you can freely remove those.

And Do we need a quality Tacotron2 model first?

For my experiments you should have the good Tacotron model first, then generating mel-frame by teaching-force mode and finetuning the HifiGAN model with the generated mels and the quality of audio should have improved more better.


Prevent rewriting a term that contains an error.

@matajoh @sylvanc not sure if we want this change in semantics.  It would fix

https://github.com/microsoft/verona/pulls/#667

without requiring code changes.
It would make it impossible to explicitly match an Error node.

I think this is a small price to pay for avoiding various issues caused by inadvertently matching errors.


Support for running with threaded Chez Scheme builds

Hello,
I tried to get Swish running on Debian and saw a problem. As a general principle, when Debian packages a piece of software, it is built with all features enabled. In Chez's case this means that threading is enabled. In suspect that Swish's process model is not compatible with threading, but I think it is up to the developer to not use threading in a bad way. Please consider these changes that makes Swish run on threaded Chez builds.
There is one remaining issue and that is the location of scheme.h. As it stands right now the makefiles hard code both the Chez Scheme version and machine type. So it will also break when 9.5.1 comes out. How do you feel about calling scheme from the makefiles, to get the version and the machine type? An alternative, which may be more pleasant in the long run, would be that Chez Scheme installs a pkg-config file. (Another complication is that Debian puts the header in /usr/include/, but I'm seriously considering changing this).
/Göran

Thanks for thinking about systems where scheme is the threaded version. Although Swish isn't thread-safe, it could be used in multi-threaded Chez Scheme. Please update your pull request to rename Swish's with-mutex to with-gatekeeper-mutex in order to avoid confusion in the future.
With regard to the location of scheme.h, I like your ideas and haven't had time yet to work on that. Please submit a pull request if you're interested.

I've updated the branch according to your wish.
As for Debian's location of scheme.h, it will go back to the normal location when the next Chez release is out. Which idea did you like, calling scheme to get the version and machine type, or the pkg-config one?

Thanks, I merged the changes.

Calling scheme to get the machine type and version number sounds straightforward. I haven't used pkg-config, but it also is a possibility, and I already have it installed on all 3 platforms Swish supports, so that would work, too.

Maybe we should start by calling scheme and then look into submitting a change to Chez Scheme for a pkg-config file?

The advantage of calling scheme is that it will work on Windows. Windows doesn't support pkg-config natively but through Cygwin, and we're not using Cygwin's compiler in Windows.

Swish now calls scheme from the makefiles as desired. Thanks, @owaddell!


puppet 4 freezes arguments for a function

Puppet error: Error while evaluating a Function Call, can't modify frozen hash
Rspec-puppet should also freeze all parameters before passing them through to the function. Only after adding manual .freeze on the parameters, I'm able to reproduce the same error while running rspec tests

Do you have a manifest you can show that reproduces this error?
I'm testing a very simple manifest (e.g. test_function("a")) with both Puppet 4 and 3 function APIs and no strings, arrays, hashes are passed frozen as far as I can tell, using Puppet 4.8.2.
I see a regression when a class name is passed in (fixed in #446), but I remain unsure if Puppet really does freeze function arguments.

I had a function that executed a keep_if on a hash which broke for me (whether or not that is a good idea is open for discussion) but it should have been detected by the tests.

Was the hash defined in a manifest, or did it come from elsewhere? (e.g. Hiera, facts, ENC, another function)

It came from a fact

Ah, thank you, that makes more sense now.

https://gist.github.com/vStone/1bc3dd691c93dac1b8b33b0add8e467a

Would it make sense to restrict the freezing to a few well-known classes that would most likely cause issues, like String, Array, Hash, numbers?

Relevant api docs:
https://github.com/puppetlabs/puppet-specifications/blob/master/language/func-api.md#the-4x-api
should not modify the scope

@vStone totally agreed. Given @domcleal 's findings on Class I wonder what else freezing stuff indiscriminately will break.

Looks like it does not matter if its a fact or regular variable:
https://gist.github.com/vStone/1bc3dd691c93dac1b8b33b0add8e467a

Thanks, that's fascinating - the quoting seems to make a difference. If you quote 'foobar' with single quotes (as in your example), it's frozen. If you use double quotes (as I happened to), it's not frozen.
Either way, I think keeping the freezing is good - both to emulate this partial behaviour, and to test for scope modification.
I don't have any view on whether it's better to blacklist or whitelist classes though, I'm happy to change #446 to a whitelist if you'd prefer @DavidS.

I'm still digging through the puppet code to see where the freezing happens. will let you know if I find something.

A huge :man_facepalming: on the single vs. double-quoting. Thanks for working through this, both of you. Getting an idea where that freezing happens will hopefully clear up what rspec-puppet should do.

Despite the string inconsistencies, @vStone's correct in that facts are also frozen (both hashes and strings) so functions need to work reliably with both frozen and unfrozen data. Always testing them with frozen data seems the most useful behaviour to me.

Another relevant ticket: https://tickets.puppetlabs.com/browse/PUP-4825

http://www.rubypigeon.com/posts/a-review-of-immutability-in-ruby/ has been a good read.
Especially it points out that freeze is shallow. So freezing a hash might still leave a function open to erroneously modify a value contained in the hash.

https://github.com/adrienthebo/puppet/blob/fa522acf47f1ff632ef75a6c4cb4c1d1cf644024/lib/puppet/parser/scope.rb#L588

13:50 < vStone> Could somebody explain when/which/where function arguments are frozen before passing them through to a function? cfr https://github.com/rodjek/rspec-puppet/issues/442#issuecomment-275657629
13:50 < vStone> and/or update the relevant docs in https://github.com/puppetlabs/puppet-specifications/blob/master/language/func-api.md
13:57 < helindbe> vStone: there is no freezing going on in the function call API per se - that would be way to slow
13:57 < vStone> I got that far, but we are trying to determine where it IS happening
13:57 < helindbe> it is the responsability of each function to not mutate
13:57 < vStone> especially since we saw that double quoted strings are not frozen when passed, but single quoted strings and facts are.
13:58 < vStone> cc: Dominic
13:58 < helindbe> oh, trying to figure out who/where froze what is an argument?
13:58 < vStone> yes
13:58 < vStone> if there is a rule that can be duplicated in rspec-puppet :)
13:58 < helindbe> evaluator does not freeze, so if something came from an operation on a string, that sting would not be frozen
13:59 < helindbe> the lexer freezes tokens IIRC
13:59 < helindbe> certainly all keywords etc.
13:59 < Dominic> makes sense, and it doesn't seem unreasonable that a single-quoted string would be frozen either
14:00 < helindbe> hashes freezes keys IIRC, but may hand out copies (not sure)
14:00 < helindbe> if it was not expensive, we would be freezing all data that ends up as values in the puppet language
14:01 < vStone> so its best to assume that all arguments passed are immutable
14:01 < helindbe> yes, always

Indeed, for facts Puppet appears to deep freeze them instead: https://github.com/puppetlabs/puppet/blob/master/lib/puppet/parser/scope.rb#L775.


Jade includes

The Jade include directive doesn't seem to be working. The error displayed is:
ENOENT, no such file or directory 'includes/content.jade'
./includes/content.jade
nav
  a(href="#") Home
  a(href="#") Work
  a(href="#") Contact
section Content
  This is the content section.

index.jade
doctype html
html
  head
    title Testing
  body
    include ./includes/content.jade

Fixed....Changed line 86 in JadeCompiler.js from:
options.filename = 'base';
to
options.filename = filePath;


Embeds: Improve default WordPress oEmbed appearance

Context

Summary
Override the embed.php template shipped in core, with our own version. If poster image is set, use the Image render class otherwise fallback to built in embed.
Relevant Technical Choices

To-do

User-facing changes
Embed with poster
https://user-images.githubusercontent.com/237508/113140064-cfa0de80-921f-11eb-8e5f-2b621c80a8ae.mov
Embed without poster

Testing Instructions

QA

[ ] This is a non-user-facing change and requires no QA

This PR can be tested by following these steps:
Gutenberg test

Create a story and add a poster.
Publish story.
View story and copy the link to the story to clipboard.
Create a post
Add an embed block.
Paste link to story and click embed.
Check story renders in block editor.
View post on front end.

Classic editor test.

Create a story and add a poster.
Publish story.
View story and copy the link to the story to clipboard.
Activate classic editor plugin
Create a poster
Paste link to story in content
Check story renders in editor
View post on front end.

UAT

[ ] UAT should use the same steps as above.

This PR can be tested by following these steps:

Reviews
Does this PR have a security-related impact?

Does this PR change what data or activity we track or use?

Does this PR have a legal-related impact?

Checklist

[x] This PR addresses an existing issue and I have linked this PR to it in ZenHub
[x] I have tested this code to the best of my abilities
[x] I have verified accessibility to the best of my abilities (docs)
[x] I have verified i18n and l10n (translation, right-to-left layout) to the best of my abilities
[x] This PR contains automated tests (unit, integration, and/or e2e) to verify the code works as intended (docs)
[x] I have added documentation where necessary
[x] I have added a matching Type: XYZ label to the PR

Fixes #1687

The iframe is 600px wide, but the poster is only 360px wide.

An early version of this plugin did this.
	$image = new Image( $story );
			// Height from filter results in a oddly shaped image. This gives the correct width and a height that results in the correct height.
			$height = ceil( $width * 1.66666 );
			$output = $image->render(
				[
					'height' => $height,
					'width'  => $width,
				]
			);

This meant that knew you were requesting a 600 width embed and would take the times it by 1.6666 and give you a height of around 1000px. So fill the width. But the is a very long embed and would likely not fit on a lot of people's screen. It also ignores the request embed height, which was 300px ( as I remember ). I was also worried that the iframe may clip the story.
I can reintroduce / give you a screenshot what this looks like, if help.

I just pushed some changes that I think should work. Basically changes the aspect ratio for the oEmbed response data and iframe so that stories are always embedded in 3/5 aspect ratio (i.e. 360x600 by default).
It seems to work well in my quick testing. But of course some unit tests and more QA are needed.


add increment build support for makefile

Signed-off-by: Mark Liu<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
Currently, we call the make command will build some targets always.
$ make
build volume modules
build-daemon: bin/pouchd
build-cli: bin/pouch

But, we want to build some targets when source files changed.
If the daemon source files are changed, then build pouchd only
$ touch main.go
$ make
build-daemon: bin/pouchd

The daemon and client source files are changed, build pouchd and client both.
$ touch apis/types/container.go
$ make
build-daemon: bin/pouchd
build-cli:  bin/pouch

The source files are unchanged, do nothing.
$ make
make: Nothing to be done for `build'.

Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)? (你真的觉得不需要加测试吗？)
Ⅳ. Describe how to verify it
$ make clean
$ make
build volume modules
build-daemon: bin/pouchd
build-cli:  bin/pouch

$ touch main.go
$ make
build-daemon: bin/pouchd

$ touch apis/types/container.go
$ make
build-daemon: bin/pouchd
build-cli:  bin/pouch

$ make
make: Nothing to be done for `build'.

Ⅴ. Special notes for reviews

 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.


tests: publish reports

Try out this version of Leather — Extension build, Test report

These changes merge all the test reports, and publish them to a separate Github repo.
This means they're hosted via Github pages on: https://leather-wallet.github.io/playwright-reports/ + BRANCH_NAME.
Thinking about adding a github commenting tool to link to this here. Open to other ideas. See the report for this PR here https://leather-wallet.github.io/playwright-reports/tests/publish-reports/

All of our signing tests are flaky and keep needing to be rerun.


Can't use arrow keys in "Load Model from URL" modal input

Description
When inputting a URL into the "Load Model from URL" modal, I can't use left and right arrow keys to move my text cursor back and forth. I can't use home or end keys either. (I can use my mouse to click on a different spot in the text input and move the cursor there.)
Maybe it's because we have some arrow keys mapped to things like zoom.
Expected Behavior
My arrow keys should work! And ideally home and end keys too! (Delete and backspace work 🤷🏻♀)
Reproduction

Go to simularium.allencell.org and go to Load Model -> From a URL
Type something
Press left arrow, nothing happens, the blinking cursor in the text box doesn't move.

Environment
MacOS Big Sur + Microsoft Edge/Chrome/Safari

Also would be nice if the cursor automatically focused in the input box when the modal opens


Remove setting of the nodekey in validator quickstart

I tested not using this in the end-to-end tests, nothing in celo-blockchain seems to rely on this anymore, and  @marekolszewski was able to validate blocks on baklavastaging without it. Let's remove this from the docs

fixed here: #1854


Can't open settings while installing Visual Studio

When installing Visual Studio, it sets the IDE as the default application for opening .json files on Windows. As a result, when trying to open the settings from Windows Terminal, Visual Studio throws an error saying it can't be opened. Going into File Explorer and setting Notepad as the default app for opening .json files fixes the issue and the Terminal is able to open the settings.
Expected behavior here would be to have a fallback where the default app for opening .json files does not work, and open it on Notepad instead.
This is not really an issue with Windows Terminal itself, but it could affect the UX where the user may not understand why Windows Terminal is unable to open settings.

Wow, that's unexpected. Unfortunately, from Terminal's perspective, it has successfully opened the settings file.
It just so happens that the application that said it handled it handled it by popping up a dialog.
Terminal does fall back to Notepad, but when the launched process outright lies to us we can't recover from that ☹


Incorporating OCI ObjectStorage State Store component with dependencies

Signed-off-by: lucasjellema<EMAIL_ADDRESS>Description

Include new state store component (OCI ObjectStorage state store) in daprd - with its package dependencies. Import and registration in daprd main.go and additions in both go.mod and go.sum
(Following component submission instructions in the components-contrib repo)
Issue reference

Please reference the issue this PR will close: #[4095]
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[X] Code compiles correctly
[ ] Created/updated tests
[X] Unit tests passing
[ ] End-to-end tests passing
[X] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[2073]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

I think we need a doc for it under dapr/docs.

I think we need a doc for it under dapr/docs.

The documentation is included in PR https://github.com/dapr/docs/pull/2073 that is currently under review.


Footer.

I would like to have sticky footer. Any idea how to do it?

@philipbaginski sorry for the delay. We didn't see your issue. Did you find a way to make this work or do you need some help working this out?

I need help.

@philipbaginski what does your footer look like? Are you using the default Nova footer? Could you provide some context. Maybe a screenshot or code example.

I have default Nova footer.

@philipbaginski Do you mean the footer by Marshmallow © 2021· Theme v1.6.1 · Laravel Nova v3.22.0
Or do you mean the buttons etc.?

I have to check it. But as I remember it's does not matter. With any footer it's the same.

@philipbaginski We want to help you, can you please show a screenshot and/or example of what you to achieve?

@philipbaginski We want to help you, can you please show a screenshot and/or example of what you to achieve?

So, your footer from vendor/marshmallow/nova-styling/resources/views/partials/footer.blade.php looks like:

{{ config('app.name') }} {{ __('by') }} Marshmallow © {{ date('Y') }}·

{{ __('Theme') }} v{{ \Marshmallow\NovaStyling\Theme::version() }}
·
Laravel Nova v{{ \Laravel\Nova\Nova::version() }}

{{--  --}}

, and my footer from resources/views/vendor/nova/partials/footer.blade.php looks like:

{{ config('app.name') }} {{ __('...') }} ... © {{ date('Y') }}

    ...........

    ... v{{ \Laravel\Nova\Nova::version() }}

{{--  --}}

Both footers have a problem to by sticky to the botom.


Connection Issue

Hi,
first of all thank you for your work!
I have installed your plugin several ties now and I am facing the same issue.
Homebridge gets stuck durng start up telling me to check the log.
There is an odd error message.
Would you please have a look and let me know what can be done to fix this.
The Homebridge User is working fine when logging on to the Sysap.
Thanks
[24/01/2021, 12:13:07] [BuschJaegerSysAp] Initializing BuschJaegerSysAp platform...
[24/01/2021, 12:13:07] [BuschJaegerSysAp] Initialising BuschJaeger Plugin
[24/01/2021, 12:13:07] [BuschJaegerSysAp] Will try to connect to the SysAP at undefined
[24/01/2021, 12:13:07] [BuschJaegerSysAp] Trying to connect to SysAP
[24/01/2021, 12:13:07] [BuschJaegerSysAp] Initializing BuschJaegerSysAp platform...
[24/01/2021, 12:13:07] [BuschJaegerSysAp] Initialising BuschJaeger Plugin
[24/01/2021, 12:13:07] [BuschJaegerSysAp] Will try to connect to the SysAP at <IP_ADDRESS>
[24/01/2021, 12:13:07] [BuschJaegerSysAp] Trying to connect to SysAP
[24/01/2021, 12:13:07] [BuschJaegerSysAp] getaddrinfo ENOTFOUND undefined
[24/01/2021, 12:13:09] [BuschJaegerSysAp] Connected as<EMAIL_ADDRESS>[24/01/2021, 12:13:09] [BuschJaegerSysAp] Sent Authenticator
[24/01/2021, 12:13:09] [BuschJaegerSysAp] Received Local Key
[24/01/2021, 12:13:09] [BuschJaegerSysAp] Sent New Session Request
[24/01/2021, 12:13:09] [BuschJaegerSysAp] Sent Login SASL Message
[24/01/2021, 12:13:09] [BuschJaegerSysAp] Received SASL Challenge
[24/01/2021, 12:13:09] [BuschJaegerSysAp] Sent SASL Challenge Response
[24/01/2021, 12:13:09] [BuschJaegerSysAp] Received SASL Login Confirmation
[24/01/2021, 12:13:09] [BuschJaegerSysAp] Successfully Authenticated
[24/01/2021, 12:13:09] [BuschJaegerSysAp] Announced Capabilities to System Access Point
[24/01/2021, 12:13:09] [BuschJaegerSysAp] Requested Master Data Structure from System Access Point
[24/01/2021, 12:13:12] [BuschJaegerSysAp] Received Master Update from System Acccess Point
[24/01/2021, 12:13:12] [BuschJaegerSysAp] Sent Subscription Request

Please open another issue if this is still relevant.


Fix for MSVC

LoadDataFromFile/SaveDataToFile use fopen with unsupported file mode 'e' in MSVC.

Thank you!


Unit Localization Cluster tweaks

Problem

Issues with Unit Localization Cluster

Change overview
Renamed XML file to match name in zcl.json and all.xml.
Added explicit ClusterRevision.
Corrected type for TemperatureUnit.
Added FeatureMap.
ZAP regen.
Testing

None

Rebased

https://github.com/project-chip/connectedhomeip/pull/14258 includes these changes and checks are passing there


MC-21435: Replace styleName with className in kitchensink, use clsx where necessary.

There have been some changes to main since this started. Please merge main back into here and make sure there are still no usages of styleName or classnames.

[ ] merge main into feature/MC-21435
[ ] replace usages of styleName
[ ] replace usages of classnames


Add support for API and Package mappings

Description
Adds support for 3rd-party API and Package mappings.

not needed

Refers to: src/Microsoft.UpgradeAssistant.Mappings/Microsoft.UpgradeAssistant.Mappings.csproj:30 in 6f6cbb7. [](commit_id = 6f6cbb78689f26b7b3434285c3d756241f613b27, deletion_comment = False)

<Content Include="mappings\**\*.json">

You had some unit test project to test maps schema in this project?

Refers to: src/Microsoft.UpgradeAssistant.Mappings/Microsoft.UpgradeAssistant.Mappings.csproj:21 in 6f6cbb7. [](commit_id = 6f6cbb78689f26b7b3434285c3d756241f613b27, deletion_comment = False)

<Content Include="mappings\**\*.json">

You had some unit test project to test maps schema in this project?

Yes, see the tests/ directory. The tests parse the JSON files and verify that they are syntactically correct values (as well as JSON, obviously).

@abpiskunov I suspect that the dotnet.upgrade-assistant check does not complete because UA is no longer in this repo. Do you know where this check is marked as required and how to remove it?

@jstedfast Is the binary analysis feature still supported? We were linking to the documentation for it from learn.microsoft.com, but now the link is broken and I'm not sure what to link to.

binary analysis is supported however the CLI experience is different and our PMs are working on the blog post about that and learning docs. IN mean while new UA cli should guide you how to use new binary analysis.


[FEATURE REQ] Add version number to about page

Is your feature request related to a problem? Please describe.
Currently, grofer about just has some text. It should additionally have version numbers too for each version built.
Describe the solution you'd like
Adding version number to about. :P

[Just to clarify] these "version numbers" must be extracted from a config file, (like .json or .yml) yes?
I only found one yaml file in the repo (inside the .circleci directory) and I wanted to enquire if I'm supposed to read that or if an alternative solution is expected by the maintainers.
[also, it seemed odd to me that the config.yml file exists in a directory instead of being in a "config" folder or the repository, outside everything. Made me think that maybe that file has a different purpose that's counter-intuitive to me.]
Thank you.

Hey @7wik-pk! Welcome!
To answer your questions:

The version numbers in this context are typically ones that get tagged when a new release is made. For example, the tags can be seen in the tags section:

The config.yml file that you see holds the configuration of the Continuous Integration (CI) that runs when you create a PR or make a commit and is typically unrelated to grofer's version.

The CI's job is basically to ensure that the code that is committed does not contain errors and can be built successfully, and any tests that are written, are run and pass successfully.
In most cases, a PR is merged only if the CI completes successfully, however there are a few cases where the repo admins use admin privileges to merge a PR even if checks do not complete in the CI, this is typically due to a temporary glitch that occurs in the CI.
A successful CI would typically look like this (in grofer):

For adding a version in the about, the easiest way would be to hardcode it, but I feel like there might exist a smarter way to go about it, @Gituser143 did you have any specific method in mind or can we continue brainstorming?

I haven't really thought about how to go about this. But if we do come up with a solution, it should account for future releases. They should automatically have version updated, rather than manually have made a commit post/pre release.

Alright, I will try and do a little research on it as well. @7wik-pk I'll assign this to you and we'll help you get a PR raised and merged! Feel free to post any and all doubts/questions you may have here or on the #grofer-help slack channel or feel free to DM us if you're more comfortable with that 😄

Sure, thanks
but I had a proposal: why not make a yaml/json or any other kind of config file for this project? that's the only thing I'm familiar with when it comes to keeping track of things like version/build (and even credits in some games)
If there's an alternative to that, I'd be happy to look into it

I'm not sure a config file would be the way to go, because you'd might as well just hardcode the version, because we'd have to manually commit a change to update version anyway. For now I'm thinking a simple hardcoding might suffice, but an action could probably be setup to extract version from the tag maybe (Might be better to go over this in a separate issue)? I'm not very sure about this.
My references are:

This shows how we can use github.ref for container version tags
This explains what these variables are.

CC @Samyak2 this might help with container registry versioning too

I found something interesting:
Go allows injecting values into package-level variables at build time, try building this program using:
go build -ldflags "-X main.atBuild=lol"

and on running, lol should print.
Since we already have a script that builds grofer executables before our releases, maybe we can modify that to take a version number and then build that into our executables.
For that, we would need to add a variable to the cmd package, preferably in about.go, something like:
...

// groferVersion is the version of grofer that is loaded in during build
var groferVersion

// aboutCmd represents the about command
var aboutCmd := &cobra.Command{...}
...

and then build grofer using:
go build -ldflags "-X cmd.groferVersion=<version>"

This would work great for making releases, but not so much if someone is building from source, but documentation/build scripts for that could be provided?

This is great, I like this.

This would work great for making releases, but not so much if someone is building from source, but documentation/build scripts for that could be provided?

For versioning at build time, would it possible to get the last commit's hash?
For example, neovim hardcodes the version number if not in a git repo, otherwise it uses git describe to get a tag.
Running git describe --first-parent --tags --always --dirty on my branch of grofer gives:
v1.2.0-27-g0de6471

We could use this as the version.

This will need a build script or a Makefile for building though (or a really long command xD).

Here's an example of Go-based project that uses Make for building. The command git describe --always --tags used in their Makefile gives the same output
v1.2.0-40-g0de6471

Sorry for all the notifs, here's a better example of dgraph's Makefile. They too use build time variables (which @MadhavJivrajani detailed above) here.

Yeah, that's exactly what I had in mind, but didn't know the commands :p Thanks for the links!

So, we would have 3 types of scenarios:

When someone does a go get and runs grofer

This is the only weird case. Hardcoding is the only thing that comes to mind, will have to think a bit more on this

When someone builds from source

This is relatively straightforward because of the above discussion

When someone downloads the binary as a release artifact, maybe using something like curl

This is straightforward as well because of the script we have for creating release binaries.

This is the only weird case. Hardcoding is the only thing that comes to mind, will have to think a bit more on this

One thing that comes to mind is something like, if the groferVersion variable is non-empty, only then add a version to the about paragraph. But not sure how I feel about this because of it being inconsistent

Does go get use the latest main/master branch or the latest release?
I don't like the idea of omitting version when installed from go get. One of the reasons I want version info in the about page is to ensure that go get updated grofer correctly (and I'm running the correct/latest version of it).
One alternative is hardcoding it to 1.2.0-dev (or whatever the current version is) by default. Although this will need to be updated on every release which is not very bad xD

I don't like the idea of omitting version when installed from go get. One of the reasons I want version info in the about page is to ensure that go get updated grofer correctly (and I'm running the correct/latest version of it).

This makes sense, go get does work with a version too, omitting gets latest I think. I could be wrong though.

Waaaaaaaaaiiiiiiiiiiiiiiiiiiiiiiit a minute
You can do -ldflags with go get as well 🙃
We can document it in the README

That's nice, but the issue is that we'll also have to update the README on every release to change the command xD

Edit: if we're doing that, why not hardcode it in the code itself xD

Yeah lol fair enough. Although I'd want a safeguard for not forgetting to update it when a release is made, something like the script which checks for licenses, but is run only when you create a PR to stable, and checks if the groferVersion at the HEAD of stable is same as groferVersion at HEAD commit in PR, if so, exit with non-zero exit code, giving an appropriate error message.
We should create a new issue for this.

@7wik-pk sorry for all the hastle and possible confusion, for this issue, you can go ahead and hardcode a version of v1.3.1 (the next release version) in the cmd/about.go file as a variable groferVersion as shown above.
If you're further interested in contributing to the versioning aspect of this, feel free to take up the issue that's created for:

script which checks for licenses, but is run only when you create a PR to stable, and checks if the groferVersion at the HEAD of stable is same as groferVersion at HEAD commit in PR, if so, exit with non-zero exit code, giving an appropriate error message.

because you'd might as well just hardcode the version, because we'd have to manually commit a change to update version anyway.

yes, we would have to hardcode it in the yaml file, but I was thinking that in the future you could create more packages/scripts/programs that will make use of version, and hardcoding it in one place (yaml file) and pulling it from there everywhere you need to use it would be better than hardcoding everywhere : this is what I was thinking at the time
but yes, you might as well create a package-level variable (or even export one) in the about.go file instead, and pull it from here everywhere else, but I found this tool that automatically updates a json file whenever someone releases a new build (compatible with major & minor) so you could create a config file once and have something like this update it automatically in the future
(apologies for replying this late, I happen to be nocturnal)

I found this tool that automatically updates a json file whenever someone releases a new build (compatible with major & minor) so you could create a config file once and have something like this update it automatically in the future

Hmm interesting, thanks for sharing this! Might be worth looking into the future.

that's ok, someone will be doing it the smarter way in the future anyway, so we might as well leave it like that for now

Can you elaborate? Leave it like how?

Can you elaborate? Leave it like how?

I meant we might as well not add version to about.go for the moment because

Hardcoding is not going to be a good solution
Someone (probably myself) is going to replace it with a better solution in the future anyway, so in a way there's no point

Should it be replaced in the future by a better method, it can be an enhancement. However till that time comes, imo we still need the version number.
Hardcoding isn't a bad idea if we have the nescessary automation and checks in place.

As a comparison, in browser-history I have to change the version in 3 places before a release xD. @7wik-pk your idea of having a config file should help there.

if you choose to go ahead with a config file, we won't need to hardcode a variable in the about.go file though.
we could pull it from the config file inside the about.go script.
I suppose now I just want to ask if I should be hardcoding a variable now or not lol

if you choose to go ahead with a config file, we won't need to hardcode a variable in the about.go file though.

We would need to hardcode it in the config. Even if we try out the tool you linked, we would have to give write access to a bot-type thing, and then deploy that, which would have costs, I feel like that's a little overly complicating things. Instead, a script to check in the CI itself if the version number is updated or no is pretty straightforward imo and robust enough to sustain

I suppose now I just want to ask if I should be hardcoding a variable now or not lol

Yep, go ahead xD

Sorry for the confusion, I was trying to show that hardcoding a variable is not a bad idea. You should go ahead with doing that. Harcoding + the script @MadhavJivrajani mentioned should be good enough for a long time.

ok, I know it has been nearly 2 weeks, but I got really busy, you know, life and sh*t
so apologies for that, but I'll definitely get this done (might need another 2 weeks lol, but will definitely do it at some point)
I'm caught up with too many obligations/tight deadlines atm, but I'll finish everything in time

(just wanted to let you guys know, I didn't intend to just disappear without any acknowledgement)

I have NOT tested grofer on my system yet because I use Windows for everything so I couldn't build it successfully.
Since it's an insignificant modification of the script, I'm hoping that's ok.
In any case, I'll set up a Linux VM soon and test it anyway.
For now though, please let me know if I somehow managed to break the code by adding three lines. That would be hilarious.
Thanks


Cleaned mono projects / enabled Travis

Enabled Travis Mono build

renamed mono2 + monodev => mono
disabled unit tests for mono.sln (won't work in xbuild or Travis. "input string not in correct format". Moved to NLog.mono_with_unittests.sln

[ ] enable travis for NLog.

superseded by #858


cp: cannot create regular file, Operation not permitted

Hi,
The update process breaks for me when it's in the SDK portion of the script, check below:
root@pi:~# rpi-update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** Downloading specific firmware revision (this will take a few minutes)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   168  100   168    0     0     21      0  0:00:08  0:00:07  0:00:01    63
100 20.9M  100 20.9M    0     0  17301      0  0:21:11  0:21:11 --:--:-- 41930
 *** Updating firmware
 *** Updating kernel modules
 *** depmod 3.10.38+
 *** Updating VideoCore libraries
 *** Using HardFP libraries
 *** Updating SDK
cp: cannot create regular file `//opt/vc/src/hello_pi/README': Operation not permitted

Any hints on what can cause such behaviour ?

@popcornmix there have been no response to your suggestion so I believe this should be closed.


Provide .editorconfig for easier contribution

Working on #127 i had many auto formatting issues (indent style, indent size, new line eof).
It would be awesome if the contributors could add a  EditorConfig file so others can easier contribute to this starter project.
Regards

Hi @bullshit , it should be fairly easy with the current setup, just  run mvn clean install as usual before you commit the code, that will automatically format it.

Just as an example mvn formatter:format and a git diff shows "26 files changed, 919 insertions(+), 1015 deletions(-)"
The formatter also just formats java classes and not for example *.xml.
BTW I'm using Intellij

Would be also better to use this plugin what is much more mature, and handles XML files also:
https://github.com/diffplug/spotless/tree/main/plugin-maven

Looks like a good replacement to validate formatting in CI.
A .editorconfig for indent style, size, .... so the IDE can automatic detect it would be great.
Otherwise i have to figure out which style every project uses. (And i work on quite a few)
VSCode, Eclipse and IntelliJ have a plugin to support editorconfig and it's widely used.
This could be a good start
root = true

[*]
indent_style = spaces
indent_size = 2
charset = utf-8
max_line_length = 140
trim_trailing_whitespace = true
insert_final_newline = true

[{*.markdown,*.md}]
trim_trailing_whitespace = false

But if you add spotless i guess i can live with that and add a commit hook to run the formatter.

It seems to me that the formatter plugin doesn't use the configuration from this project.
I head to execute the formatter like the CI with the -DconfigFile parameter.
./mvnw -V -ntp -e formatter:format -Dconfigfile=$PWD/contributing/eclipse-google-style.xml --file pom.xml

If spotless also supports other file types than the editorconfig isn't that important. Thanks for your time.


Relative path for images in subfolders

If a user is on page /blog/kaggle/index.md and tries to do \fig{./img.png} the image will be searched for in /assets/blog/kaggle/index/ instead of /assets/blog/kaggle/

Would it be possible to also have it work for normal markdown syntax? ![kaggle image](./img.png) ?
Currently the relative path doesn't seem to work if written like this.

I'm reluctant to do this as it may just cause confusing behaviour for users who would be migrating from the likes of Jekyll, as much as possible I'd like to have the base markdown -> html follow standard-ish conventions and everything else be commands so that it's clear that the behaviour is different.
Btw if you're tired of writing \figalt or would like something more convenient to write, you can always define your own for instance \fa{1}{2} :)

I see. Understandable yeah I think moving my blog over to Franklin needs me to do some changes to every post anyway so this shouldn't be a big deal. Thanks and keep up your awesome work!

Thanks for the feedback!


URL for Gradle sources is hard-coded into SourceDistributionResolver

URL for Gradle sources is hard-coded into SourceDistributionResolver.
So source downloading failed in case of Service.gradle.org is blocked by corporate firewall or tracker software installed on local host.
Expected Behavior
User must have ability to set custom URL (server name and path for artifact)
to make Gradle download sources from intranet repositories (Nexus, Artifactory, etc)
or
User must have ability to make Gradle use URL from wrapper.properties in project.
Current Behavior
Building Kotlin script model, Gradle tries to download sources on each module in project.
If each attempt is failed, it spend a lot of time and make IDEA very slow .
Context
Steps to Reproduce
IMHO, it should be reproduced with blocking resolving Service.gradle.org on develepment machine.
Your Environment
Gradle 6.7.1 - 7.2
Windows 10 developer machines
Project with ~60 modules and ~ 10 internal plugins
Jetbrains IDEA  2020.2

This SourceDistributionResolver doesn't seem to be a Gradle class. Are you sure this is not an IntelliJ problem? If so, pls. report it there.

Copying this from my report (#20869):
A workaround for this is to specify the "-all.zip" distribution instead of "-bin.zip" (since the code actually checks for the presence of the src directory, before attempting to download the sources).
Also - not replacing the ability to specify a custom sources URL -, a convenient default behavior would be to deduce the sources URL from the distribution URL. Even though it is not technically 100% backward compatible, it should be in realistic use-cases.

why isn't this fixed yet? I actually had no luck using -all with intellij

@xenoterracide One thing you have to consider is that after you change it to "-all", you have to kill all daemons, because otherwise Gradle only checks the version (which is the same for all and bin), and will just reuse the "-bin" version.

either way you may not want all, all the time, because CI doesn't need things like source and javadoc

I agree with @kelemen that it could, and probably should, drive the src download URL from the distribution URL.

We have made a raw proxy repository for the distribution downloads, but of course this does not work for the src download because it is hard-coded. Perhaps just add another property to gradle-wrapper.properties?
It seems like a really bad idea to keep the src download URL unmodifiable.

Any update on this issue? I am facing same problem
Should I use -all instead of -bin?

@sk23628 I think -all is the only solution for now.

Just ran into this issue too LoL

Nice to see a year later I had the exact same problem, forgot, but thankfully I gave myself the answer already


Save grammar and test input in online version to localStorage

It would be very nice if the online version retained its state between reloads, closed an reopen windows, etc. All that needs to be done is to save the grammar and input to localStorage on change and set them from localStorage on load.

I like this idea, but want to think about how it would interact with #179.

IMO, the URL shouldn't update automatically. It's not needed for remembering the state, though it may be useful for sending links, e.g. in an email. You could have a button that copies the URL with encoded content to the clipboard.
Then, on load:

if location.target isn't empty and it decodes correctly

save the decoded state to localStorage
set location.target to empty (to avoid overwriting the local state on future reload)

if localStorage has local state (from earlier or just created), and it decodes correctly

load decoded content into textareas/editors

else
set editors to empty or to example grammar/input


Updated the login/register page - mobile design

Issue Number
fixes #184

Describe the changes you've made
I have changed the mobile design on the Login/Register page in which I had change the size of the image, resolves the overlapping footer problem, change the size of the 'language' button, etc.
Describe if there is any unusual behavior (Any Warning) of your code(Write NA if there isn't)
NA
Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] All new and existing tests passed.
[x] The title of my pull request is a short description of the requested changes.

@cyntss  I have made the changes according to your requirements. Kindly review it. Thank you for guiding me.


chore(deps): upgrade configuration

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-configuration-k8s-25-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 3213

Questions ?
Please refer to the Backport tool documentation


Stop using browserify alias for 'Platforms'

Use of an alias for Platforms comes in the way of a truly CommonJS compatible npm package

Error when requiring bundled module from webpack:
WARNING in ./~/azure-mobile-apps-client/dist/MobileServices.Web.min.js
Critical dependencies:
2:440-447 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require th
e original source to get better results.
 @ ./~/azure-mobile-apps-client/dist/MobileServices.Web.min.js 2:440-447

:+1:

https://github.com/Azure/azure-mobile-apps-js-client/pull/197 closes this.


Support nested inbound directory structures

Changes
Adds in the ability to have a nested directory as the source of incoming files.
Why Are Changes Being Made
Currently when processing an inbound folder that is a nested directory (ex: "inbound": "/client_directory/with/subpath", the processing of the files fails due to processFile being called with a directory instead of a specific file. This is not a fair assumption if the InboundPath(), ReconciliationPath(), etc. have any "depth" to them.
In other places we make use explicitly of the agent's path information to determine what folders/files to operate on.  Following a similar pattern here.
NOTE: The way that the audit folder path is constructed in processFile currently does not show the full/nested path but rather just the "last" directory in this hierarchy.  If the full path would be preferred (debatable) can also work on making some of those changes.

Noticed that there are some warnings now being thrown for recursive delete for the base directories as well, will take a look and get it fully working.

Please make this a required to opt-in feature since it will break changes for some people like us 🙏🏻

@yordis Appreciate the feedback and nudge for a configuration parameter.  I updated the description of the issue to ensure it's clear the current and adjusted functionality present, it was a bit surprising to us the way it was currently working.
I don't believe that the changes proposed here should break an existing setup unless you have a folder structure on the server that contains nested directories in which case I think you would already be seeing the same issue that we are.  Please let me know though if I am missing something!
(Also as a side note, if it is preferable to be more explicit it ProcessFiles to operate directly off of the paths of the agent we can go that route too.)

I decided to just go ahead and adjust to using the explicit folder structure.  Let me know if this feels safer/better.

Codecov Report
Base: 40.81% // Head: 40.81% // Increases project coverage by +0.00% :tada:

Coverage data is based on head (319a37d) compared to base (b8e8663).
Patch coverage: 62.50% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #158   +/-   ##
=======================================
  Coverage   40.81%   40.81%
=======================================
  Files          90       90
  Lines        3891     3876   -15
=======================================
- Hits         1588     1582    -6
+ Misses       2008     2001    -7
+ Partials      295      293    -2

Impacted Files
Coverage Δ

internal/incoming/odfi/scheduler.go
31.91% <0.00%> (ø)

internal/incoming/odfi/processor.go
73.33% <71.42%> (+7.77%)
:arrow_up:

internal/upload/sftp.go
65.47% <0.00%> (-0.90%)
:arrow_down:

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.

Has this been working for you?

@jrnt30 based on my career experience, the fewer assumptions, the better. These configurations are set up once every few times or once and never change.
In case of the changes, you probably want things to break if it wasn't expected.
So, your solution is something I would do. We use Terraform and Helm to provision things, so there is a minimal cost to it. We do not have any dynamic directory creation ever.

It has been working for us, but wanted to call out two things.

It was unclear to me at the time that the "absence of a path" meant that the SFTP user's working directory would be used for the Paths().  I haven't attempted to go back and explicitly setting these things to fully qualified (but non-existent) paths to see if that would have resolved this.

Additionally, using relative directories we found another issue that I haven't gone back to resolve yet.  The Agent functionality differs between the SFTP and FTP clients when using local directories for the xPaths.

The FTP client cds into the different paths and pulls the files from that directory locally.
The SFTP agent's code lists the files for each of the directory using the user's working directory joined with the relative paths.  It then uses the relative path to attempt to Stat the file and download it, however when doing so the path that was constructed from the file listing does not pass the .Stat command.

Has this been working for folks? My bad it hasn't been merged. I'm reading the comments again to understand what the tradeoffs are.

The SFTP agent's code lists the files for each of the directory using the user's working directory joined with the relative paths. It then uses the relative path to attempt to Stat the file and download it, however when doing so the path that was constructed from the file listing does not pass the .Stat command.

Sounds like we need to resolve the path within the SFTP server before trying to stat?

Thanks for updating this PR. I'm comfortable merging if you think it's ready.

Hey Adam!  Sorry for the delayed response, have been OOO for a bit.  This has been working for us with the caveat that we use absolute paths for the directories.
An example that does not work:
Server with a base root FTP folder of: /
User with a default working directly different: /user/jrnt30/
Any xPath that is relative and not absolute: ./files
If the project would like to support both relative paths to the user's working directory, there is additional work that would need to be done to get SFTP working to match the behavior of the FTP processor.  I looked at it briefly but didn't see any similar cd like capability in the Golang SFTP client and stopped pursuing it.

Right. The SFTP client doesn't support cd like behavior. I'm thinking that we want both clients to support:

Absolute path provided. (e.g. /data/returned/)
Relative path from user's home (e.g. ./returned/)

In your example I'd expect the resolved path to be /user/jrnt30/files, right?

In your example I'd expect the resolved path to be /user/jrnt30/files, right?

Yep!

Right. The SFTP client doesn't support cd like behavior. I'm thinking that we want both clients to support:

Absolute path provided. (e.g. /data/returned/)
Relative path from user's home (e.g. ./returned/)

Is support for both path types something you would like to see in the PR prior to merging?  One of the things I have not explored is what visibility we have into the CWD of a user's default home directory to construct a fully qualified path we might need.
IIRC there were some differences in how SFTP and FTP worked for these different relative vs. absolute path types as well. I had started trying to replicate our SFTP setup a bit more directly in the Docker Compose setup included but haven't looked at it in quite a while.  If this is something you'd like to tackle now I can try and get a few hours over the next week or two to contribute an example.

FYI, I just got bit by this and our banking partner isn't going to change their directory structure to be unnested.  Any idea if this is going any time soon?

Yea, I can release this today. It seems safe enough to deploy.


find the className fail

i have a problem.
wrapper.find('.icon').simulate('click')-----fail
Method “props” is only meant to be run on a single node. 0 found instead.
testComponent.js
import React from 'react'
import style from './test.css'

var testComponent  = React.createClass({
    render: function() {
        return
 this.props.func()}>

;
    }
});

module.exports = testComponent;

test.js
import React from 'react';
import {shallow, mount, render} from 'enzyme';
import testComponent from '../testComponent.js';

const setup = () => {
    // 模拟 props
    const props = {
        // Jest 提供的mock 函数
        func: jest.fn()
    }
    // 通过 enzyme 提供的 shallow(浅渲染) 创建组件
    const wrapper = shallow(<testComponent {...props} />)
    return {
        props,
        wrapper
    }
}

test('testComponent is able to clcik', () => {
    const { wrapper, props } = setup();
    wrapper.find('.icon').simulate('click');
    expect(props.func).toBeCalled()
});

What does wrapper.debug() say? I don't see why style.icon is necessarily the string "icon".

@ljharb Thank you for your attention to this issue，
i use webpack to manage my code，import the style-loader so that className is style,icon
test.css.
.icon{
  color:#fff;
}

@ljharb  now I use the debugging tool to print it

@ljharb
debug is

I'm not sure how importing css works; but in that example it's clear that style.icon is undefined, not "icon".

Happy to reopen if there's something actionable here.

I have the same issue, using local css in my component.
Code
import React from "react"
import styles from "./HorizontalSelectElement.scss"
import toJS from "../ToJS"
import PropTypes from "prop-types"
class HorizontalSelectElement extends React.Component {
handleClick = event => {
event.preventDefault()
if (this.props.selected === false) {
this.props.updateParent(this.props.elementIndex)
}
}
render() {
return (

)
}
}
Test
describe("HorizontalSelectElement correct class when selected", () => {
const index = 1
const data = { colourDescription: "Silver", colourCode: "#C0C0C0" }
it("renders colour name and colour block", () => {
const wrapper = mount(
,
)
console.log(wrapper.debug())
}
Output of wrapper.debug()

@Kale-ab it seems apparent that your css import isn’t mocked out properly for testing, which is why you get undefined in the debug.

I'm also having the same issue, except my debug outputs:
`

testpheno

`
How do I get enzyme to reference these classes when they're obscured by webpack bundling?

For anyone still struggling with using local css files in tests (and you are using webpack), https://facebook.github.io/jest/docs/en/webpack.html#mocking-css-modules .


[FEAT]: Add AMR enrichment to 'Enrich metadata with AI assistant'

the back-end should call both gollm tasks but only send 1 client event
the order should be:

amr enrichment
model card


[cinder-csi-plugin] Example file is outdated

Is this a BUG REPORT or FEATURE REQUEST?:
/kind bug
What happened:
The example of Cinder CSI snapshot in [1] is outdated. Parameters and API endpoints are changed and won't work in 1.18.
[1] https://github.com/kubernetes/cloud-provider-openstack/blob/master/examples/cinder-csi-plugin/snapshot/snapshotcreate.yaml
What you expected to happen:
I referenced to [2] which gives me a valid example. Maybe refer to the common repo or copy the content periodically from there.
[2] https://github.com/kubernetes-csi/external-snapshotter/blob/master/examples/kubernetes/snapshot.yaml
How to reproduce it:
error: no matches for kind "VolumeSnapshot" in version "snapshot.storage.k8s.io/v1alpha1"
Anything else we need to know?:
Environment:

openstack-cloud-controller-manager(or other related binary) version: 1.18
OpenStack version: unknown
Others:

@eumel8 yes, this is valid bug , with updated provisoner version to 1.6.0 , v1alpha1 is no longer supported . Its supported only till 1.4.0 . I suppose we need snapshotter v2.0.0 to use v1beta1.
@jichenjc will you be able to check this?

ok, seems we have to faster https://github.com/kubernetes/cloud-provider-openstack/pull/974
I am blocked by https://github.com/kubernetes/cloud-provider-openstack/pull/997 because not enough time to check and less expertise in this area
so maybe without CI e2e let's check manually with https://github.com/kubernetes/cloud-provider-openstack/pull/974 then it should fix the problem

@jichenjc great , sounds like a plan . I can check the e2e part sometime this week .
Between , it would be good if you could manually test the 2.0.0 version upgrade with existing example files and get the PR ready .

/assign @jichenjc

The PR is merged, maybe we need wait for CI e2e test then close this issue

@jichenjc we can close this , as the issue mentioned in description should be fixed by #974
@eumel8 pls reopen incase you still face the issue. Should be available in latest image or 1.19 release version which we would be doing in couple of days.

@ramineni thanks for the work. I'm now in 1.19 and endpoints are correct, but I've got the following error:
I1206 23:06:27.130534       1 snapshot_controller.go:292] createSnapshotWrapper: CreateSnapshot for content snapcontent-a9a5c55e-781b-4024-acd2-9ebc7961d715 returned error: rpc error: code = Internal desc = CreateSnapshot failed with error Bad request with: [POST https://evs.eu-de.otc.t-systems.com/v3/xxxxxx/snapshots], error message: {"badRequest": {"message": "Invalid volume: Volume e129824a-16fa-486d-a8c7-482945a626ff status must be available, but current status is: in-use.", "code": 400}}

I think it's cloud-specific. Documentation says, force: true would be required to snapshot EVS in use state. The field is optional in Cinder V3 API

I think it depends on your use case, if you expect to snapshot for in-use volume you should enable the field .


Couldn't find

Problem encountered on https://dotnet.microsoft.com/learn/aspnet/hello-world-tutorial/create
Operating System: windows
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.

Is this where you created your project? It doesn't seem that you're in the project directory. Did you run the command cd myWebApp as well?


[vscode devcontainer]A fatal error has been detected by the Java Runtime Environment

Please provide a brief summary of the bug
I use vscode devcontainer on a java project. Got the following error for the past month and couldn't get IntelliSense for java. Log file attached.
hs_err_pid939.log
Did you test with the latest update version?

[X] Yes

Please provide steps to reproduce where possible

install docker desktop
clone the repo: https://github.com/zanqi/compiler
open it in vscode
vscode should popup a prompt on bottom right to open It in devcontainer. Click blue button to do so
after things settled (no more in progress UI on the screen), open a java file
"java: initialize workspace" in the bottom bar appears, but never finished. Click on it will see the error I am reporting.

Expected Results
no error
Actual Results
as reported
What Java Version are you using?
openjdk 21.0.3 2024-04-16 LTS OpenJDK Runtime Environment Temurin-21.0.3+9 (build 21.0.3+9-LTS) OpenJDK 64-Bit Server VM Temurin-21.0.3+9 (build 21.0.3+9-LTS, mixed mode, sharing)
What is your operating system and platform?
Ubuntu 24.04 LTS on amd64
How did you install Java?
vscode devcontainer, select java in select container features

Did it work before?
Yes, used to work a month ago

Did you test with other Java versions?
No

Relevant log output
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007ffffeec3a2d, pid=939, tid=991
#
# JRE version: OpenJDK Runtime Environment Temurin-17.0.11+9 (17.0.11+9) (build 17.0.11+9)
# Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.11+9 (17.0.11+9, mixed mode, tiered, compressed oops, compressed class ptrs, parallel gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0xc87a2d]  void OopOopIterateDispatch<PCIterateMarkAndPushClosure>::Table::oop_oop_iterate<InstanceKlass, narrowOop>(PCIterateMarkAndPushClosure*, oopDesc*, Klass*)+0xdd
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /workspaces/compiler/hs_err_pid939.log
#
# If you would like to submit a bug report, please visit:
#   https://github.com/adoptium/adoptium-support/issues
#
[Error - 11:32:36 PM] Client Language Support for Java (Syntax Server): connection to server is erroring. Shutting down server.
[Error - 11:32:36 PM] Client Language Support for Java (Syntax Server): connection to server is erroring. Shutting down server.
[Error - 11:32:36 PM] Stopping server failed
  Message: Cannot call write after a stream was destroyed
  Code: -32099

Might be related to #1094 as well.

@zanqi It looks like that you have both Java 21.0.3 installed and 17.0.11.  Is it the case that VS Code starts with 21 but you are targeting 17 for that project?

@karianna I don't have jdk 17 installed, but the redhat java language server for vscode seems to expect it.

@testforstephen could you help take a look?

@karianna I don't have jdk 17 installed, but the redhat java extension for vscode comes with an embedded JDK 17.

Just to clarify that the embedded JDK is for the language service internal use only. User still needs to install the JDK corresponding to their project needs.

Hey @zanqi, I followed your reproducing steps and Java extension is started well using the embedded JRE 17. See the screenshot below.

The embedded JRE of Java extension is from JustJ (which is based on Temurin), I'm not familiar with the specific JDK errors. Can you try to change the user setting "java.jdt.ls.java.home": "/usr/local/sdkman/candidates/java/21.0.3-tem"? This will force the Java extension to use your specified JDK to start the Java tooling.

Hi, @testforstephen, the setting key "java.jdt.ls.java.home" is not recognized by vscode.

One difference between our setup is I am using vscode on a mac.

F1 -> Preferences: Open User Settings

Yes, I run docker on Windows 11. Can you share specific info for your macOS machine?

Thanks for the instruction. I changed the Remote settings accordingly. Unfortunately, the problem still appears. Only this time, the error is reported by JDK 21
My mac info:
Chip: Apple M3 Pro
OS: macOS Sonama Version 14.5
The error:
[thread 8687 also had an error]
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007ffffed93690, pid=8670, tid=8672
#
# JRE version: OpenJDK Runtime Environment Temurin-21.0.3+9 (21.0.3+9) (build 21.0.3+9-LTS)
# Java VM: OpenJDK 64-Bit Server VM Temurin-21.0.3+9 (21.0.3+9-LTS, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, parallel gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0xd7c690]  oopDesc* PSPromotionManager::copy_unmarked_to_survivor_space<false>(oopDesc*, markWord)+0x40
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /workspaces/compiler/hs_err_pid8670.log
[thread 8688 also had an error]
#
# If you would like to submit a bug report, please visit:
#   https://github.com/adoptium/adoptium-support/issues
#

I noticed that your image is for AMD64 (x64), but your machine uses Apple Silicon. Was this intentional? Have you tried using the ARM64 image?

Yes, some of the packages I need are compiled for i386. It only works on AMD64 but not ARM64.
I tried switching the image to ARM64. The Java language server indeed works.

So this is a platform compatibility issue. let's narrow it down a bit. Can you manually run Java command on the devcontainer? for example, javac Hello.java and java Hello. I want to confirm if the problem is with the JDK itself or with the Java extension.

javac and java commands work fine. Only the Java extension is having trouble.

I don't know the last working version.

@zanqi Can you try again with the latest VS Code and Arm based JDK?


readme-CM console integrated instructions

Edit readme file with the CM integrated instructions from previous iterations

@kmyrup & @silveyy Wow. you guys are all over this. I wasn't even done adding commits. Sending email about this file as well.


HDDS-3922. SCM : Display the pipeline info on scm web page

What changes were proposed in this pull request?
Display Pipeline info on SCM Web URL
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-3922
How was this patch tested?
Manually

No Need to work on JIRA Nandkishor closed JIRA so closing PR


Adding example for LSTM with multiple output

Added an example for LSTM for determining if the test string starts with "A", "B", or "C".

@acagastya thanks


[BUG]: Execution failed for task ':app:mergeExtDexTvDebug' after updating repo to 6.4+

Version
6.4.0+
What platforms are you having the problem on?
Android TV
System Version
10
On what device are you experiencing the issue?
Real device
Architecture
Old architecture
What happened?
The project build fails after updating the repo to the latest version (6.4.3). I also tried 6.4.0 with the same outcome so I assumed that it is an issue with versions 6.4+. I tried changing the Kotlin version to 1.9.0 because some logs before the error pointed out incompatible versions but it also didn't fix this issue.

`ERROR:D8: com.android.tools.r8.kotlin.H
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':app:mergeExtDexTvDebug'.

Could not resolve all files for configuration ':app:tvDebugRuntimeClasspath'.
Failed to transform okio-jvm-3.6.0.jar (com.squareup.okio:okio-jvm:3.6.0) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, dexing-enable-desugaring=
true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=21, org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=releas
e, org.gradle.usage=java-runtime, org.jetbrains.kotlin.platform.type=jvm}.
Execution failed for DexingWithClasspathTransform: C:\Users\macie.gradle\caches\transforms-3\7a5b0e04df4def315618bf1f7df31fc6\transformed\jetified-okio-jvm-3.6.0.jar.
Error while dexing.

Reproduction
repository link
Reproduction
In my project just updating the repository and running the project causes the issue.

Hi @maciejsiiminski, thanks for reporting the issue! Did you tried to run your project via Android Studio? What happens then?

Hi @maciejsiiminski and @moskalakamil,
I've encountered the same issue, especially when running this command: react-native run-android.
When I run ./gradlew bundleRelease && react-native run-android --variant=release, it works, but I can't rely on this because I need to develop in debug mode.
The issue does not appear in version 6.3.0, but it starts appearing from version 6.4.0 on my side as well.
Note that I have tried setting multiDexEnabled to true and preDexLibraries to false in the defaultConfig of the module's build.gradle, but the issue persists.

Is it possible to get a sample project to understand / reproduce the issue ?

Is it possible to get a sample project to understand / reproduce the issue ?

I can't share an example cause my repository is private. On the other hand, i can share to you my build.gradle from my project and my module, maybe it can help.

seems very similar to: https://github.com/TheWidlarzGroup/react-native-video/issues/4138
Do you use an old react native version ?

My react-native version is 0.72.12 @freeboub

@maciejsiiminski If you can create a very small sample to reproduce the issue it would be useful!
I don't know how to investigate the issue ...

any solution guys??

@sonodima could you please create a small sample repo with reproduction?

I think I actually just found out how to fix it.
What fixed it for me was to bump minSdkVersion from 21 to 24.
For the react-native-video update (I was on 6.2.0) I also needed to update kotlinVersion from 1.7.22 to 1.8.0.


feat: moves to monthly release

What
Moves to automated monthly release
Why
Daily depenedncy updates cause this package to be too chatty for users who see many updates

:tada: This PR is included in version 0.7.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Use exit codes instead of writing 0 and 1

This will enable usage like this:
setop is-empty < my_file && echo "File is empty..." || echo "File is NOT empty"

if setop is-empty < my_file; then
  echo "Empty"
fi

Hey ginkoms,
Thanks for your contribution! I agree with you in that this sort of usage would be really great when used from within other scripts.
However, I'm sort of worried by the fact that nothing gets displayed on the console anymore when it's run as a standalone program, unless you explicitly print things based on the exit status. This worries me because this set of commands is directed mostly at people who're really new to bash (as I was, not so long ago when I started using these functions for the first time).
Can we look for some sort of a middle ground here? Let me know if I'm missing something obvious.

You can check to see if stdout is interactive:
[ -t 1 ] && echo 1 || exit 1

However using -t can have unexpected behavior:

But, as John points out:
if [ -t 0 ] works ... when you're logged in locally
but fails when you invoke the command remotely via ssh.
So for a true test you also have to test for a socket.
if [[ -t "$fd" || -p /dev/stdin ]]
then
echo interactive
else
echo non-interactive
fi
Source: http://www.tldp.org/LDP/abs/html/intandnonint.html

However AFAIK you cannot relay on that /dev/stdin does exist and/or is a named pipe


A value of type ‘PackIconMaterial’ cannot be added to[...] of type ‘UIElementCollection’

I get a error message in VS designer when trying to add a icon from the pack.
A „System.Windows.Markup.XamlParseException - Could not load file or assembly ControlEx, Version=<IP_ADDRESS>...“ is thrown when building the app.
Using VS 2017 Professional, C#7, Metro Alpha v2.0.0 -0186, IconPacks v2.3.0 and ControlEx v4.0.0 -0218.
App.xaml and MainWindow.xaml changed according to the Quick Start guide.

In my case I wanted a button with text and an icon. This did the trick:


docs(readme): add code coverage badge

Issue #, if available:
Description of changes:
Add our awesome code coverage badge!

Checklist

[x] Meet tenets criteria
[x] Update tests
[x] Update docs
[x] PR title follows conventional commit semantics

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report

Merging #577 (f7bfef1) into develop (8fcb23b) will decrease coverage by 0.04%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #577      +/-   ##
===========================================
- Coverage    99.95%   99.91%   -0.05%
===========================================
  Files          113      113
  Lines         4479     4479
  Branches       243      243
===========================================
- Hits          4477     4475       -2
- Misses           0        1       +1
- Partials         2        3       +1

Impacted Files
Coverage Δ

aws_lambda_powertools/utilities/parser/types.py
71.42% <0.00%> (-28.58%)
:arrow_down:

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 8fcb23b...f7bfef1. Read the comment docs.

@heitorlessa  here is the PR for adding the codecov badgge


Fix ELF generation for qemu_x86_tiny

When building hello_world for qemu_x86_tiny:
west build -p -b qemu_x86_tiny samples/hello_world

.last_ram_section gets wrong LMA - it's the same as virtual address, but it should be physical.
objdump -h build/zephyr/zephyr.elf
[...]
Sections:
Idx Name          Size      VMA       LMA       File off  Algn
[...]
 21 .last_ram_section 00000ff0  40115010  40115010  0000f0e0  2**0
                  ALLOC

Following change in ram-end.ld:
diff --git a/include/zephyr/linker/ram-end.ld b/include/zephyr/linker/ram-end.ld
index ad4da2b46f3..71d4571e0fb 100644
--- a/include/zephyr/linker/ram-end.ld
+++ b/include/zephyr/linker/ram-end.ld
@@ -12,4 +12,4 @@
 	_image_ram_size = _image_ram_end - _image_ram_start;
 	_end = .; /* end of image */
 	z_mapped_end = .;
-    } GROUP_NOLOAD_LINK_IN(RAMABLE_REGION, RAMABLE_REGION)
+    } GROUP_NOLOAD_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)

Fixes the issue:
objdump -h build/zephyr/zephyr.elf
[...]
Sections:
Idx Name          Size      VMA       LMA       File off  Algn
[...]
 21 .last_ram_section 00000ff0  40115010  00515010  0000f0c0  2**0
                  ALLOC

@FranciszekPin , can you please add a Zephyr issue with details on the problem seen and link it to this PR.


Improve ColumnSelectionTransformer

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

Project coverage is 100.00%. Comparing base (fd05439) to head (f430498).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #54   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           27        27
  Lines          525       525
  Branches        32        31    -1
=========================================
  Hits           525       525

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


fix(security): updating vulnerable packages

These build errors with the Selenium driver 😕

oh my god, this is terrible :(

@lirantal did you go trough helmet's changes ?
You probably need to update at least hsts options from milliseconds to seconds.

you're right, I haven't reviewed it carefully rushed quickly to resolve the vulnerable dependencies first to have a good baseline of packages. I also remembered they also changed the middleware names like contentSecurityPolicy to csp and such.
With the build failing on the E2E it's a painful process to push changes and get quick feedback, we need to fix them.

I updated Helmet stuff for Trustroots, you might be able to just copypaste from there: https://github.com/Trustroots/trustroots/blob/master/config/lib/express.js#L197-L449

@simison you guys also use milliseconds representation for the SIX_MONTHS period so you need to adjust it, or did I miss something?

@lirantal correct, I noticed that too and that's how I looked up that moment.duration code bit. :-)
Thanks!

LGTM. Love seeing those green check marks!

LGTM


Revert plotting-vs-y

🚀 Pull Request
Description

Closes #4493.  Cube data should now automatically go on the x-axis of an iplt.plot only if plotting against a vertical coordinate.
Since this is reverting to previous behaviour, for the affected tests I just looked in #3906 for what the good hashes used to be, and reinstated those.  It seems to me a good idea to do this before @wjbenfold starts moving the image-hashing infrastructure around! 😅

Consult Iris pull request check list

Thanks @lbdreyer, which category of the whatsnew should this go in?  Does it constitutes a bugfix if the previous change was deliberate (although we've changed our minds)?  Or should it go under "Features" or something else?

Thanks @lbdreyer, which category of the whatsnew should this go in? Does it constitute a bugfix if the previous change was deliberate (although we've changed our minds)? Or should it go under "Features" or something else?

A very difficult question! I always find determining what is/isn't a bug fix a very disputable issue!
I am leaning towards a "bug fix", with the following reasoning: A bug is something that produces an incorrect result. We have now decided that defaulting to put y-like coords on the y-axis of a plot is the incorrect behaviour. I think our original decision was wrong and we are now fixing it and that doesn't sound appropriate for a feature (I think a user may find this a bit strange when reading through the what's new feature list)
Although, I do think you could easily argue for either case (bug fix/feature) so I'm not terribly fussed which you go for.

Thanks @lbdreyer whatsnew now added:

Thanks @rcomer !


Render KnpMenu with custom template through Twig

I'm having issues in rendering a KnpMenu in a twig template according to a custom template.
The situation is the following: I have create three menus, 2 which should be rendered according to the default template provided, and the third (mobile menu) must be rendered according to my custom template. All the three menus should be rendered inside my navbar.twig template through knp_menu_render() function.
So what I do, inside navbar.twig is:
{{knp_menu_render('desktop',{'depth':2})}} {#The first menu#}
{{knp_menu_render('rightDesktopSection')}} {#The second menu#}

And the mobile menu rendered as:
{{knp_menu_render('mobile',{'depth':2,'template':'knp-menu/knp_menu.html.twig'})}}

That is what I understand I can do after reading the documentation.
However, no matter what I write as value for template key, mobile is always rendered using the default template.
This is the folder structure of my project:
|
|-lib/
    |-routes/ /*My silex routes*/
    	|-... /*Routes php files*/
    |-... /*Other files*/
|-templates/
    |-knp-menu/
        |-knp_menu.html.twig /*My customized template*/
        |-knp_menu_base.html.twig
    |-navbar.twig /*Where I render the KnpMenus*/
|-vendor/
    |-knplabs/
        |-knp-menu/
            |- /*All the KnpMenu source code*/
|-web/
    |-index.php /*My public endpoint*/

Provided it is possible to do rendering according to a custom template, I believe the issue is that the template path is wrong and the rendering, in this case, falls back to the default one. If so, which point of the folder structure the search starts from?

If you pass a wrong template name, Twig will throw an exception, it will not fallback to another template.
Are you sure that your custom template is never called ?

I tested it and I can even specify a non existant file, no error shows up and rendering is fine becuase menu is rendered with default template

So, let me clear things up a bit, maybe I did some mistake during initialization of the library.
This is the folder structure with the relevant files:
|
|-lib/
	|-includes/ /*PHP Classes for general reuse*/
		|- utilClass.php /*Class containing utility methods*/
		|- ...
    |-routes/ /*My silex routes*/
    	|-... /*Routes php files*/
    |- boot.php /*Bootstrap silex, twig and KnpM*/
    |-... /*Other files*/
|-templates/
    |-knp-menu/
        |-knp_menu.html.twig /*My customized template*/
        |-knp_menu_base.html.twig
    |-navbar.twig /*Where I render the KnpMenus*/
        |-index.twig
|-vendor/
    |-knplabs/
        |-knp-menu/
            |- /*All the KnpMenu source code*/

And this is the main logic run for rendering the menus:

boot.php:
 require_once __DIR__.'/../vendor/autoload.php';
 $app = new Silex\Application();
 //Other stuff
 $app['debug'] = true;
 //Some stuff
 $app->register(new Silex\Provider\TwigServiceProvider(), array('twig.path' => __DIR__.'/../templates'));
 $app->register(new SilexGuzzle\GuzzleServiceProvider());
 $app->register(new \Knp\Menu\Integration\Silex\KnpMenuServiceProvider());

 //Some more code

utilClass.php:
 class Utils	{
 	//Only the main functions are shown

 	public function initNavbar(&$app){
 		$app['desktopMenu']=$this->generateDesktopNavbar($app);
 		if(isset($_SESSION['user']))
 			$app['rightSectionMenu']=$this->generateRightSectionNavbar($app);
 		$app['mobileMenu']=$this->generateMobileNavbar($app);
 		$app['knp_menu.menus'] = array(
 				'desktop'=>'desktopMenu',
 				'rightDesktopSection'=>'rightSectionMenu',
 				'mobile'=>'mobileMenu');
 	}

 	private function generateDesktopNavbar($app){
 	    $menu = $app['knp_menu.factory']->createItem('DesktopMenu');
 	    $menu->setChildrenAttribute('class','left');
 	    $menu->addChild('Home',array('uri' => '/home'));
 	    //And it goes on like this until I build the whole tree..
 	    return $menu;
 	}

 	private function generateMobileNavbar($app){
 		$menu = $app['knp_menu.factory']->createItem('MobileMenu');
 		$menu->setChildrenAttribute('class','off-canvas-list');
 	    $menu->addChild('Home',array('uri' => '/home'));
 	    //Same as before
 	    return $menu;
 	}

 	private function generateRightSectionNavbar($app){
 		$menu = $app['knp_menu.factory']->createItem('RightSection');
 		//Same as before
 		return $menu;
 	}
 }

home.php (or any other route):
 require_once __DIR__."/../includes/utilClass.php";
 $app->get('/home',function() use($app){
 	$cmn = new Utils;
 	$cmn->initNavbar($app);
 	//Plus some extra parameters are loaded into $twigParameters
 	return $app['twig']->render('index.twig',$twigParameters);
 });

index.twig (nothing special, just some includes of other twig templates, and navbar.twig).

navbar.twig:

 	{{knp_menu_render('rightDesktopSection')}}
 	{{knp_menu_render('desktop',{'depth':2})}}

 	{{knp_menu_render('mobile',{'depth':2,'template':'knp-menu/knp_menu.html.twig'})}}
                 {#as value for 'template' key I can write whatever I want! Even non-existent path!#}

That's pretty much it.. For completeness, I'm using (copying from comopser.json):

Silex: ~1.3
Twig: ~1.0
knplabs/knp-menu: ^2.1

I did some digging and either I'm not seeing something or there is something very strange in this code going on..
So, to clear up what I'm trying to achieve, I want that li elements that are not links, are rendered as
list item label
 .
Now, since I was not able to achieve this my setting a custom template in knp_menu_render, I thought to manually change the original template found under vendor/knplabs/knp-menu/src/Knp/Menu/Resources/views: this is the place where the default templates are taken, if I understood it right.
Guess what? If I edit the original knp_menu.html.twig and change:
{% block spanElement %}{% import _self as knp_menu %}{{ block('label') }}{% endblock %}

To:
{% block spanElement %}{% import _self as knp_menu %}{{ block('label') }}{% endblock %}

Menu is still rendered as
..

Tried with a fresh setup, same issue. It doesn't sound right to me..

looks like this is by design then. i guess its done to make sure that label attributes can be applied somewhere. is it okay if we close this issue?

Well, I don't think it's a design choice, and if it is, it doesn't seem smart: users may want to change the inner element and it should be possible throught template overriding. Which is the point of having a twig template (knp_menu.html.twig) under vendor/knplabs/knp-menu/src/Knp/Menu/Resources/views to override things if it's not taken into account?
In my case I just needed to apply a set of CSS rules (which were coded on a  element), so I created a new CSS class and applied it to the span element and that fixed the issue.. But there may be cases in which the fix is not that simple.

i guess there could be a new template instead of the %s
bit? could you use class inheritance and overwrite that method? but a
template seems more consistent.
or the attributes could be passed to the menu item template. but that
would be a BC break, and quite a nasty one as you would not get any
error, just the attributes getting lost when your custom template is not
updated.

I guess class inherintance and method override would work but I think it's easier said than done. Best would be allow template override.. I tried to modify the Knp menu code but I didn't have enough project and php knowledge at that time to provide a fix.
I thought maybe renderSpanElement method could be modified to take an extra parameter which contains the tag to use (instead of hardcoding it).

if this needs refactoring, then i would go for a template and not for passing the tag name to use. i just noticed the class is called ListRenderer - which suggests you could make knp menu use your custom renderer.

i improve the documentation in #245. if you use the ListRenderer, its quite simple to extend the renderer and overwrite just the renderSpanElement method. if you use the TwigRenderer, you need to look at knp_menu.html.twig. you can extend that template and overwrite {% block spanElement %} with what you need.
the two renderers (twig and list) are completely separate and only one of the two will be used.
your code looks like you are using silex. and the silex loader does this: https://github.com/KnpLabs/KnpMenu/blob/master/src/Knp/Menu/Integration/Silex/KnpMenuServiceProvider.php#L43 so its using the ListRenderer (probably because twig is optional in silex). i don't know silex much, but i would hope there is a way to change what renderer class is used, by overwriting knp_menu.renderer.list to use your custom class? a twig renderer is also created if twig is defined: https://github.com/KnpLabs/KnpMenu/blob/master/src/Knp/Menu/Integration/Silex/KnpMenuServiceProvider.php#L81 - and your code indicates you load twig before loading knp menu. not sure why its picking the list in that case. maybe the order in https://github.com/KnpLabs/KnpMenu/blob/master/src/Knp/Menu/Integration/Silex/KnpMenuServiceProvider.php#L54 could be wrong? should twig come before the list renderer there if we want to ever use the twig renderer in silex? or maybe there is some other way to force the twig renderer.


That definitely looks like a bug in the squeezing functionality.
The * on the left-hand side indicates that some of the output has been suppressed. Use the -v/--no-squeezing option if you want to avoid this.
@awidegreen Do you maybe have time to look into this?

@sharkdp sure, I'll have a look


implement Replica::pending_tasks

This is a first attempt at #452.
I've implemented two different approaches in the storage layer and I'm looking for feedback on whether either of these, or a third approach, would be most optimal.
Currently the taskdb layer use the more "naive" approach, which follows the original c++ code more closely.
The alternative approach would use the get_tasks_by_status to query for pending tasks. I am however not sure whether there could potentially be an inconsistency between the working_set and the sqlite database, which would make that solution unfeasible.

Nice work! I think it would be unusual to want to get all completed or deleted tasks (and those cases would be covered by all_tasks()).
And, the set of all pending tasks and the working set can be slightly different in ways that might be significant. I think the best approach here would be joining with the working set to get the working-set tasks.

Nice work! I think it would be unusual to want to get all completed or deleted tasks (and those cases would be covered by all_tasks()).
And, the set of all pending tasks and the working set can be slightly different in ways that might be significant. I think the best approach here would be joining with the working set to get the working-set tasks.

Thanks for the feedback. I've updated the PR so it hopefully reflect your suggestions. I moved some code from pending_tasks to pending_tasks_data when implementing the latter, but the functionality should be the same.
I have also fixed the CI failures, so I think this is ready for review. Let me know if you'd like any other changes to the code

Nice work! I think it would be unusual to want to get all completed or deleted tasks (and those cases would be covered by all_tasks()).
And, the set of all pending tasks and the working set can be slightly different in ways that might be significant. I think the best approach here would be joining with the working set to get the working-set tasks.

Thanks for the feedback. I've updated the PR so it hopefully reflect your suggestions. I moved some code from pending_tasks to pending_tasks_data when implementing the latter, but the functionality should be the same.
I have also fixed the CI failures, so I think this is ready for review. Let me know if you'd like any other changes to the code

This implementation looks solid and well-tested!
However, this still requires two separate queries to get the pending tasks: first to get the list of UUIDs in the pending set, and second to fetch each of those tasks. This involves sending that list of UUIDs from the DB to Rust and back. Could a single get_pending_tasks method do this in one query, with something like SELECT tasks.* from tasks join working_set on..?

That's really good feedback. I hadn't realised that the working set already exists in the database, thanks :smile:
I'm guessing that there's somewhere else in the code that ensures only tasks with the "pending" status are added to the working_set?
I've added a new commit that changes the implementation to using a join to do it in a single query. Let me know if you would like any other changes. I'm personally not entirely happy with the inmemory implementation of get_pending_tasks as it's a bit too nested/complicated making it difficult to read
If you're happy with how the implementation is looking I'm going to squash the changes into a single commit before merging

I'm guessing that there's somewhere else in the code that ensures only tasks with the "pending" status are added to the working_set?

Yes, modifications to the status property trigger adjustments of the working set.

I've added a new commit that changes the implementation to using a join to do it in a single query. Let me know if you would like any other changes. I'm personally not entirely happy with the inmemory implementation of get_pending_tasks as it's a bit too nested/complicated making it difficult to read
If you're happy with how the implementation is looking I'm going to squash the changes into a single commit before merging and give the code another pass to see if I can improve the readability+improve the doc strings

I'll have a look shortly!

Thank you so much for the review and for taking the time to thoroughly explain the bug that my choice of LEFT JOIN would have caused - it helps me improve as a developer
I've added a commit for each comment you had to make it easier to read through. I hope it's okay to run the changes by you one final time before I squash (actually fixup) everything into a single commit so it's ready to merge :crossed_fingers:

Hey @djmitche
If everything looks good to you, feel free to squash and merge the PR :smile:

Sorry for the delay!

No problem. I wasn't sure if I had communicated clearly that I thought I had solved all remaining issues 😅
Thanks so much for all your constructive feedback on my changes. This was an incredibly pleasant experience and I hope I'll get the chance to contribute to the project again


Update MPI Operator instructions to use v1alpha2

This change is

/assign

Preview: https://deploy-preview-1580--competent-brattain-de2d6d.netlify.com/docs/components/training/mpi/

@sarahmaddox These are great suggestions! Thanks for going through the changes carefully. Just updated the PR. I’ll keep these suggestions in mind for future changes as well.

Thanks @terrytangyuan!
/lgtm
/approve


[draft] query and process go modules during repo sync

this draft PR introduces the ability to ingest go modules in cartography. go 1.17 changes how the go module graph works and adds extra indirect dependencies into the go.mod. this PR leverages that new behavior to collect requirements from more go modules!
this naive ingestion scheme will probably have to change before it's productionized but it's a good start 🙂

GitHub supports Go now in their dependency graph - we should definitely consider just using that instead of writing our own code: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#supported-package-ecosystems

That being said, I haven't looked at the GitHub API in detail yet - it may be the case that we can get more details (like what's indirect vs not) by parsing ourselves instead of using the GitHub API.


how the chef-client shows two results

Hi,
I execute some chef cookbooks in a machine, this machine was bootstrapped from workstation through hosted chef environment. The cookbooks executed in node like chef-client -o 'recipe[core]' it will execute all cookbooks fine but I got like below

service[supervisor] action start (up to date)

[2015-04-29T07:53:20+00:00] WARN: Skipping final node save because override_runlist was given
Running handlers:
Running handlers complete
Chef Client finished, 66/75 resources updated in 3703.241345396 seconds
Running handlers:
[2015-04-29T07:53:20+00:00] ERROR: Running exception handlers
Running handlers complete
[2015-04-29T07:53:20+00:00] ERROR: Exception handlers complete
[2015-04-29T07:53:20+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
Chef Client failed. 66 resources updated in 3703.250384118 seconds
[2015-04-29T07:53:21+00:00] ERROR: cannot load such file -- enc/trans/single_byte
[2015-04-29T07:53:21+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
i don’t know why it shows two results please let me know why?
Thanks in advance
Regards,
Ganesan.A

please let me know how ?

What do you mean "shows two results"?
Are you referring to this error ERROR: cannot load such file -- enc/trans/single_byte ? Can you show the chef-stacktrace.out?

closing due to lack of response