Fix star wars demo

Summary of changes:
This reverts commit c162b904a93e7b597a60dd00cbcf9f398d9235c1 as the purpose of the test to point to master is to break the CI so we are aware the demo was changed and the test needs to be re-written.

And I'm glad it did, it make us to be aware of the problem and fix it quickly with your commit, otherwise it would be unnoticed, we would be making changes in Cilium and potentially break demos without realizing.

I still (and will) disagree, because I am firmly of the belief that we should not be breaking CI based off of the state of other branches. The reason this test was added was to ensure we have coverage of the demo immediately in the CI- the easiest way of doing this was to port the demo itself to the CI, as it was marked as high priority at the time.
Instead of relying upon the state of that repository, let's distill what functionality of Cilium this is testing (GRPC with L4 and L7 policy)  and add a test which tests said functionality that is located in the cilium/cilium repository. If we want to test the demo itself, we should add a test which runs in the cilium/star-wars-demo repository, because that's where the actual demo code is.

I think both arguments are valid. Both approaches verify a different requirement.
The original purpose of the test was to ensure that we are not in a position of doing a live demo based on the contents of that repo and be surprised. Which is what happened once and why Andre is bringing this up the way he is.
We have ample coverage of the functionality in other tests so if we follow Ian's understanding, then we could also remove the test entirely after a quick audit.
My proposal:
We keep the test and we refer to v1.0 and we change the README to clearly state that the v1.0 branch is what is being verified in the CI and that master is untested. Any changes to master need to be tagged and the tag in the CIlium needs to be updated.

Hi,
I have a few things to mention here:

If we test, we should use master, as André did. If not the test is not relevant at all. Saying that, I think that we can create a custom test based on our ginkgo framework in that folder, and run when something changes and daily.
On the other hand, I need to say that this test has been useful in the last months, all the issues that we found about the endpoint regeneration was in this test or kafka, and mainly because it deploys more pods at the same time.

I'm happy if we do the following:

Write the test in that project, and run daily in Jenkins, and running with Nightly image for example.
Move this test as it is, with the commit and run that in Nightly.

Regards.

Let's avoid over-engineering this. We have a simple goal: We want to ensure that the demo always works. The version to demo does not have to be master. If we release it properly and declare it as such in the README then that is fine as well.

The version to demo does not have to be master. If we release it properly and declare it as such in the README then that is fine as well.

+1

test-me-please

test-me-please


[ask] how to use log(x) with base number

i have a new on dart programming, so i need to use this function on my program to find log() with base number
so for example on php, i used like this

PHP log() function
how can i solve this on dart ?

Dart does not currently have an arbitrary base logarithm function, only base e (log). This is most likely inherited from JavaScript, which also only provides these two.
In general, the logarithm at one base, b1, can be found using the logarithm at any other base, b2 as logb1(x) = logb2(x) / logb2(b1).
So, to find the base-10 logarithm of 5 using only the natural logarithm (base e), you can write log(5)/log(10). The constant log(10) is available as ln10, so it can also be written log(5)/ln10.
If it happens often, you can define your own functions:
double logBase(num x, num base) => log(x) / log(base);
double log10(num x) => log(x) / ln10;

Thanks you very much for explanation @lrhn

@lrhn So if i want to chane base to 1000 just make
double log1000 =  log(9000) / log(1000)

That should compute log_1000(9000). You can see that the result changes by 1 when you change the 9000 value by a factor of 1000:
print(log(9000) / log(1000)); // 1.3180808364797751
print(log(9000000) / log(1000)); // 2.318080836479775
print(log(9) / log(1000)); // 0.318080836479775
print(pow(1000, log(9000) / log(1000)); // 9000.000000000011

That is the correct behavior for a base-1000 logarithm (with a little rounding).

Ahh thank you , now i can understand


[feature] Web3Modal v3 - Callback on session approval (QR code)

What problem does this new feature solve?
Using the latest version: https://docs.walletconnect.com/web3modal/v2/about it dosent seem like the lib knows when a user really connects. It works fine using Metamask in Chrome, but not using a Mobile wallet.
Describe the solution you'd like
A solution to listen for the connection/session. And if it's approved on the mobile wallet, run callback. User can then do whatever they want in this function. This was a function on prior versions.

hi, are you using wagmi or ethers? could you also share the steps to reproduce? have you tried this on labs?

hi, are you using wagmi or ethers? could you also share the steps to reproduce? have you tried this on labs?

Hi,
Sorry forgot to mention. I'm using Wagmi fro the contracts etc. And Web3Modal on the dApp end. Web3Modal seems to be working fine when using the Metamask extension (the modal auto-closes). Using Metamask on mobile the QR modal never closes and the user has to refresh the page in order for the session to be set (and states updated).
I'm currently using the useWaitForTransaction() callback for fetching the state of sent transactions, and it would be optimal if one would be able to do the same for connecting and disconnecting. ex useWaitForApproval().
layout.tsx:
const chains = [mainnet, sepolia]
const projectId: any = process.env.PROJECT_ID

const { publicClient } = configureChains(chains, [w3mProvider({ projectId })])

const wagmiConfig = createConfig({
    autoConnect: true,
    connectors: w3mConnectors({ projectId, chains }),
    publicClient
  })

const ethereumClient = new EthereumClient(wagmiConfig, chains)

return (
      <>
         <WagmiConfig config={wagmiConfig}>
              {children} // Includes the <Web3Button /> component
            </WagmiConfig>
            <Web3Modal
              themeVariables={{ '--w3m-accent-color': '#315FF6' }}
              projectId={projectId}
              ethereumClient={ethereumClient}
              defaultChain={sepolia}
            />
      </>
)

Also a sidenote, there is missing documentation on how to set the metadata config using v2 and createConfig from wami as far as i can see. There is only an example for the defaultConfig.
All the transactions and deployments works, it's just the connecting which seems a bit off. I may have missed the documentation, but i wasent able to figure it out. But as far as i can see, there is no way to catch a connect or a disconnect.

Could you try upgrading to v3? v2 is no longer maintained https://docs.walletconnect.com/web3modal/upgrade
Also you should use wagmi's hooks, you can use useAccount to check when the user is connected

Could you try upgrading to v3? v2 is no longer maintained https://docs.walletconnect.com/web3modal/upgrade Also you should use wagmi's hooks, you can use useAccount to check when the user is connected

Upgraded to v3 (thought it was v3.2, error on my end).
Using: const accountEvents = useAccount() to fetch the account changes, works, but only using injected wallets. Using the QR code and WC, the modal now closes, but no event is triggered from useAccount()

Could you provide a Minimal Reproducible Example?

layout.tsx
  const accountEvents = useAccount()

  const wagmiConfig = defaultWagmiConfig({ chains, projectId, metadata })
  createWeb3Modal({
    wagmiConfig,
    projectId,
    chains
  })

useEffect(() => {
        if (!accountEvents.address) {
            onConnectionChange(null)
            console.log("Disconnected:", accountEvents)
            return
        }
        onConnectionChange(accountEvents)
        console.log("Connected:", accountEvents)
    }, [accountEvents])

  return(<WagmiConfig config={wagmiConfig}>...</WagmiConfig>)

dosen't fire at all on account changes, before reload.

Are you using app dir router?

Not sure about "app dir router", but if you're thinking about the App Router in Next13/14, yes :)

could you share a MRE?


Adding support for Laravel 11

@daniel-werner Will you be able to tag a new release of the plugin so composer will find it?

@nexxai Done :)

Thank you so much!


Add HTML source view of output

A view of the html source for the output would be very useful.
Plus link through to css files?
Of course you can use F12 and inspector picker but that is a little fiddly.
Suggest tabs for right hand pane

Anther approach would be to auto locate the root of the view in the F12 html tree and make it the current node

Yeah, I am a bit in flux on how to handle the index.html file. The output is really not the output of the BIN. It is mixed with WebpackBin "helpers". Hitting "download" is how you really get a real view of how the HTML file looks.
And yeah, there is really nothing happening in the index.html file other than loading the webpack bundle of your BIN. So it is not very interesting either. Though I completely understand it is a black box now, which is a bit uncomfortable ;-)

index.html file will be available on next release :-)


changes in index.html file are not reflected

I've created a react app using create-react-app
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3",
When I try to add script tags in index.html in the public folder, it's not getting reflected when I start the dev server.
The index.html file is being overwritten by the originally given HTML(checked in devtools), unable to even change the title in HTML, it's reverting back to "React App"
Do we need to make any config changes or something so that the changes in index.html will be persisted?

You state you're trying to add script tags, but then reference "React App" which is the title tag not a script tag.... So I'll go ahead and try to tackle both.
1: Assuming you want to change just the title of the site, you would go to the head of index.html and change the following:
<title>React App</title>   ### _**Change "React App" here**_

2: You wish to add a script to the page
answer from https://stackoverflow.com/questions/34424845/adding-script-tag-to-react-jsx :
Now that we have hooks, a better approach might be to use useEffect like so:
useEffect(() => {
  const script = document.createElement('script');

  script.src = "https://use.typekit.net/foobar.js";
  script.async = true;

  document.body.appendChild(script);

  return () => {
    document.body.removeChild(script);
  }
}, []);

Which makes it a great candidate for a custom hook (eg: hooks/useScript.js):
import { useEffect } from 'react';

const useScript = url => {
  useEffect(() => {
    const script = document.createElement('script');

    script.src = url;
    script.async = true;

    document.body.appendChild(script);

    return () => {
      document.body.removeChild(script);
    }
  }, [url]);
};

export default useScript;

Which can be used like so:
import useScript from 'hooks/useScript';

const MyComponent = props => {
  useScript('https://use.typekit.net/foobar.js');

  // rest of your component
}

credit: answered by Alex McMillan https://stackoverflow.com/users/1136527/alex-mcmillan


gitattributes affecting git repos

We've spoken about this before - the automatic line-ending substitution triggering changes in git submodules etc. But I've also come across an issue where Homebrew couldn't pull from the remote (brew update) because the gitattributes setting caused the Homebrew repo to enter into a dirty state.
One option would be to reassess the contents of gitattributes. The other would be to see if adding a gitattributes file to Homebrew's repo would prevent this potential problem. Maybe they should be normalizing line endings anyway, or at least protecting their code from a user's global setting.
What do you think?

As of git 2.10 this functions as expected https://github.com/git/git/blob/master/Documentation/RelNotes/2.10.0.txt#L248


Client-requested cut-off timeout

In applications where a quicker "good enough" response is more important than accurate and complete aggregation (which would take longer), the client might want to tell the aggregator a cut-off time after which any successful response (accumulated so far) is processed and terminated. The server will only wait longer than the cut-off time if no successful response is arrived from any upstream archive yet. In that case it would respond to the client as soon as the first successful response is arrived.

We need to investigate the means of how the client will convey the cut-off time. Possibly a request header would be utilized. We can try to find if there is one such header in practice that we can reuse or else we will have to introduce one.

RFC7240 (Prefer header) has a defined preference for wait (Section 4.3) that might be useful for this.

As per the definition:

wait: Indicates an upper bound to the length of time the client expects it will take the server to process the request once it has been received.

It looks like utilizing wait preference of the prefer header could be a great choice.
Prefer: wait=10

respond-async also seems like it would be useful for a client to specify not minding how long a response takes, so long as it's comprehensive of all known (to MemGator config) archives.

The respond-async preference is a cool idea, but not directly solving the problem described in this issue. One way to implement asynchronous response would be to return a 202 Accepted response quickly with a URL where the client can check back later if the response is ready. Services that utilize server-side caching can implement it easily. This could be useful in applications like CarbonDate, MementoDamage, and Warrick etc.


GSSOC '24 : UCB Content Recommendation System

ContentFlow is a content recommendation platforms which aims to provide personalized content recommendations to its users based on their preferences and behaviours. The platform collects user data such as browsing history, search queries, and interactions with the platform, to build a recommendation system that suggests relevant content to each user.
Develop an algorithm that utilizes the user data to make accurate content recommendations. The algorithm should consider the user's historical preferences, similarity to other users, and the content's relevance to generate personalized recommendations.
The goal is to maximize the user engagement and satisfaction by delivering high-quality content that aligns with their interests and preferences.

@TAHIR0110 please assign me this issue

@sujanrupu assigned!

I agree to follow this project's Code of Conduct
I'm a GSSOC'24 contributor
I want to work on this issue.

@TAHIR0110, Please assign me this issue

@TAHIR0110 can you assign me this issue


Have a docker file

This allows packaging rgbds as a docker image, which can be useful for CI pipelines.

Could you squash both commits into one?


Made encodeQueryElement public

Closes #41

Coverage remained the same at 90.541% when pulling 162d1e1834998a3d957893e47d3817dbb2abd143 on Entea:patch-1 into 366a03bd72cc20cf490f0838cdb8e9623b923895 on mikaelhg:master.

All right. For symmetry's sake, could you add a commit which makes Decoder's methods public as well?

Oh well, I'll do it.


Update configure-account.py

This is spam, imo, and should be marked as invalid.

Hmmm @hongshaoyang you're right thank you


x-editabel and select2 locally don't work.

Hi,
as you can see from the fiddle here: http://jsfiddle.net/xBB5x/11054/
the plugin don't work correctly. The value is not fetched correctly from select2 and get set Empty. In the success callback all arguments are undefined
thanks

Seems to work ok with x-editable version 1.5.1 and select2 version 4.0.0, but not 4.0.1 or 4.0.2

I am having this issue as well.  I am using

https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.full.min.js
//cdnjs.cloudflare.com/ajax/libs/x-editable/1.5.1/bootstrap3-editable/js/bootstrap-editable.min.js

Edit

Updating the editable results in "Empty", unless there is only one item selected.

Try:
$('#country').editable({
type: 'select2',
source: [..
.....

there is a fix for this ?
tried 4.0.0 / 1.5.1 and it's not working

I tried the same - any chance for an update on this?

Having the same problem here. Would really appreciate a solution for this bug. Below is my code:
		$('.covered_states').editable({
			type:'select2',
			select2: {
			   multiple: true
			},
			placeholder: 'Select Coverage States',
			source: [
			<?php
			while($state_row = mysqli_fetch_assoc($exe_get_states)){?>
				  {id: '<?php echo $state_row['abbreviation']; ?>', text: '<?php echo $state_row['name']; ?>'},
			<?php
			}?>
			   ],
			inputclass: 'input-large',
			params:{action:'edit_policy_fields'}
		});


Keyword with "Keyword Args" param not working in Keyword class

I created a class in package com.github.markusbernhardt.seleniumlibrary.keywords that extends RunOnFailureKeywordsAdapter and has the following method:
        @RobotKeyword
	public void populateForm(Map<String, String> kwargs) {
		for (String key: kwargs.keySet()) {
			// Do something ..
		}
	}

My robot script calls it like so:
Populate Form   First Name=${FIRST_NAME}    Last Name=${random_str}
With the debugger I can see that the value of kwargs in null.
I have the same method in another library (that doesn't extend RunOnFailureKeywordsAdapter) and the params are set properly.
Any idea why this doesn't work in a RunOnFailureKeywordsAdapter class?  Is there a trick to getting it working there-in?

I guess it has nothing to do with extending RunOnFailureKeywordsAdapter.  Perhaps has something to do with how these classes are loaded?

Looks like @Hi-Fi answered my question here: https://github.com/robotframework/JavalibCore/issues/19
Its a robotframework issue


Add a togglepause command

I have added the togglepause command that will toggle the paused/unpaused state of the currently playing media. It works by checking the current state and then pausing/unpausing accordingly.
This is convenient when using go-chromecast in other scripts. Previously, this wasn't possible without first checking the current state with a separate command.
I have also added tpause and playpause as aliases and fixed a few typos and misspellings that I noticed along the way.
Please look through my changes and let me know what you think!

Amazing, thanks for that! Ignore the tests, they are currently a bit useless.

Yeah, I looked at that and figured that much. Thanks for merging this so quickly!
This was actually my first time ever looking at go code, so it was a fun learning experience.


A few added options

I was looking for a replacement to the python version of this I'm using, and this seems like a good fit. While testing it I found a couple things that made this a lot nicer to use.

made ldap_bind_pw optional. If no pw is defined there will be no bind
add an optional CLI flag to point at a config file elsewhere.
add an option to bypass the file security check
handle errors doing LDAP calls, specifically if all calls have failed, there is no need to wait until the timeout
add an option to cache LDAP in user's .ssh dir

I'm taking over as maintainer of this project. I already added a config file parameter I needed for NixOS integration, but if you want to rebase on master and push your other changes, I'd be happy to review and merge them.
Thanks!
Sam


network tls: alternative to using socket BIOs in SslSocket

TLS sockets are currently using BIOs that rely on access to a socket file descriptor, namely:
BIO* bio = BIO_new_socket(callbacks_->ioHandle().fdDoNotUse(), 0);

To avoid direct use of the fd and to ensure that SslSockets can work with any type of IoHandles, probably mem BIOs should be used instead. I am willing to do the work but does anybody know if this comes with any significant downsides? Are there any better alternatives?

cc @mattklein123 @antoniovicente

One possible option would be to add a method to IoHandle that creates an SSL bio that is appropriate for the IoHandle in question.  It does pollute the IoHandle interface in some ways.  We should keep in mind that IoHandle::readv and writev should not be used on IoHandles used by SSL libraries.

Interesting idea! Personally, I like the option of being able to abstract any type of transport with IoHandles, i.e., being able to readv/writev to an IoHandle that internally implements TLS/QUIC seems good to me. But, agreed, that could lead to a significant amount of api pollution.

Writing a BIO that calls into IoHandle for peek/read/write operations may also be an option.

cc @ggreenway @lizan @PiotrSikora @davidben for thoughts.
I don't know about the available options. Some type of shim over an IOHandle would be great if it's possible to implement a custom one as @antoniovicente suggests.

See:
BIO_METHOD acts like a vtable, allows you to specify read/write/etc functions
BIO *BIO_new(const BIO_METHOD *method);
BIO::ptr would point to the IoHandle*

Looking at what @antoniovicente suggested!

Surprisingly enough, something as simple as #12911 seems to be working.


Revisit smoke & end-to-end test environment

#172
Issues:

Loading real maps and examples to use would need real object definitions which could be
One-off loading the server with a mocked cache for tests takes longer than loading the live server itself (9s vs 5s).
Having cache data in the git repo resources isn't nice (only 200kb though atm)

Few new ideas:

Use a live server, actual networked bots and use commands to setup scenario's.
Have the e2e tests loaded in and ran via in-game command, that way they can use instructions directly. Same as how bots currently work. If using instances, it could optionally run in parallel.
End to end tests could also utilise #209

I've removed all the mocking and am now using the real cache and configs in content tests. It removed a lot on noisey code in tests and has durastically improved the stability of them #187, it was noticably slower however a combination of loading the cache once and reusing and switching koin and server startup from per test to per test class puts the completion time in the same ballpark as before if not a little faster (~8-10s)


Add sRGB/Format to WindowSettings

Related to https://github.com/PistonDevelopers/conrod/pull/691
Tells whether to store the main buffer in sRGB format.
More information about sRGB can be found here.
The Gfx piston-graphics backend might need a fixed format at compile time. This needs some thinking.

I don't know the right choice here, so I choose sRGB to be on by default. It seems to be right now since gfx_graphics requires it. If it turns out to be wrong, then we can change it in the next version.


MulticastService with multiple NICs

fixed AnswersContainsAdditionalRecords functionality

fixed using MulticastService with multiple NICs
Added by 1 sender for each NIC. This will allow sending a message directly by specific NIC instead of using system-defined routing.
Adjusted receiver to join a multicast group for specific NIC. This allows receiving messages from all NICs, but not only from "default". (Replacing PR - 24)

removed exploring networks by times instead used NetworkChange.NetworkAddressChanged
Added using of NetworkChange.NetworkAddressChanged event to get NICs changes.
-+ added to detect changes from the time when will subscribe on it. Looks like when we subscribing on this event on start will receive only not all changes.

Added accepting filtering function in MulticastService constructor.
This function, if provided used for bounding MulticastService only to specified NICs, returned by the function. (Replacing  PR - 32)

Tests are not changed, added "using" instead of try-final blocks

@richardschneider I've tried to do not create breaking changes as much as possible.
But looks like without multi senders, all messages go to "default" nic with system defined route.
Tried a lot of different solutions.
Also, receiver added to the multicast group by local address defined, this also allows receiving messages from all interfaces, because of even using of IPAddress.ANY when joining to the multicast group return messages only from "default" NIC.
PS. By default NIC, I mean, NIC that has lower Number in NICs table :)

Great work!!! I thought we might need multiple senders, sorry for doubting you. I'll try to do a code review in the next 24 hours.
Did you notice that AppVeyor CI failed.  There is something evil with your git branching.  Could you try a rebase and see what happens.

Tests are not changed, added "using" instead of try-final blocks

Frankly, I do not believe the above statement.  Please DO NOT change the existing tests.  But feel free (pretty please) to add new tests.  This is how I can determine if the PR contains a breaking change.

I've created a new PR to fix commits.
https://github.com/richardschneider/net-mdns/pull/39


remove redundant metadata clear

the same thing is called just a few lines above, no reason to do it twice (?)

👍 Thanks!


Lost Sequences when website down

The website went down between 11:32am and 11:36am (GMT-5) and I was uploading to the website, every track that I uploaded during the downtime does not show up on my profile, I had to reset and re-upload and now they are there.
edit
I looked at the sequence id and it gave me -1, were you updating the services?

@james2432 we had about 30 minutes of down time due to some migration of data to a new server. So most probably you tried to upload your data in that window frame and it did not work.

Thanks!


Gulp build error on Windows

When running gulp build I get the following error:
Error on fetch for C:\Dev\NG6-starter\client\app\app.js at file:///C:/Dev/NG6-starter/client/C:\Dev\NG6-starter\client\app\app.js
Error: ENOENT: no such file or directory, open 'C:\Dev\NG6-starter\client\C:\Dev\NG6-starter\client\app\app.js'
at Error (native)
Clearly, the error is that, when fetching the app.js file, the path is being prepended with some part of itself.  Is there a configuration change I need to make to correct this?  This is the JSPM version  (This is running on Windows FWIW)

I haven't tried to dig into it by any means, but changing this line solved it for me:
return jspm.bundleSFX('app/app.js', dist, {})

@belcherbrandon I have the same problem building it using git bash in windows. You solution works for me too.


[Games] Add matching aliases for node-gamedig games

What is this feature about?
Some games (like garrysmod) are stored in the game definitions under a key (which was derived from the source file name) which differs from the key that was used in node-gamedig. It would be useful if there was either an alias in game definitions that matched the node-gamedig name or if the keys were changed to match node-gamedig.
Additional context/references
List of node-gamedig games

We could just rename the keys to match node-gamedig.
I wouldn't want to have in game definitions as #38 (the games part of that pr) could solve this as well (having a key in the game definition).


Fix regression with GDScript enum descriptions now showing up in documentation.

Didn't show up before, does now :)

Looks good and works right, it was just an oversight. Thank you for the quick response and fix!

Thanks for finding it! :)

Thanks!

Cherry-picked for 4.1.1.


Thanks and minor suggestion

Hey, this is a great life saving gem. It brings the nice RSpec expectations easily and intuitively into my Rails projects, so thanks for that.
One thing I noticed - it is hard to find this gem. Searching "minitest mock expectations" does not show this repo anywhere in the first pages, and I don't remember even how I did find it - perhaps changing the README H1 to "Minitest Mock Expectations" will help Google?

@DannyBen Thanks you for the suggestion. I just changed the h1 in https://github.com/bogdanvlviv/minitest-mock_expectations/commit/83f97c241e268b4883f002971b47b1a986f8d5ca.
Actually, I expect that merging https://github.com/seattlerb/minitest/pull/781 will help to find this gem as well.


Usage analytics

To understand which features that are most popular and collect error logs Monokle needs to integrate with some analytics platform. This should be anonymised and opt-in functionality.
Acceptance criteria

[ ] Create a unique id per installation
[x] define analytics provider to use
[x] define what actions/events to track
[x] opt-in/out mechanics

We have decided to use nucleus.sh as a solution.

There is no way to detect installation - instead, we keep a unique device ID to understand that Monokle is used on how many different machines #1431

@erdkse could we measure first launch of the application? (i.e. when we show the welcome dialog)

Yeah we can measure it by saving a flag in electron-store but It will be a one-time thing unless users don't delete electron-store storage - If they delete and re-install the application we can't detect it @olensmar

thanks @erdkse - I think that's better than not measuring it at all... what do you think @chlete ?


gradle: 7.3.2 -> 7.3.3, 6.9.1 -> 6.9.2

See:

https://github.com/gradle/gradle/releases/tag/v7.3.3
https://github.com/gradle/gradle/releases/tag/v6.9.2

Continuation of my activity as maintainer:

https://github.com/NixOS/nixpkgs/pull/150866
https://github.com/NixOS/nixpkgs/pull/148176
https://github.com/NixOS/nixpkgs/pull/145365
https://github.com/NixOS/nixpkgs/pull/143152

/marvin opt-in
/status needs_reviewer

Result of nixpkgs-review pr 151790 run on x86_64-linux 1

1 package marked as broken and skipped:

impressive

8 packages failed to build:

apkleaks
diffoscope
gscan2pdf
jadx
mucommander
pdfchain
pdftk
scenebuilder

11 packages built:

frostwire
gradle (gradle_7)
gradle_6
kotlin-language-server
ma1sd
mindustry
mindustry-server
mindustry-wayland
scenic-view
shattered-pixel-dungeon
signald

Only 3 of these are existing failures. Can you take a look?
error: build of '/nix/store/1f3w0sy82nwjdf0ihn3svxzfdwz6s8ck-mucommander-0.9.3-3.drv', '/nix/store/6f8zv1hlg36njagn4p4sqviym1nvgy0l-jadx-1.3.0.drv', '/nix/store/y149d5z0d834n5zikya86zfad0b0lv11-apkleaks-2.6.1.drv' failed

Yeah, these fixed output derivations are annoying me... I fixed pdftk, but can only take a look at the others tomorrow.

Supersedes #151791

Result of nixpkgs-review pr 151790 run on x86_64-linux 1

1 package marked as broken and skipped:

impressive

1 package failed to build:

mucommander

18 packages built:

apkleaks
diffoscope
frostwire
gradle (gradle_7)
gradle_6
gscan2pdf
jadx
kotlin-language-server
ma1sd
mindustry
mindustry-server
mindustry-wayland
pdfchain
pdftk
scenebuilder
scenic-view
shattered-pixel-dungeon
signald

@ofborg build mucommander

Seems to be failing on Hydra anyway; not sure what update broke things, but probably not this


resources included only when defined in direct Helm values

Maybe this is on purpose, but it does not make sense to me
Context:
I am writing an Helm chart mychart, which as a dependency uses Helmet besides Redis Helm chart for example. So in the mychart/values.yaml (which acts as the defaults) of my Helm chart, i set all the top level values that Helmet expects, for example:
mychart/Chart.yaml:
(...)
name: mychart
dependencies:
  - name: redis
    repository: https://charts.bitnami.com/bitnami
    version: 18.1.1
  - name: helmet
    version: 0.9.1
    repository: https://companyinfo.github.io/helm-charts
    import-values: # <== It is mandatory if you want to import the Helmet default values.
      - defaults
  - name: common
    version: 2.x.x
    repository: "https://charts.bitnami.com/bitnami"
    tags:
      - bitnami-common

mychart/values.yaml:
image:
  repository: nginx

extraVolumes:
  - name: tmp
    emptyDir: {}

extraVolumeMounts:
  - name: tmp
    mountPath: /opt/plugandwork/apps/rce/current/tmp

These should act as the defaults, so i do not have to give any values when i run helm install mychart
Problem:
Helmet does not create any Deployment, nor Volumes in the Deployment config
To make it work, i have to remove the settings from mychart/values.yaml and set them into a top level myvalues.yaml file given to Helm with helm install --values myvalues.yaml mychart
To my understanding, this makes Helmet quite unusable for more complex apps written on other dependency Helm charts
Or maybe i am using Helmet wrong, if then what is the correct way ?

Hey @alexfouche, Did you include app template?
# file: templates/app.yaml

{{ include "helmet.app" . }}

It seems your Helm chart likes this example chart (https://github.com/companyinfo/helm-charts/tree/main/charts/helmet/examples/simple) right?

I think this is due to helm v3.13 and not with hemet - @alexfouche which version of helm are you using?
I'm tracking what is I think the same problem as you in helm/helm#12460

@zevisert Thank you.
It seems that this pull request, https://github.com/helm/helm/pull/12480, fixes the issue. I believe it will be included in the upcoming release, v3.13.1.

Looks like helm/helm#12480 moved pretty quickly, it's been released as 3.13.1 just now


[IconButton] Fix border radius cutting of badges on IE11

Before:

After:

@novascreen Well spotted 👍


Package subpatch ./package.json is not defined by "exports"

Hi and first thanks for the excellent work!
I upgraded my React Native app to the latest version, and upgraded chalk by the way (I'm using it in all my scripts).
Unfortunately, I got an error with the v5.
Below some details. I don't really get what's happening, but downgrading to v4 is working perfectly!
[!] Invalid `Podfile` file: 859: unexpected token at 'Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './package.json' is not defined by "exports" in appdirectory/node_modules/chalk/package.json
    at new NodeError (node:internal/errors:371:5)
    at throwExportsNotFound (node:internal/modules/esm/resolve:440:9)
    at packageExportsResolve (node:internal/modules/esm/resolve:692:3)
    at resolveExports (node:internal/modules/cjs/loader:482:36)
    at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
    at Function.resolve (node:internal/modules/cjs/helpers:108:19)
    at resolveNodeModuleDir (appdirectory/node_modules/@react-native-community/cli-tools/build/resolveNodeModuleDir.js:24:42)
    at appdirectory/node_modules/@react-native-community/cli-config/build/loadConfig.js:93:76
    at Array.reduce (<anonymous>)

info Run CLI with --verbose flag for more details.
'.
 #  from appdirectory/ios/Podfile:12
 #  -------------------------------------------
 #  target 'App' do
 >    config = use_native_modules!
 #
 #  -------------------------------------------

I can try to provide more details if you need it. 🙂

This is a problem with the React Native build tool, not this package. You should open an issue on React Native instead.


Simplify Task.perform/Task.attempt when used with identity and Cmd

x |> Task.attempt identity |> Cmd.map fn
--> x |> Task.attempt fn

x |> Task.perform identity |> Cmd.map fn
--> x |> Task.perform fn

(seen in https://github.com/Flyp-Inc/lamdera-extra/blob/05c8c59187730265f0a9fd2312e3171171ccf3ac/src/Counter.elm#L192C22-L192C29)
Should we also simplify the following?
x |> Task.map fn |> Task.attempt identity
-->  x |> Task.attempt fn

x |> Task.map fn |> Task.perform identity
-->  x |> Task.perform fn


feat(prefix sort): Eliminate null byte from prefix encoder

There is 1 byte for null byte of each row, it may acquire extra 7 bytes because the alignment 8 bytes, this PR can eliminate null byte when there is only one sort key, set the null address to the beginning of the output sortedRows when encoding, only encode the valid row to prefix buffer. Move the null rows address from beginning to the end when nullsLast.

Past CI, failed by HDFS test which is not related to this PR.


backward compability to xcode7 added

@pmierzejewski Thanks for the contribution. Good job!
However, Kingfisher will drop support for Swift 2.2 and Xcode 7 once Xcode 8 be released. And the master branch will be the Swift 3 version. So this p-r will not be merged (mainly because personal preferences. I do not like to introduce these kind of version definition condition into the code base).
Anyway, thank you! 👍


Invalid location for object properties with ()

Flow doesn't properly report the location as it doesn't include the last parenthesis. It messes up prettier empty line detection algorithm ( https://github.com/prettier/prettier/issues/1336 ).
const Labels = {
  label1: (
    <fbt>
      Label 1
    </fbt>
  ),

  label2: (
    <fbt>
      Label 2
    </fbt>
  )
};

http://astexplorer.net/#/gist/3dea3bb4d1b4ae55846bc487bafe5664/4a4d4cbbed2e3445cd1bb863d3b7b910db25165b

Also an issue for type casts
o = {
  is_mounted: (undefined: ?boolean),
};

http://astexplorer.net/#/gist/3dea3bb4d1b4ae55846bc487bafe5664/de7ac7b309d8f18156d0224ff959ee847854dcb3

cc @alangpierce as you fixed a similar bug with #3745

coming right up


isFieldValid unexpected behaviours

Hi,
I've got a use case for needing to validate a single field before sending some info to a rest api when clicking a button. It seems like isFieldValid should do this. However I'm having some issues with the way it works. If I provide the true argument to pre-validate the form it will then validate all other inputs on the form and show their error messages. This feels like a bad user experience as the user may not have got round to entering those fields yet.
Another issue is when you supply the prevalidate false argument then isFieldValid is assuming that some user interaction has happened and that there is an error message in the element cache for the form. I've made a fiddle that hopefully illustrates the issue.
https://jsfiddle.net/po75dqef/1/

Ran into the 2nd issue as well, where isFieldValid is returning incorrectly.  I believe it to be due to this check
https://github.com/haacked/aspnet-client-validation/blob/44e008b966caeb6066ae2300ddaad7d4b94d023a/src/index.ts#LL700C23-L700C23
If I am understanding the expectation correctly, updating that line to return this.summary[fieldUID] == null; would address the issue.


Issue/2723 module version constraints iso3

Description
Correctly describe in the documentation how version constraints can be set on module dependencies in the module.yml file.
Changes: I created the previous PR on the master branch instead of the iso3 branch
closes #2723
Self Check:

[x] Attached issue to pull request
[x] Changelog entry
[x] Type annotations are present
[x] Code is clear and sufficiently documented
[x] No (preventable) type errors (check using make mypy or make mypy-diff)
[x] Sufficient test cases (reproduces the bug/tests the requested feature)
[x] Correct, in line with design
[x] End user documentation is included or an issue is created for end-user documentation

Reviewer Checklist:

[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Code is clear and sufficiently documented
[ ] Correct, in line with design

Processing this pull request

Merged into branches iso3 in 7ceff7e8fc7e0fb3eead36ab2ebc204540ea6aaf


Crash on launch

Steps to Reproduce - Ran .exe
MCEdit Version Number - <IP_ADDRESS> 64-bit
Minecraft Version Number - 1.10.2
mods you are using - forge-<IP_ADDRESS>5
Better Achievements <IP_ADDRESS>
Inventory Tweaks 1.61
Journey Map 5.2.4
Lunatrius Core <IP_ADDRESS>
Macrokey Keybinding <IP_ADDRESS>
Schematica <IP_ADDRESS> (for 1.10.2)
(none of these mods add entities to the game)
Operating System Version - Windows 8.1 pro 64-bit
Error log - http://pastebin.com/yRShfFKM (log after re downloaded)
http://pastebin.com/f9sPMsrN (log before re downloaded)
http://i.imgur.com/sZiOjYD.png (console before crash)

@MegaBoy128
Sorry for the late answer. We've all been busy else where...
Looking to the consile log, it looks like some DLL is missing somewhere.
A new version has been released: http://www.mcedit-unified.net/
It may fix you issue.


Add resume layout

Thank you for your contribution!  It's a good way to contribute to Hacktoberfest 😎


Example of using the Network config class when creating a container

It would be good to have an example of using the NetworkConfig to show how to add a container to a created network as this is something I'm struggling with.

I did the following:
CreateContainerParameters create = new CreateContainerParameters();

create.HostConfig = new HostConfig();
create.HostConfig.NetworkMode = "NetworkNameCreatedByYou";

Thanks, I’ll try that!
From: Daniel Gama<EMAIL_ADDRESS>Sent: 13 August 2018 21:43
To: Microsoft/Docker.DotNet<EMAIL_ADDRESS>Cc: Sean Farrow<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Microsoft/Docker.DotNet] Example of using the Network config class when creating a container (#331)
I did the following:
CreateContainerParameters create = new CreateContainerParameters();
create.HostConfig = new HostConfig();
create.HostConfig.NetworkMode = "NetworkNameCreatedByYou";
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/Docker.DotNet/issues/331#issuecomment-412657030, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABY1fv2feHNsCaebiIWqbW4kCZdhN_DNks5uQeS_gaJpZM4V5jIn.

Hello! I have a question:
In Docker Compose you can specify multiple networks for a container to join to. Here, it seems we can just set only one? Or is NetworkMode a comma-separated list of networks to join to?
Thanks!

@darkguy2008 good question. I'm also waiting for the answer.

Simply add your network to NetworkingConfig and assign it to CreateContainerParameters. EndpointsConfig receives a dictionary with the network name as key and and instance of EndpointSettings as value Set EndpointSettings.NetworkID too.

@HofmeisterAn I've done something like this basing on your suggestion:
    var parameters = new CreateContainerParameters
    {
        Name = $"incoming.consumer-{fileName}",
        Image = "incoming.consumer:latest",
        HostConfig = new HostConfig
        {
            AutoRemove = true
        },
        NetworkingConfig = new NetworkingConfig
        {
            EndpointsConfig = new Dictionary<string, EndpointSettings>
            {
                {"eltororojo_incoming-queue-network", new EndpointSettings()},
                {"eltororojo_incoming-api-network", new EndpointSettings()},
                {"eltororojo_errordb-network", new EndpointSettings()},
            }
        }
    };

I'm getting the following error when I'm trying to assign container to multiple networks on creation:

Unhandled exception. Docker.DotNet.DockerApiException: Docker API responded with status code=BadRequest, response={"message":"Container cannot be connected to network endpoints: eltororojo_incoming-api-network, eltororojo_itemdb-network"}

I've found the possible cause in the following thread on SO: https://stackoverflow.com/questions/60301221/docker-container-cannot-be-connected-to-network-endpoints
What is the common practise in such scenario? Should I connect container to only one network and then after it's creation connect to the rest with e.g. exec?

You're missing the NetworkID as mentioned above. It will be something like:
_ = new KeyValuePair<string, EndpointSettings>("18097689-b678-419a-863e-f0eefb1864cc", new EndpointSettings { NetworkID = "97bbb933b398b9ee8492007112b46063c1b6c4749885dca56ad9f4a8cf2db9e4" });

Notice the Name and Id property of docker inspect:
[
  {
    "Name":"18097689-b678-419a-863e-f0eefb1864cc",
    "Id":"97bbb933b398b9ee8492007112b46063c1b6c4749885dca56ad9f4a8cf2db9e4",
    "Created":"2022-12-05T13:49:13.684424004Z",
    "Scope":"local",
    "Driver":"bridge",
    "EnableIPv6":false,
    "IPAM":{
      "Driver":"default",
      "Options":null,
      "Config":[
        {
          "Subnet":"<IP_ADDRESS>/16",
          "Gateway":"<IP_ADDRESS>"
        }
      ]
    },
    "Internal":false,
    "Attachable":false,
    "Ingress":false,
    "ConfigFrom":{
      "Network":""
    },
    "ConfigOnly":false,
    "Containers":{

    },
    "Options":{

    },
    "Labels":{
      "org.testcontainers":"true",
      "org.testcontainers.lang":"dotnet",
      "org.testcontainers.resource-reaper-session":"c2b489f7-1ff1-4132-b1bd-ee63b3e341b6",
      "org.testcontainers.version":"2.3.0+a02e1a405f4d5b47dbb291c89c1c1472e3c1a1ff"
    }
  }
]


[DBZ-5014] fix infinity for date

Hi @cmartinez-enve, could you please adjust the commit message with DBZ-5014 to pass the commit format check?
Thanks!

Yes i'm going to clean up the commits because I pushed a lot of garbage. And the intrgration test are not working

@jpechane This is the new version, without change the datatype of date, the problem is in my test case on delete.
in the file debezium-connector-postgres/src/test/java/io/debezium/connector/postgresql/RecordsStreamProducerIT.java line 3080, the debezium connector generates this error
RecordsStreamProducerIT.shouldReceiveDeletesWithInfinityDate:233->assertDelete:3044->assertRecordDeleted:3073->assertRecordDeleted:3080 expected:<'[d]'> but was:<'[r]'>

@cmartinez-enve I am sorry but only now I noticed the PR is opened against 1.9 branch. Could you please open it against main? We apply changes to main first nd then we backport it to stable branch. Thanks for understanding!

@cmartinez-enve I believe the tests are fixed - let's wait for CI test results.

It's working now, Thank you

@cmartinez-enve Applied, thanks!

@jpechane Do you have any idea when the next release will be done?

@cmartinez-enve I suppose in two weeks.


Feature/179733229 marker genes heatmap show cell types

I added json endpoints for cell type marker gene heatmap data  and cell type options.

Just adding here to remember the points that we were discussed in the meeting before we forget :) while fixing.

Fetch cell types for the heatmap by giving input as a cell group type(ontology or authors labels)
endpoint - /json/experiments/{experimentAccession}/marker-genes-heatmap/cell-types
method- getCellTypesForMarkerGenesHeatmap

Fetch marker genes heatmap data by passing above endpoint resulted cell type as a input
endpoint- /json/experiments/{experimentAccession}/marker-genes-heatmap/cell-types
method- getCellTypeMarkerGeneHeatmapData
Please change accordingly in the service and dao layers for both endpoints including tests.


preserve %changelog and bump spec when updating in fedora

Fixes #298
also carries #394 so wait for it to get merged first

rebased, tests passing locally in a container

@TomasTomecek : Nice work! I didn't see this PR soon enough to test it before landing (it's hard to find -- it's 404 after all! :grinning: ).
I tested it now with cockpit-podman, and the generated dist-git diff is just right by default now. Wonderful!

Awesome, thank you @martinpitt for getting back to us and making sure this is what you requested! I hope we'll release packit next week with the changes.


Offcloud support for comet

Comet is a great this, but those of who had offcloud as backup subscription, integrating in comet can be a great addition. It helps when RD goes down.
 Torrentio, media fusion and knightcrawler managed it and they have all the details of the files listed when the links are displayed.

#42 (comment)

What's bullshit about their API? Torrentio, media fusion and knightcrawler managed it and they have all the details of the files listed when the links are displayed.

you are welcome to make a pull request

Hey since RD is now EOL, any chance offcloud can be added in comet as an alternative plz ?


Horizontal Scrolling not working on chrome desktop

Describe the bug
On chrome for Windows [ 124.0.6367.208 (Build officiel) (64 bits) ] it is not possible to scroll horizontally on the exemple provided in the doc: No scroll bar is visible so unless you have a touchpad you can't scroll

I also reproduced in my own application
Reproduction
https://stackblitz.com/edit/github-xeeapq?file=src%2Froutes%2F%2Bpage.svelte
Logs
No response
System Info
chrome for Windows [ 124.0.6367.208 (Build officiel) (64 bits) ]

Tried in incognito mode to make sure no extension is having side effect
Works on Safari on MacOS
Severity
blocking all usage of shadcn-svelte

Can't reproduce. Both on Chrome and Edge on Windows I can scroll horizontally with my mouse (holding shift + scrolling) on the docs example.
On your Stackblitz demo, however, for some reason it takes some seconds until I can scroll after the page is fully loaded. But on my end, on the docs, it's normal.

Can't reproduce. Both on Chrome and Edge on Windows I can scroll horizontally with my mouse (holding shift + scrolling) on the docs example. On your Stackblitz demo, however, for some reason it takes some seconds until I can scroll after the page is fully loaded. But on my end, on the docs, it's normal.

Thanks for the reply. On windows we are expected to use shift + scroll only? Why is there no scrollbar like on Mac Safari?

Can't reproduce. Both on Chrome and Edge on Windows I can scroll horizontally with my mouse (holding shift + scrolling) on the docs example. On your Stackblitz demo, however, for some reason it takes some seconds until I can scroll after the page is fully loaded. But on my end, on the docs, it's normal.

Thanks for the reply. On windows we are expected to use shift + scroll only? Why is there no scrollbar like on Mac Safari?
On Shadcn (non svelte) i do have the horizontal scrollbar: https://ui.shadcn.com/docs/components/scroll-area

There is for me. It only shows when you hover over the scroll area. On light mode it's light grey, so it might be a bit difficult to see at a glance:

I am having the same issue. Scrollbar isn't visible on my website and the bit-ui demo (https://www.bits-ui.com/docs/components/scroll-area). However it is visible on the shadcn website. If I copy paste the scroll area demo code from the shadcn website there is no scrollbar to be found :(

When using devtools on firefox and enabling the repsonsive design modus and selecting a phone/tablet, then on hover I can see the scrollbar appearing, on desktop it stays invisible

Found a workaround, open the scroll-area-scrollbar.svelte
Add these styles:
	.visible {
		visibility: visible !important;
	}
	.visible > * {
		visibility: visible !important;
	}

Add the following class to both the thumb and scrollbar: visible

Now the thumb is always visible. (Somehow after using this hack the thumbs where visible again even without the style???)

Fixed in shadcn-svelte@next


[CLOSED] NAT and cluster end up in different zones, put in same zone

 Issue by viglesiasce
Friday Aug 18, 2017 at 18:31 GMT
Originally opened as https://github.com/danisla/terraform-google-k8s-gce/issues/3

I am seeing the NAT box in us-central1-f and the rest of the cluster in us-central1-b.

 Comment by danisla
Monday Aug 21, 2017 at 18:25 GMT

This was in the example repo, fixed by copying the region and zone info of the cluster to the nat gateway module. https://github.com/danisla/terraform-google-examples/commit/f4d61ccf88784b11d79456984111f89651af0815


T1 hardware rem

These changes were made to make possible to use the PIR using the Tessel 2 board.
Instead of reading the actual rise and fall we're using the change event to track the state. Seems to be solid.

pir@ version 0.2.0 should work on T2!


chore(README): updates

The instructions for building documentation locally are still wrong, but I'll update those separately.

Medium-term, I'd prefer to recommend lake exe mk_all instead; #13656 makes that change. (It depends on #13850, though. If you'd like to move this forward, feel free to review either PR; they're both very short.)
In the mean-time, this PR is a strict improvement and some of these updates feel long overdue. Thanks for taking care of this!
maintainer merge


ci: Create successful 'Test results' check if not failed

This might fix the confusing red ❌ that stays when flaky tests are re-run. My hope is that this will override the previous check, but I think there is no way to test it.

Try to push some visual changes and then undo them.

Try to push some visual changes and then undo them.

That's not the same. We want to test whether re-running on the same commit will override old check.

Try to push some visual changes and then undo them.

That's not the same. We want to test whether re-running on the same commit will override old check.

But aren't we also have this problem that after fixing visual tests, run results are not updated and that one step to publish visual tests results still shows that it failed?

No, I have not noticed any issues with pushing a new commit.

After about 20 attempts, I have been able to test the expected behavior. This last commit failed and succeeded on a subsequent re-run

All green checks


run the tutorial with faster_rcnn_resnet101_kitti model.

is everyone run the tutorial with faster_rcnn_resnet101_kitti model ?
thanks for ATTENTION...

or any dataset

?


category enhancement

category enhancement

Waiting for your reviews if you see it Good or not  😎😎

@YassinAbdulrahman
Yup it looks much better, thanks a lot 👏😁


HTTPS protocol is not working after loading certs for httpserver to make burrow endpoints to use https

Below are my burrow.toml configs for httpserver
[httpserver.local]
address=":8080"
tls="localtls"
[tls.localtls]
certfile="/server.crt"
keyfile="/server.key"

I'm a Go noob, but doesn't https://github.com/linkedin/Burrow/blob/master/core/internal/httpserver/coordinator.go#L187 need to use ServeTLS instead of go server.Serve(listeners[name])?

See: #443.


Use friendly names

Description
Fixes #966.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

[ ] Unit tests
[ ] E2E tests

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/test

/rebase test=true

/test

We can, but is there any benefit to it? In fact, we could directly use the
first few bytes of the cluster ID if it were guaranteed to be a UUID.
Il ven 26 nov 2021, 20:51 Alex Palesandro @.***> ha
scritto:

@.**** commented on this pull request.
In apis/discovery/v1alpha1/foreigncluster_types.go
https://github.com/liqotech/liqo/pull/996#discussion_r757677229:

@@ -15,6 +15,11 @@
package v1alpha1

import (
+

// nolint:gosec // we don't use md5 in the context of cryptography
"crypto/md5"

Can we use sha256 instead of md5?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/liqotech/liqo/pull/996#pullrequestreview-817030732,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACG3KFKFOTPU2WQQRXU2OSDUN7QLBANCNFSM5IBF2IHA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

/test

/test

/rebase

Bug report: running liqoctl install twice with --generate-name reinstalls Liqo with a different name (on upstream, it does nothing).

/rebase test=true

Should now be ok expect for the additional unit test that I can't get right. I did eventually remove cluster identities from the vk.

/test

/test

/test

/test

/test

/test

/test

/test

/rebase test=true

/test

/test

/test

/rebase test=true

/test

/test

/test

/merge


remove copyless

Objective
Remove copyless
copyless apparently isn't needed anymore to prevent extraneous memcopies and therefore got deprecated: https://github.com/kvark/copyless/issues/22

Ooh thats great news. Much appreciated!

bors r+


Book Detail endpoint

When user is not logged the endpoint breaks, eg.
http://<IP_ADDRESS>:8000/book/title-author111/ (book/detail.html)
This is caused due to checking if user exists in order not to allow him to leave duplicated review:
    book_tags_ids = book.tags.values_list("id", flat=True)
    similar_books = Book.objects.filter(tags__in=book_tags_ids).exclude(
        bookid=book.bookid
    )
    similar_books = similar_books.annotate(same_tags=Count("tags")).order_by(
        "-same_tags"
    )[:3]
    user_left_review = Review.objects.filter(book=book, user=request.user).exists() …
    return render(
        request,
        "book/detail.html",
        {
            "book": book,

Fixed with Pull request #71


State Edge support instead of IE 11 as latest

Fix #17055

Isn't it called Microsoft Edge and not Internet Explorer Edge?

Technically. I've seen it written both ways. If there is a preference for one I can write it as such. As there's a range I don't necessarily see it as a new or different thing just the next version

I think of their docs which use a slash since they are essentially the same just rebranded https://msdn.microsoft.com/en-us/library/hh772401(v=vs.85).aspx

The official name is Microsoft Edge, yes

@patrickhlauke changing it now

Fixed

I don't think it's fair to call it "just a rebrand", they are catching up pretty fast to other browser both performance-wise and with standards compliance.

That's besides the point though @hnrch02 to this actual PR in all honesty whether we agree or not doesn't really matter on the semantics

Fair enough, do we have any data backing up the claim that we support Edge here?

@hnrch02 what data would you like? I can provide screenshots of the v4 docs in edge if that's helpful.

Running the JS test suite was what I was thinking about.

@hnrch02 if that's the case I can't provide that since the test suite doesn't load in edge

Works — I hadn't extracted stuff:

Nice, thanks - LGTM.

Course. Sorry for the misunderstanding with Edge. Not to say it's bad, it's not. I just looked at the rebrand of the same thing from an overall brand perspective not to functionality. Minor change to icon, use of name Edge to keep the iconic E logo instead of spartan. It may have been an unfair or not fully qualified statement on my part. Thanks for understanding :+1:

All good :bowtie:

I think it would be good to list IE11 and Edge as different browsers since they are using a different  redering engine. Edge is using EdgeHTML while IE11 is using MSHTML and it seems that Microsoft will add new platform features only to Edge. However both browsers are present in Windows 10 (IE11 for legacy reasons). Source: http://dev.modern.ie/platform/faq/what-is-microsoft-edgehtml
Maybe IE+Edge support should also be considered "Partially Supported"  (at least for now) due to issues like #17073

While I can understand that A.) the first part is opinion and not worth any of our argument about honestly. It's a different product. Plain and simple. B.) I would go with supported as bugs don't mean it's not supported it means the documentation isn't up to 100% where it needs to be yet as this is an alpha not a final release


Configure a Pod to Use a ConfigMap

In Project keys to specific paths and file permissions, it mentions this Secret guide explains the syntax.
However the above Secret link doesn't mention anything on "specific paths" & file permission is defined here.
Appreciate feedback and update (correction) to documentation.

/kind bug

/remove-kind bug
I think this is a request to mention POSIX permissions for the volume and its files, within the task page “Configure a Pod to Use a ConfigMap”. Is that right @pinakig22 ?
If that covers everything you want to see changed, please state that so we're sure. If you want another change as well, please be as clear as you can about what improvement you'd like.
/language en

/assign


[dv/uvm] best practice for the use of sequence items

I couldn't  find a previous discussion on this so I am creating a new.
Going over some of the OT code I see some code where I don't fully understand the design choice - and I also see something that I consider different that general/best practice.
I would like to understand the choice made.
as an example here is the code from the uart_seq.sv
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
class uart_seq extends uart_base_seq;
  `uvm_object_utils(uart_seq)

  rand bit [7:0] data;
  rand bit       parity_err;
  rand bit       parity;
  rand bit       frame_err;

  constraint parity_c {
    if (parity_err) {
      parity != `GET_PARITY(data, p_sequencer.cfg.odd_parity);
    } else {
      parity == `GET_PARITY(data, p_sequencer.cfg.odd_parity);
    }
  }
  `uvm_object_new

  task body();
    `uvm_info(`gfn, $sformatf("starting uart rx byte xfer seq: 0x%0h", data), UVM_HIGH)
    req = uart_item::type_id::create("req");
    start_item(req);
    req.stop_bit_c.constraint_mode(0);
    `DV_CHECK_RANDOMIZE_WITH_FATAL(req,
        data     == local::data;
        parity   == local::parity;
        stop_bit == !frame_err;
        )
    finish_item(req);
    get_response(rsp);
    `uvm_info(`gfn, "uart rx byte xfer done", UVM_HIGH)
  endtask

endclass : uart_seq

I think this extra level of randomization is not adding any value and just adds a layer of complexity. currently you would have to randomize the sequence every time to get different transactions.
there is in my opinion better way of making layered sequences.
I believe common practice is to randomize the sequence item and constrain it from the config.
could the same be achieved by moving the parity constraint to the uart_item and then uart item boils down to this?
class uart_seq extends uart_base_seq;
  `uvm_object_utils(uart_seq)

  task body();
    `uvm_info(`gfn, $sformatf("starting uart rx byte xfer seq: 0x%0h", data), UVM_HIGH)
    req = uart_item::type_id::create("req");
    start_item(req);
    req.stop_bit_c.constraint_mode(0);
    `DV_CHECK_RANDOMIZE_WITH_FATAL(req )
    finish_item(req);
    get_response(rsp);
    `uvm_info(`gfn, "uart rx byte xfer done", UVM_HIGH)
  endtask

endclass : uart_seq

and all the variables/constraints can then be moved to the sequence item.
if the desire is to pass variables down from top sequence this could be done with non randomizable variables.  or by updating the local agent cfg before starting starting the sequence.

Thanks for bringing up this discussion. It's a good topic to discuss to find a better approach.

I think in our current repo, we have some rules on what variables are in seq_item and what are in cfg. Maybe we can have it in our DV style when we all agree on it.
seq_item contains something that may be changed for each transaction, like data, parity error in uart.
cfg contains some common setting/handle (like chk_en, common delay, vif) and basic setting (clock freq, mode) which may be changed for each vseq/iteration and may require to update CSRs.

In uart, we randomize data in every item, while freq is randomized in each iteration.

there is some benefit to add one more level randomization.
if you want full random item, just `uvm_send(uart_seq)
But in most of cases, you need to do certain constraint. For example, when uart has frame error, uart data will mis-sync, need to clear fifo as unexpected item will be monitored. We don't want this to happen in normal case.
Since we connect certain rand variables (which we want to control in upper level) to seq level, we would do constraint randomization on the seq like this

uart_seq = ... create();
uart_seq.randomize with {...};
`uvm_send(uart_seq)

And depend on different scenario, we may create all kinds of seq, and expose different variables to upper level. Uart is simple and we just have 2 seq. One is to send item without error, the other is to customize with different error.
From my understanding, you may prefer to randomize the item and pass it to seq
item = ... create();
item.randomize with {...};
seq.custom_item = item;
`uvm_send(seq)

This approach can provide user full flexibility to control everything in the item. But some transactions may have many rand variables. We may want to have one more level constraint in seq-level, rather than do all the constraint in vseq-level. Then we can categorize different usage to different seq. And these seq can be reused cross project/team since seq is in agent.
For uart, I feel both approaches are good, since the transaction is very simple.
@sriyerg Any thought?

Hey @rasmus-madsen, thanks indeed for bringing this up. Here are my thoughts:
Passing constrained random data down from sequence to the item provides us the full control (if needed) to pattern our traffic exactly the way we want from a higher level "caller" class (test class or a virtual sequence). IMO the best practice is to indeed randomize a sequence every time before starting it rather than randomizing it only once before starting it multiple times. Passing non-rand variables down might cause cross constraints within the item to get overridden, causing additional debug overhead. To avoid this, we constrain the sequence item members (typically, not all, but a subset based on what makes sense) with the random values the sequence members take. The value this approach adds is now the "caller" can further constrain the sequence members to create a very specific traffic pattern, which is very useful in closing coverage. IMO, the controllability this approach offers outweighs the perceived complexity it adds.
The option you suggest where we use the config class settings to constrain the sequence item instead IMO would also add some degree of complexity.  When and where to safely change the config class settings before randomizing and running a sub-sequence is hard to know since there may be forked threads running other sequences with items that may be constrained with the config class settings. If we suddenly change the config class settings, it might create additional debug overhead. An example of this is stress tests where sequences targeting different design details are forked off in parallel (example: TL error sequence is forked with other test sequences in cip_base_vseq).
I think the config class should stay away from settings that might need to be modified every transaction or every sequence invocation. It is fine to put settings that may be randomized once at the start of the test, but remains fixed throughout the simulation, and settings (set by sequences) that may need to be shared with other env components (example, reset triggered). We can certainly discuss more and come up with a DV style guideline for this.
The option @weicaiyang suggests where the "caller" patterns the sequence item manually and passes it to the sequence (so the sequence is just a dumb middle man that passes on the item verbatim to the driver) is the most flexible way. I think it's a good practice for interface agents to offer one such sequence. However, I wouldn't consider it to be THE solution to the problem put forth here. Moreover, this is not good for reuse where the "caller" is from multiple different testbenches.
Another option is to create multiple sequence item variants that create very specific traffic patterns. That way, the sequence just randomizes the item and passes it along. The downside of this approach is we now have multiple sequence items / sequences to deal with. It also forces the "caller" to create more sequence items if it needs to pattern the traffic in a very specific way that does not exist. IMO this is also not any better since we're just shifting the complexity elsewhere.

@weicaiyang @sriyerg
Thank you for the responses.
@sriyerg  I think we have some miscommunication, I agree with most of what you say.
When I suggest using a config object I am talking about constraint knobs or fixed variables that does not change after build. I can see my comment there is not very clear.
I agree sequences should indeed be randomized - but my point was to say the rand variables should describe sequence behavior, not sequence item behavior. I disagree with passing fixed variables will cause cross constraint issues- how would it ever, I think we might be talking about different things?

The option @weicaiyang suggests where the "caller" patterns the sequence item manually and passes it to the sequence (so the sequence is just a dumb middle man that passes on the item verbatim to the driver) is the most flexible way. I think it's a good practice for interface agents to offer one such sequence. However, I wouldn't consider it to be THE solution to the problem put forth here. Moreover, this is not good for reuse where the "caller" is from multiple different test benches.

I guess I still don't understand the problem then - why is this not good for reuse?
in the case of the uart interface agent. I can think of two ways one would like to use it.

needing uart traffic but not having any constraints on the traffic
needing a more or less constrained uart traffic pattern.

bot can be obtained with the suggested solution.
the current solution the sequence item is just a "dumb" object all values can be static since they are controlled 100% from sequence.
I want to clarify I am not suggesting that the implemented solution is wrong - I am just trying to understand the choice as I think there is better/simpler ways of obtaining the same functionality.
which I guess somewhat boils down to personal preference and that I might not fully understand what problem was being solved with the current implementation.

I wrote my comment very late in the night, so I apologize if I am coming off as being too strongly in favor of going with the existing approach - I just wanted to highlight the controllability from a higher level "caller" it offers. I am providing a few counter arguments below.

@weicaiyang @sriyerg
Thank you for the responses.
@sriyerg I think we have some miscommunication, I agree with most of what you say.
When I suggest using a config object I am talking about constraint knobs or fixed variables that does not change after build. I can see my comment there is not very clear.

I think we have examples where we do use some config knobs to further constrain some of the sequence item members. This is a perfectly fine way of doing things. My point was more about random transaction specific knobs that may need to be changed per transaction or per sequence invocation. In think those knobs should not be in the config class.

I agree sequences should indeed be randomized - but my point was to say the rand variables should describe sequence behavior, not sequence item behavior. I disagree with passing fixed variables will cause cross constraint issues- how would it ever, I think we might be talking about different things?

Here's very simple example where passing down fixed variables down to the req can potentially increase debug overhead. Taking the same UART seq case: "caller" wants to send specific data pattern "8'haa". "Caller" randomizes the sequence and sets the specific data it wants to send via UART.
// "caller" class:
    `DV_CHECK_RANDOMIZE_FATAL(m_uart_seq)
    m_uart_seq.use_specific_data = 1'b1;
    m_uart_seq.specific_data = 8'haa;
    m_uart_seq.start(..);
    ...
//---EOF---

// uart_seq class
class uart_seq extends uart_base_seq;
  bit [7:0] specific_data;
  bit use_specific_data;

  `uvm_object_utils(uart_seq)

  task body();
    `uvm_info(`gfn, $sformatf("starting uart rx byte xfer seq: 0x%0h", data), UVM_HIGH)
    req = uart_item::type_id::create("req");
    start_item(req);
    `DV_CHECK_RANDOMIZE_WITH_FATAL(req)
    if (use_specific_data) req.data = data; // parity constraint within req broken!
    req.parity = `get_parity(req.data, cfg.parity_odd) // need to recalc the parity
    finish_item(req);
    get_response(rsp);
    `uvm_info(`gfn, "uart rx byte xfer done", UVM_HIGH)
  endtask

endclass : uart_seq

In the above case, when the seq sets the fixed data to the req, the constraint within the req that calculates the parity bit is broken. Parity was calculated based on the data it initially randomized, but now the data is updated to a different value, so the parity bit value is incorrect. Parity now has to be recalculated. This is fine for a simple usecase such as UART, but we could have much complex scenarios than this.
The rand variable at the sequence level can either abstract the sequence item details to reflect the sequence behavior, or it can expose sequence item details directly - it really depends on user preferences and what makes sense for the level of complexity.  The UART is simple enough, so there is no need of abstraction - it is simple enough to just expose the 8-bit data from the item level to the seq level. By doing so, the "caller" can set the specific data directly in its constraint:
  "caller" class (current approach):
    `DV_CHECK_RANDOMIZE_WITH_FATAL(m_uart_seq, data == 8'haa;)
    m_uart_seq.srat(...);

The option @weicaiyang suggests where the "caller" patterns the sequence item manually and passes it to the sequence (so the sequence is just a dumb middle man that passes on the item verbatim to the driver) is the most flexible way. I think it's a good practice for interface agents to offer one such sequence. However, I wouldn't consider it to be THE solution to the problem put forth here. Moreover, this is not good for reuse where the "caller" is from multiple different test benches.

I guess I still don't understand the problem then - why is this not good for reuse?

Lets say UART testbench uses uart_agent. UART testbench sequences manually randomize uart sequence item into different traffic patterns for different usecases, since uart agent no longer provides them. In future, there is a "foo" testbench which also needs to use uart_agent. In foo testbench, sequences would have to again replicate those different patterns, similar to how UART testbench did it. By placing the burden of creating the different traffic patterns on the higher level testbench, reuse of uart_agent is harder.

in the case of the uart interface agent. I can think of two ways one would like to use it.

needing uart traffic but not having any constraints on the traffic
needing a more or less constrained uart traffic pattern.

bot can be obtained with the suggested solution.
the current solution the sequence item is just a "dumb" object all values can be static since they are controlled 100% from sequence.

Mildly agree - sequence controls only the sequence item members it wants exposed at its level. In case of UART seq, it happens to be 100% (since uart seq item barely has 3 or 4 members), but it need not always be the case. Like I mentioned above, it depends on what makes sense for the sequence to control.
If the "caller" randomizes the sequence without placing any additional inline constraints like in my example above, it should behave exactly same as the case where sequence is not passing down variables but just letting the sequence item randomize itself.
"caller" class (just want to send some uart packets, let the sequence handle the randomization for me):
    `DV_CHECK_RANDOMIZE_FATAL(m_uart_seq)
    m_uart_seq.start(..);

In above case, the uart_seq could be written in existing approach, or in the approach where it does not control the sequence item randomization whatsoever - the behavior would be exactly the same.

I want to clarify I am not suggesting that the implemented solution is wrong - I am just trying to understand the choice as I think there is better/simpler ways of obtaining the same functionality.
which I guess somewhat boils down to personal preference and that I might not fully understand what problem was being solved with the current implementation.

I agree again - its a matter of personal preference. I think there are several ways of achieving our goals and each comes with its set of pros and cons. Looking at some examples (and also based on my own past experience), it looks like the last approach I indicated in my previous comment is more generally followed (create different packet variants - good uart packet without parity, with parity, bad packet with parity error, bad packet with frame error etc. and let the sequence pick and randomize the packet variant to sent based on what the "caller" wants). I don't think there is a need to prescribe one approach over the other since both are perfectly valid ways of doing things.

@sriyerg @weicaiyang @rasmus-madsen
If *_item does not consist of rand variables, I think `DV_CHECK_RANDOMIZE_WITH_FATAL(req ...) should be removed to avoid fatal error.

this thread is still on going in meetings - @sriyerg should we keep this until we have a common understanding or should we just go ahead and close it?

I think we came to an agreement and this can be closed ?
is it ok if I close this @sriyerg @weicaiyang

Sure, sounds good to me.

Sure, let's close it


v2.0.0 RC1

Codecov Report

Merging #5 (a39e64d) into main (7ac1f3d) will increase coverage by 24.48%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             main        #5       +/-   ##
============================================
+ Coverage   75.51%   100.00%   +24.48%
============================================
  Files           1         1
  Lines          49        22       -27
  Branches       13         3       -10
============================================
- Hits           37        22       -15
+ Misses         12         0       -12

Impacted Files
Coverage Δ

src/prefer-function-component/index.ts
100.00% <100.00%> (+24.48%)
:arrow_up:

Continue to review full report at Codecov.

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


[Doc Improvement][Dev comm Triggers in bot composer][2713736]

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
95
6
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Learn Build status updates of commit dcda65f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
95
6
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Learn Build status updates of commit 61c2aeb:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
95
6
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Learn Build status updates of commit 8b0c8b2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


(transformer-remark) Generate excerpt automatically

Summary
Currently, with @gridesome/transformer-remark, excerpt has to be added manually in the markdown file. There is a work around to generate it automatically by passing a custom excerpt function to gray matter. However, the function is limited due to that content is raw and not parsed.
Therefore, it would be nice to have an autogenerated excerpt which is a prefix text extracted from the content. One example of the implementation can be excerpt in Gatsby
I've implemented one for my personal blog. You can refer to https://github.com/bongnv/transformer-remark/blob/master/index.js#L121 to have a review.
Basic example
In order to achieve backward compatibility, we can add new field prunedText and it can be queried with GraphQL like:
<page-query>
  query {
    posts: allBlogPost {
      edges {
        node {
          id
          title
          date(format: "D. MMMM YYYY")
          path
          timeToRead
          excerpt
          prunedText(pruneLength: 200)
        }
      }
    }
  }
</page-query>

Later, it can be rendered like:
{{ post.excerpt || post.prunedText }}

Motivation
Not every posts have an excerpt, the feature will provide an automated excerpt to increase the richness of transformed content.

We have already a PR for this topic :)
Checkout: https://github.com/gridsome/gridsome/pull/1085

I close this issue since the related PR is merged - but feel free to reopen it, if the mentioned PR isn’t the same as what you have described.
Regards,
Marcus

Yes, it's what I would expect. Somehow I couldn't see it in my search. Thanks


Distance object Color not updating on change

Related to  #35
After a Distance object has been created the color of the 3D line that represents it can be changed using a color picker. However when the color value in the control is altered the Distance object's color is not immediately updated. When selecting a different Distance object in the list view, the previously changed color is then rendered. This implies that either the distance change event is not being fired or the listeners are not hooked in, or possibly the global map of distance objects is not being updated in a timely manner relative to the event handling.
This behavior has been observed in the Projections 3D pane but may also be present in the Hyperspace3D pane.

Any file and/or steps to reproduce the issue maybe @Birdasaur?  It would help me a lot to be faster fixing this, and to not go totally deep, and dig out all the context. Appreciated if you can help! 🙇

Ah this brings up a great point... we don't have any files for testing!
We need to upload a few different files to facilitate. I will do so but I will need a little time to determine which data files are both good representative examples but are not sensitive. (so I can share)

Oh, I see!  Thank you for your response.
Yes, indeed it is much easier to fix a bug if you can actually see/reproduce the bug :D.
And I fully understand the concern, and problem with data. Take your time, I also have busy days/weeks behind me with Devoxx and fam/work stuff. I will have a second look at this issue when we have some files/data to spot the issue.

@samypr100 Does it make sense here to create a branch for this issue and add a "sample" folder or something like that?

Agreed

I'd name it example_data

https://github.com/Birdasaur/Trinity/tree/45-distance-object-color-not-updating-on-change
Added two data files (human vs chatgpt) and a label coloration configuration file.

Adding these files, while just JSON, does add over 50mb to the repo. I didn't stop to think about that.
Is this the right thing to do?

@Birdasaur: Thank you very much for working on this! Much appreciated!
I'm with you on this. I think the 100MB limit for larger files on GitLab, after that you need to use GitLFS.
But 20-50MB files are also not nice to add. Usually, from what I have seen or how we've resolved this with different companies, there are a couple of options:
Using a Google Drive link (and we can add it to the README.md with the dataset link).

Potentially, we can upload it to an S3 bucket or another storage solution.
I vaguely remember that GitHub doesn't handle larger files well, which can make your project more challenging to clone. Also, any changes to the file will increase the repo's size significantly, as it is storing the changes. (at least as far as I know). So, it's better to keep it as small as possible.

Another idea is that you can somehow narrow down the dataset to only include what's relevant to a specific problem. However, in that case, we might need to do every time for each of the bugs.
On the other hand, we can't write unit tests without a test dataset to verify if the problem is fixed and stays fixed in the long run.
So yeah, many thoughts :D, but in short, I am fine if you add it to Google Drive if possible, or anywhere else, but GitHub. And it would still be nice to have it covered with a unit test, I feel.

Might be easier to provide instructions on how to generate the data instead. Althought if you already commited and already pushed, it's permanent on the history now I think.

@samypr100 I do not see any push or PR from recent times containing the big file.
Birdsaur and SamyPr:
I think 50mb is okay, GitHub shall be able to handle it nicely, the downsides I can see now are:

clones, even maybe fetches, or other Git methods can take more time, more resource-heavy :(
pushing more and more data to this repo can make us eventually run out of space from GitHub official docs: We recommend repositories remain small, ideally less than 1 GB, and less than 5 GB is strongly recommended.

Also if you reset, remove the commit fully from git commit history, and run some kind of GitHub magic, or eventually at some point with garbage collection, the files shall be removed completely and space shall be allocated again, more info about how to completely remove data from Git:

https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository

All in all not the end of the world to commit 50MB but for the long run, long/frequently used open-source libs/projects it is not optimal. So I suggest the previous options (GDrive or other storages, or even generating data also seems a good idea, but how do you generate to cover, see the issues, seems a bit more complex to me...)


Fix logger class loader leak with workaround

fix memory leak when reloading a project
When executing the sbt command reload, some log Appenders stay
registered in the global LogManager, which leads to leaked class
loaders , which leads eventually to an OutOfMemoryException: metaspace.
This fix registers a cleanup method, which clears the global
LogManager's appenders and logs on debug, which Appender it cleared.
The correct fix would imho be a proper lifecycle mechanism that allows
to deregister all appenders where appropriate.
The underlying bug can be reproduced when you start sbt in an empty
directory and observe its metaspace usage.
Fixes #4773

It looks like scripted project/sbt-version-change fails after this change. I took a quick look and I'm wondering if maybe the lifecycle issues that you mentioned could be handled in MainLoop.runWithNewLog. It looks like that method adds an appender to the global logger without removing the previous appender. I'm wondering if that is the main source of the leaks.

Oh, and thanks for working on this!

@jm-g Thanks for looking into this.
I'm not sure if Main.scala is the right layer to fix tho. If some appender is leaking, then doesn't that imply that they are likely leaking for any command or a task? Or is it leaking specifically for reload?
Also I am not if wiping out all the appenders is safe to do.

The scripted failure looks real so this change as written does seem to break something. I don’t understand appenders well so I wouldn’t be surprised if my suggestion was off. I did notice that new appenders get created after each command evaluation and I wasn’t clear on why that was.

@eed3si9n and @eatkins As far as I understood it, wiping all appenders is safe after a reload, because they are either re-added again or they are instantiations of classes from past class loaders. Which is the reason for the leakage of class loaders. As you can see from my log statements, I am not sure whether this is the best way to fix it. So, if you guys aren't sure how these loggers and appenders are supposed to be working, I'll have to dig deaper myself. Is there some documentation about the logging subsystem?

Closing this since https://github.com/sbt/sbt/pull/5731 was merged.
We ultimately didn't take this approach, but this PR became a jumping off point for the later works, so I want to thank you for the contribution.

Thanks, for continuing  this work. @eatkins @eed3si9n


Add Upgrade testing workflow

The issue resolved by this Pull Request:
Resolves #216
Description of your changes:

This GH workflow sets up a kind cluster, installs OLM, deploys the OpenDataHub operator, deploys DSPO using a KfDef pointing to the most recently released branch specified via the GH action input. It further spins up a DSPA instance.
The action upgrades DSPO to point to a candidate version, specified in the action input, and spins up a DSPA instance in a separate namespace.
For now, we've set the most recently released branch to be an input just to be able to run and test this workflow out once merged, but we'll eventually set it to be the main branch of opendatahub/data-science-pipelines-operator repository in the KfDef.
Specific upgrade testing checks to ensure that the upgrade went smoothly will be covered in a separate PR.

Testing instructions

Find a successful workflow run on my fork of the DSPO respository with this same set of configs here, tested out the workflow run multiple times to ensure there aren't any flaky successes:
https://github.com/DharmitD/data-science-pipelines-operator/actions/workflows/upgrade-test.yml
Checklist

[ ] The commits are squashed in a cohesive manner and have meaningful messages.
[ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has manually tested the changes and verified that the changes work

Latest run on my fork with these changes: https://github.com/DharmitD/data-science-pipelines-operator/actions/runs/6113169351/job/16592134955


Refactor(BPDM): Clean import and unused vars for code smelling

Description
General code improvement in all Modules.
Removal of imports.
Removal of unused code and variables.
Logic improvement in separate ifs with equal conditions.
Removal of unnecessary assert not null.
Issues: https://github.com/eclipse-tractusx/bpdm/issues/578 https://github.com/eclipse-tractusx/bpdm/issues/579 https://github.com/eclipse-tractusx/bpdm/issues/576
Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[x] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[x] Copyright and license header are present on all affected files

Looks good!
The commit though has the wrong type. instead of starting with 'feat' should be 'refactor'

Thanks for the correction , I runned up with sonar and Trivy locally before cleaning

There is one test of the Pool failing due to a rounding error it seems. Please have a look and correct the

All passed and rebased on current main


enhancement(CLI): zsh-completion warning

When running the envd bootstrap command in a device without the zsh shell installed, the following Warning occurs：
WARN[2022-07-05T10:12:25Z] Warning: unable to enable zsh-completion: /usr/local/share/zsh/site-functions does not exist

We should check if zsh exists. And remove the warning.

We should check if zsh exists. And remove the warning.

thx!

It is not fixed, I just explain more about the issue. Let's reopen it.

I have installed zsh and OhMyZsh, but there's still this warning. OS is macOS.
> envd bootstrap
...
WARN[2022-10-11T21:34:37+08:00] Warning: unable to enable zsh-completion: /usr/local/share/zsh/site-functions does not exist
...

Then I manually created this directory, but still with no luck
WARN[2022-10-11T21:59:50+08:00] Warning: open /usr/local/share/zsh/site-functions/_envd: permission denied

Maybe it's better to search for $fpath and find out the proper directory to install the autocomplete scripts?
Mine is
> echo $fpath
/Users/dragonly/.oh-my-zsh/plugins/git /Users/dragonly/.oh-my-zsh/functions /Users/dragonly/.oh-my-zsh/completions /Users/dragonly/.oh-my-zsh/cache/completions /usr/local/share/zsh/site-functions /usr/share/zsh/site-functions /usr/share/zsh/5.8.1/functions

I think it should be a bug.

IMO, the owner of /usr/local/share/zsh/site-functions/ should be root?

In my case, it's UID1000.

Maybe it's better to search for $fpath and find out the proper directory to install the autocomplete scripts?

The solution LGTM!
We need to  find a proper dir.

Maybe I can try on this issue.
I think the zsh path can be the following three directories, priorities from high to low:

/usr/share/zsh/site-functions
/usr/local/share/zsh/site-functions
$HOME/.oh-my-zsh/completions

And try to access them each by each until find a proper one.

Thanks! /assign @Triple-Z


ROS DOMAIN ID saturated

Robot Model
Turtlebot4 Standard
ROS distro
Humble
Networking Configuration
Simple Discovery
OS
Ubuntu 22.04
Built from source or installed?
Installed
Package version
.
Type of issue
Navigation (SLAM, Nav2 etc.)
Expected behaviour
.
Actual behaviour
the problem I encountered is that: when I launch more than a single robot, everything crashes and nothing launches correctly, I knew where the problem comes from: all the robots I have are in the same ROS_DOMAIN_ID but each has its own namespace, as soon as I change the ROS_DOMAIN_ID for each robot everything is good but my codes are made for the same ROS_DOMAIN_ID I cannot communicate with all the robots, how can I fix this?
Error messages
No response
To Reproduce
i launch those command for each robot, i have three :
ros2 launch turtlebot4_navigation localization.launch.py map:=second_floor_map.yaml namespace:=/robot1
ros2 launch turtlebot4_navigation nav2.launch.py namespace:=/robot1
ros2 launch turtlebot4_viz view_robot.launch.py namespace:=/robot1
Other notes
No response

Hi @halimimaha
Where are you launching the commands - on the RPi? or your remote PC?
Are you running the RPi on 2.4GHz or 5GHz WiFi?
Can you please send us some logs with the issue is occurring: https://iroboteducation.github.io/create3_docs/webserver/logs/
Thanks,
Rusty

thanks @RustyCPR  for ur reply !
i lanch the two first commands on the RPI and the third one on my PC.
The  RPi is running on 5GHz WiFi.
Just for ur info the issue was fixed with a bridge between every ROS DOMAIN ID assigned to the robots !
Thank you so much for ur help !


Do something when the wheel rotating

Hi,
I'm really graceful for this awesome work. Thanks a lot!
However I have a question. So, I want to play a music, when the wheel is rotating. That's okay I can check the isRotating methods return value, but how can play music for ever, when the wheel rotating?
I need an Async task or maybe you have a better idea?
(I used this layout via gradle, so I don't exactly change the source code, if it possible.)
Best regards from a Hungarian android lover! :wink:

Hi Pál,
In this case I think you can use the setOnRotationFinishedListener method with which you can receive the event when the CircleLayout stopped rotating. This way you do not have to poll the state, but your code will be notified when the rotation stopped. The tricky part will be to find out when the rotation starts. Currently it is not supported by the library.
If you do not want to customize the code you might be able to set an OnTouchListener on the CircleLayout and tell if the layout has been touched, hence it is likely it started rotating, but you might need to configure it to only change state if the movement of the touch is above a certain threshold. Remember to return false from the listener to not prevent other listeners to work properly.
Happy coding!
Best wishes from Budapest! ;)

Hi,
oh really! I forget the touch listener.. Thanks for helping and fast answering!
(Yeah, the music stopping isn't a question. I knew it. Sorry for the inaccurate expression.)
Have a good day!