[POC]: Investigate feasibility of integrating v11 components into a v10 application

User story

As a [user role below]:

Developer working on an IBM Software product on Carbon v10

I need to:

integrate v11 based Carbon components with AI capabilities

so that I can:

have AI experiences embedded into our product before we fully migrate to Carbon v11
Additional information

Related issue: https://github.com/carbon-design-system/carbon-for-ai/issues/23

Approaches we would like to investigate would be:

integrate Carbon React v11 components (e.g. AI slug, enhanced core components) into an existing application with Carbon React v10
integrate Carbon Web Components v11 components (e.g. AI slug, enhanced core components) into an existing application with Carbon React v10
integrate Carbon Web Components v11 components (e.g. AI slug, enhanced core components) into an existing application with Carbon Angular v10

One known issue would be the handling of sub-dependencies like downshift, which might be troublesome between Carbon React v10 and Carbon React v11

Sub note to this, Carbon Web Components does not use downshift as a dependency

Ideally, we can find sponsor product teams to test out this POC in actual products

List of products and which version of Carbon/framework they are on: https://ibm.ent.box.com/notes/1312171108218
EIS is currently on Angular v10 and may be a team of interest to work with, see box note for dev contact to work with

Acceptance criteria

[ ] Determine ability (and limitations) of embedding Carbon React v11 components into a Carbon React v10 application
[ ] Determine ability (and limitations) of embedding Carbon Web Components v11 components into a Carbon React v10 application
[ ] Determine ability (and limitations) of embedding Carbon Web Components v11 components into a Carbon Angular v10 application

First up, we think it is possible and Taylor believes he can create an example for product teams to work from.
The system in use by Clayton's team appeared to be one of proxying Carbon 10 and using Carbon 11 directly. Taylor believed this might be possible to do without the proxy project using an alias such as that I shared "@carbon/layout-10": "npm<EMAIL_ADDRESS>Product teams wanting to make a minimal change could, using a proxy project, and compiled Carbon CSS could start using V11 components alongside V10. This could leave the migration of non-component CSS as a separate exercise e.g. type, layout, theme.
Switching from @import to @use and dealing with SASS name spacing is not needed if compiled Carbon V11 CSS is used. Use of compiled CSS, with theming, is permitted by @carbon/ibm-products
Taylor is going to produce an example repository showing the stages of moving from V10 to V11 as described above.

From my explorations, to use v10 and v11 in the same project you need:

A modern version of npm or yarn (I used<EMAIL_ADDRESS>A modern and up to date bundler

If you're using webpack it needs to be v5.x, ideally latest
My tests used Vite which uses Rollup under the hood
I don't see why there would be an issue using Parcel as well, though I have not explicitly tested it.

I want to emphasize that it is possible to run v10 and v11 together without any strenuous configuration. My initial concerns about duplicate transitive dependencies (like downshift) were unfounded. Package managers and bundlers handle duplicate transitive dependencies with different versions just fine, though you do have to be aware of what's happening and the potential caveats you can run into.

[!NOTE]
I have created a stackblitz example showing it is possible to use various components and styles from v10 and v11, including the new Slug.

At a high level the process I took was:

Install and configure Carbon v10 (or have an existing application using v10)
Install @carbon/react
Configure the @carbon/react styles with @use
Import v11 components from @carbon/react and icons from @carbon/react/icons

Caveats
The complications we're seeing with some teams running into odd errors stem from an additional layer of sub/transitive dependencies. Often, projects use additional library(ies) that proxy Carbon v10, like Cloud PAL. Sometimes the libraries don't fully proxy carbon but they list carbon as hard dependencies.

[!IMPORTANT]
So far, all the errors we've seen are only styling-based (sass) errors. We haven't seen any javascript errors resulting from mixing v10 and v11. It commonly presents as Sass errors of "mixin not found", "... is not a number", etc. indicating the erroring stylesheet is looking for part of an API that can't be found in that version.

If a developer adds @carbon/react to their project, configures the styles, and then sees an error, it's most likely due to the bundler using a v10 carbon package/dependency when it should be using a v11 one. For instance,

A project is using Carbon v10 via<EMAIL_ADDRESS>and<EMAIL_ADDRESS>A developer installs @carbon/react to the project.
Both<EMAIL_ADDRESS>and @carbon/react list @carbon/layout as a dependency:

<EMAIL_ADDRESS><EMAIL_ADDRESS>

"@carbon/layout": "^10.37.2"
"@carbon/layout": "^11.20.0"

If the developer brings in styles or js assets from @carbon/layout, which version is used, v10 or v11? In my tests, it uses v10.
Potential solutions
The two approaches we've seen been used successfully to get around this are:

Alias the package names
Isolate the styles

Option 1: Alias the package names
Any package can be aliased to a different name to prevent inadvertent conflicts. For example:
npm install @carbon/layout-v11@npm:@carbon/layout@11

The goal with this approach is to avoid naming conflicts by either aliasing v10 packages, or the v11 packages. If you alias v10 package names, you'll have to update all your existing imports. If you alias v11 packages, your existing imports can stay the same, but new imports for v11 components will have to use the alias. For these style-only errors, it may be easiest to install and alias v11 packages.
The reason this works is because when the bundler goes to look for @carbon/layout for instance, it will only use the non-aliased version. This way you can then specify exactly when/where you want to bring in and use the aliased version, @carbon/layout-v11.
Option 2: isolate the styles
The goal with this approach is to totally separate the v10 and v11 styles into separate stylesheets that are loaded independently via webpack. Here's an example from a cloud team using this approach.
The reason this works is that the imports/use statements are totally separate from one another, which prevents the sass global namespace from being polluted with invalid stylesheets from the other version. v10 styles import carbon-components stylesheets and related sub-dependencies. v11 styles @use '@carbon/react stylesheets and related sub-dependencies.
For bundlers other than webpack it may be more difficult to separate these into isolated execution contexts.
Things to avoid
We've seen the following things cause issues:

Don't deduplicate dependencies. You want multiple versions of carbon packages when using both versions together.
overrides - these can be incredibly tricky to get right. Only use them as a last resort. Since we want to use multiple versions of the same dependency, you have to be careful and use nesting to ensure you're only overriding the sub-dependency you intend to. This may be quite deep depending on your dependency tree.

Is it worth it?
Maybe! For some teams, this additional overhead is worth it to bide time avoiding a full migration to v11 right now. For others, they'd prefer to work on the actual v11 migration instead of adding more tech debt to their stack. The decision also heavily relies on if the project is using 1 or more PAL libraries, and how intense the configuration of those styles is.
This thinking applies to all the approaches outlined in the initial body of this issue whether it be v10/v11 react mixed use, using web-components in a react/angular app, or using assets from a CDN. The end result is the same: the project fulfills the immediate need of being able to use v11 things like Slug but each path ultimately results in additional tech debt to be paid off later.

@tay1orjones Great post! But one point here: How is about duplicate carbon in our chunks. When we pull in carbon 10 and 11 we will have twice carbon in our bundles, making chunks bigger and page load slower. Or do you have some tips to keep the footprint low on those? And maybe also an idea how much that would affect teams? You only talked about transitive deps, that is why I ask.

@Mikadv That's a good question, sorry I didn't directly address it. You're correct - bundle size will temporarily increase with this approach.
Most teams that have taken this approach are okay with paying this bundle-size "price" to facilitate the migration. It's only temporary, and eventually they will be able to remove the carbon-components styles and carbon-components-react js once they're fully migrated to v11.
Impact to javascript bundle size
For javascript imports, treeshaking will still work as you'd expect to only bring in the components you end up using. Icons are bucketed in both v10 and v11, and if you import a @carbon/react component that uses an icon, a collection of new icons in the same bucket will end up in your bundle.
Mitigation
You can reduce the likelihood of this by avoiding using @carbon/react/icons until you migrate all your icon usages at once. We have a codemod available through @carbon/upgrade to assist with this migration.
npx @carbon/upgrade migrate icons-react-size-prop --write
npx @carbon/upgrade migrate update-carbon-icons-react-import-to-carbon-react --write

Also I think this goes without saying, but you want to avoid bringing in anything more than you're using, so avoid things like
import * from '@carbon/react';

Impact to style/css bundle size
Style bundle size is going to increase because you're including new styles for v11. Most v10 projects are going to already be loading all the styles available through carbon-components, then by adding @carbon/react styles it'll probably nearly double in size of total final css output. These two packages use different prefixes for all the selectors so there's no risk of conflicts, but there's effectively quite a bit of duplication while you're running both packages at the same time.
Mitigation
You can mitigate the scope of this increase by selectively @import or @use only the styles you need. Here's an updated version of my initial example that only brings in the individual style modules required for the components on the page: Button, Accordion, Slug (and therefore Toggletip, but this will be included automatically in the future, https://github.com/carbon-design-system/carbon/issues/15341).

Further to Taylors investigation I have both updated the Carbon React v11 stackblitz and created a Carbon WebComponents version.
The updates add a theme selector and a Carbon prefix for V10. The prefix is was added to avoid clashes on some CSS settings such as the hover background. It appears to only affect V10 in both versions.
Carbon React V11 with V10 - https://stackblitz.com/edit/github-pdxjpu-8texfv
CWC with Carbon V10 - https://stackblitz.com/edit/github-pdxjpu-qkh5qn


Merge master branch to prTesting1_201903050904 branch

OPS Build status updates of commit cbd8255:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

split/updateTestRef1.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


fix prefix normalization

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

14 of 14 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 94.826%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
1008

Relevant Lines:
1063

💛  - Coveralls


Add info button about user inactivity

What does this PR do?
It puts an info button in the user list to explain what it means to be inactive.
I'm unsure actually if I put the right info in the dialogue - happy about input here! And also if the way I put the new translation strings into the locales is appreciated or not (the other way would have been to just put it into GROUP, but that's super huge already, soo....)
(It's a tiny change that didn't break any test...)
Links to related issues
No issue but two users asking independently for more detailed information about inactivity criteria.
Checklist

[x] added a test, or explain why one is not needed/possible...
[x] no unrelated changes
[x] asked someone for a code review
[x] joined #karrot-dev channel at https://slackin.yunity.org
[x] added an entry to CHANGELOG.md (description, pull request link, username(s))

@djahnie you can click to merge :)


Delete row l callback onClick event

Hi,
How i can  delete entire row when click on custom component contain in each Grid row ?

I had this same need and did this:
I added a property to the columnMetadata that contained the customComponent I needed to pass the delete method to, and then inside the custom component used this.props.metadata.deleteCallback.bind(null, this.props.rowData.id)
The deleteCallback is defined in the component scope that has access to the results state. Then method then just removes that item from the array, then calls setState on results thus causing a re-render that displays the results without the deleted row.
columnMetadata={[
...
						{columnName:'actions', displayName: 'Actions', order: 5, visible: true, locked : true, deleteCallback : this.props.deleteCallback, customComponent : ActionsColumn}
					]}

...

var ActionsColumn = React.createClass({
	render: function(){
		console.log(this.props);
		return (

			Edit
				Delete

		)
	}
});

Hi there -- thanks for the example @jzumbrun! We just added a customTableRowComponent (names on some of the custom component things are likely going to change before the 1.0 release to be less confusing) to the source and soon npm.
This may also be something that could be utilized to achieve similar functionality. Please see the brief example here before we get the docs updated. https://github.com/GriddleGriddle/Griddle/pull/134
I'm going to close this for now but please let me know if you have any trouble.

I can't find anything about customTableRowComponent in the current release. I know you said the names could change, but the customRowComponent that's there now seems to only render divs and I can't figure out how to use table rows.
@jzumbrun this worked great, thanks!


Bare metal host protocol buffer definitions for cloud agent

In this PR we split BMMachine into BMMachine and BMHost entities. BMHost entity is the cloud agent provider for the BMHost agent. BMMachine is created on a BMHost. BMHost is location based and BMMachine is group based.

Do remember to cherry pick this to master. we already forked a branch for our release

so BMHost is location based and BMMachine is group based?

Yes, BMHost is location based and BMMachine is group based. Updated the description.


allow to create/read uncompressed files

Related: https://github.com/wcampbell0x2a/backhand/issues/287


Move to AWS

Overview
Changes to front-end and back-end required by move to hosting in Amazon Web Services
Action Items
@Abhishek-AC please populate action items here
Resources/Instructions
@salice will be a great resource here, note she probably has more availability to work on this sooner rather than later

I have a midterm the coming week, I will not be able to dedicate my time this week and the coming week. Apologies.

Hi @shinjonathan @ExperimentsInHonesty is interested in pointing the DNS to the new location in AWS, did you have any luck getting this up yet?

@shinjonathan With the elections done, let's work on this. Please contact Jared to start making this happen. Thank you!

@shinjonathan With the elections done, let's work on this. Please contact Jared to start making this happen. Thank you!

Issue closed due to duplication.

Issue closed due to duplication.


Update vpnv2-profile-xsd.md

issue #2914
other errors were fixed by https://github.com/MicrosoftDocs/windows-itpro-docs/commit/08adcc05c8efc4971f6ce37ca17df24e1263de0b#diff-f6f96b0b605b60a7054af9a3c362d4aa
Thank you

@manikadhiman Would you be able to review the PR that addresses issue #2914? Thank you.

@AndreaBarr The PR that has been approved by the document author is ready to be merged. Thanks.


FTB Crash Exit code 0

Hey,
so first of all excuse me for my bad english.
I installed everything the right way but everytime i start any mod pack from the ftb launcher my minecraft just crashes and says Exit code : 0. In change log it says exit code 1.
Tryed everything uninstalled ftb, minecraft, java even tryed going in to %temp% and deleting everything those programms installed there. still not working. I dont know if this is a problem with mc it selfe or the ftb launcher but i hope you guys can help me out so i can play with my friends.
Thanks

duplicates #165

duplicates #165


Bugs/openssl error

Currently, running a pipeline for the develop branch fails on 2 of the 6 base images (r and isce2). The error message was: AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'
Adding RUN pip install pyOpenSSL==23.2.0 before the mamba installs stopped this issue
Note that at first, creating a vanilla workspace with this fix was giving the nested eclipse che error, but I created 3 other vanilla workspaces with this fix, and didn't get that error again. I also didn't change anything for the vanilla image in this PR
Also, to try to make this cleaner I tried:

adding pyOpenSSL==23.2.0 to the mamba install line that is failing
making a separate statement above the big mamba install statement and trying to install with conda and mamba
adding pyOpenSSL to the shared environments.yml

But none of these approaches worked

Both are now pip installs, sorry for the confusion

we can merge this with the pip and then later address https://github.com/MAAP-Project/maap-workspaces/issues/44


[research] other contributor sites

Special thanks to @jberkus for collecting this information.
Mozilla - goodness included multiple paths for engagement including things like "follow us on twitter" which (AFAIC) are a lovely "stepping up" to contribution pathway; up-to-date events list; the "easy" interface here (https://www.mozilla.org/en-US/contribute/signup/); this page https://www.mozilla.org/en-US/firefox/channel/desktop/#beta (so friendly). The bad: this page (https://firefox-dev.tools/) is, I think, where the hardcore coders would start for instructions and it isn't as easy to find
Fedora -- they loved this! For a while it was impossible to find, but now it's linked nicely from the main getfedora page (yah!)
OpenMRS has a different approach in that the have a "How to contribute" book (http://devmanual.openmrs.org/en/) but I like it because it covers a lot of the non-dev-specific things like how they work and the project history in one place (this info is avail for many projects, but it's all spread out, so it is hard to know what things you should know before you start)
Ansible Pretty dense, but we've built up a fair amount of process over the
years. Getting the right people the right info can be a challenge;
this is our best attempt, and it's pretty much ever-evolving. New draft version
Gentoo has a 'Get involved' section which itself leads to https://gentoo.org/get-involved/contribute/that explains how one can contribute to the project. Note that we don't actually have a ton of core committers but receive significant contribution on our wiki and through our proxy maintainers project and the contribution web site is meant to detail different ways folks can get involved with the project besides just writing ebuilds.
At libreoffice.org take a look at the "Improve it" menu on the top navigation bar. We've recently revamped this section of the web site, which acts as an entry point to all the various places people can engage, including the DevCentral portal https://devcentral.libreoffice.org/ and the Developers area of our wiki https://wiki.documentfoundation.org/Development
FSFE has a page at https://fsfe.org/contribute/contribute.en.html which
we have overhauled just recently. Actually we've received quite positive
feedback about it, so it might help.
also node -> https://nodejs.org/en/get-involved/contribute/
Some projects that have "contributor profile" pages. This isn't something we've discussed before; is it something we'd want to do? There is a bit of a scale problem, of course:
Drupal
Including "people mentored", which is a way to encourage mentorship
Eclipse: https://projects.eclipse.org/projects/eclipse.jdt/who
Microprofile: https://microprofile.io/contributors/
PostgreSQL: https://www.postgresql.org/community/contributors/

/remove-lifecycle stale

/remove-lifecycle stale

The Ansible Engineering team is currently maintaining community.kubernetes Collection that will also be split up soon. Let me know if you need more info.

With the launch of the site, I think this is safe to close.
@abenokraitis The subproject kubespray uses ansible, as far as I know they're evaluating what they're going to do( https://github.com/kubernetes-sigs/kubespray/issues/6400), but any dialog about it should probably move over there 👍 I can help route to the right people if you need it.
/close


Create regimen_to_treatment_transformation

As a de developer, I want to have a transformation that generates the parquet file with the data for the regimen_to_treatment table.

[x] Parquet file with the data: id, regimen_ontology_term_id and treatment_ontology_term_id.

@zperova done


[BugFix] fix prune project rule

What type of PR is this：

[ ] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Changess:

PruneProjectColumnsRule: choose smallest column from project map and child operator output
PruneProjecctRules: it's not necessary anymore

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto backported to target branch

[ ] 2.5
[ ] 2.4
[ ] 2.3
[ ] 2.2

run starrocks_admit_test

run starrocks_admit_test

[FE PR Coverage Check]
:heart_eyes: pass : 18 / 18 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/operator/logical/LogicalJoinOperator.java
2
2
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/rule/transformation/PruneProjectRule.java
5
5
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/rule/transformation/PruneProjectColumnsRule.java
6
6
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/operator/logical/LogicalOperator.java
5
5
100.00%
[]

run starrocks_admit_test

run starrocks_admit_test

run starrocks_admit_test

@Mergifyio backport branch-2.5


Support webpack 3.x

@jafl We already support https://github.com/webpack-contrib/npm-install-webpack-plugin/blob/master/package.json#L54

Do devDependenices meet peerDependencies? I'm running into the same warning and that is probably the issue.

@evilebottnawi Was looking into this some more as I'm still having the same issue. I still have the older package.json from before #L54. Even uninstalling and reinstalling didn't update it.
Tried a npm cache clean --force, deleted node_modules, and re-installed. Still shows the old peerdependecy list. Could it be that the version wasn't bumped after this change?

@greggb oh yep, your right (https://registry.npmjs.org/ericclemmons/-/npm-install-webpack-plugin-4.0.4.tgz), need path release.
@ericclemmons friendly ping

I haven't done a release since moving this repo to webpack-contrib, but give v4.0.5 a shot!

Worked great, thanks for the quick help.

I had this in draft for other changes in master since the previous release:

Added a quiet option - enabling it will silence npm install output.
Check if modules are resolvable from the current working directory instead of checking dependencies and devDependencies in package.json .

package.json is now optional - the plugin will no longer create it if it doesn't exist.
If package.json exists, the plugin will --save newly-installed dependencies to it as usual.

Allow Webpack to attempt to resolve loaders first, as module.resolveLoaders configuration may enable resolving of loaders which aren't resolvable from the current working directory.
Added support for Babel presets specified as a [preset, options] array.
Added compatibility for Webpack 2 creating resolvers later in the process.


Generating a method summary

Not really an issue - more of a support question. How does one generate a method summary for each class as they have done here:
http://www.lightstreamer.com/docs/client_javascript_uni_api/LightstreamerClient.html
It shows a method summary section followed by a method detail section (which I can already do).
They also have a proper index:
http://www.lightstreamer.com/docs/client_javascript_uni_api/index-all.html
How do I generate that? I cannot find anything relevant in the documentation.

Any update about that? It's pretty painful to use a library documentation without a method summary...

@maelcaldas You can try the preview version of the Baseline template, which includes method summaries.

I tried using jsdoc-baseline but in my case it just seemed to hang forever without putting any content at all in the target folder :(
Difficult to tell why because it didn't produce any errors either.

@kpturner Please file a bug against Baseline. Before you do that, can you try running JSDoc (and Baseline) with the --debug option? That should give you an idea where the process is hanging.

The problem appears to be with the generation of the page that shows the source of the JS file.  One or two of the files are very large.   If I omit the largest one it does eventually finish (500 seconds).  If I click on any of the source links it also takes quite a while to render.
I wanted to try generating without the source links like this:
"sourceFiles": {
// Set to true to generate pretty-printed HTML versions of the source files, and to link to
// the pretty-printed files from the documentation. Set to false to omit the pretty-printed
// source files and the links to these files.
"generate": false,
// Set to true to include a single link to the source file in the documentation, near the
// top of the page. Set to false to include a source-file link with each symbol in the
// documentation.
"singleLink": false
}
but that made no difference at all. It still generated the source links etc.  I must be misunderstanding this section of the config.
As an aside, I cannot understand the description of "singleLink" at all.  What is the effect of this option?


Unnecessary message types in memory interface

The memory interface should only define read and write commands.  Information about uncached / prefetch is only relevant as part of the return type and therefore should be part of the payload, not the main message.
https://github.com/black-parrot/pre-alpha-release/blob/master/bp_me/src/include/v/bp_me_cce_mem_if.vh#L22
Another advantage is that lets peripherals be a little bit leaner by defining smaller payloads

I'm not convinced we want it to be that restrictive. At a minimum I think we want read, write, prefetch, and an uncached bit to be visible to the memory-side controllers (i.e., not hidden in the payload). For example, if the CCE connects to an L2, the L2 may be able to read only a subset of a cache block (saving power, and maybe cycles) for an uncached request (this also depends on what we mean by uncached; our current design has the L2 being a victim cache on the memory-side, so we can imagine an uncached access from a CPU being served from the L2). Additionally, a prefetch could be ignored by the L2 (with the L2 simply responding immediately to the CCE and not prefetching the block) if, for example, the current load on the L2 or memory controller is high, where adding additional commands may further congest the networks or delay non-prefetch (required) accesses.
Further, it is likely (from a research standpoint) that we may want to support custom message types / commands that are visible to the memory controllers (i.e., not hidden in the payload). The memory controller could then issue simple read/write style commands, but it might be useful for it to accept more complicated commands and then implement their functionality.

You've convinced me on the prefetch bit, but I think the uncached bit is confusing as currently implemented.  It currently indicates uncached in L1, but it is sent to L2 / I/O devices.  It's caused bugs where I/O devices send back uncached responses to cached requests (when it should be perfectly valid to cache I/O in some cases).
I think maybe what would solve my confusion is to have the uncached-in-L1 bit live in the payload, but the uncached-in-L2 bit live in the message type.

the L2 may be able to read only a subset of a cache block (saving power, and maybe cycles) for an uncached request
I think this is solved by the size field

Further, it is likely (from a research standpoint) that we may want to support custom message types / commands that are visible to the memory controllers (i.e., not hidden in the payload).
There's no reason a "researchy" device couldn't inspect the payload. I think it makes sense to hide it by default unless supported.

Nit: do we need the speculative bit in the payload, if it's a prefetch request shouldn't it return a prefetch response?

I think maybe what I'm proposing here is to differentiate between features needed to adhere to this interface and features which are simply used for optimization.
In my mind, a device need only :

implement reads and writes, uncached (in L2) reads and uncached (in L2)
Forward back all other fields

In this way, all of the message metadata is in the payload (uncached in L1, speculative, etc.).  Whether to inspect it is up to the device receiving the message.
Otherwise, we incur a code burden of needing to implement checks for message types which we don't support in a device (uncached in bsg_cache, etc.) and also need to add new behavior to adapters / clients / etc. every time we add a new message which may be used only in a single device (especially researchy messages)

I think we are converging. L2 (or really, memory beyond CCE) operations should be:

Load / read
Store / write
Uncached load / uncached read
Uncached store / uncached write
Prefetch block

uncached means uncached in L2 or memory level beyond CCE

All requests have a size field, which can be 1 to 64+ bytes by power of 2. Address must be aligned to request size. Messages also have a payload field that is passed blindly between hierarchy levels and used only by the CCE. Payload will include things like what LCE requested the operation, if the access was speculative by the CCE, if the access was cached/uncached by the LCE, possibly a custom message field for use by CCE or research devices, etc.

closed by merge #453


Gmail: authentication error message

Describe the bug
Gmail account seems to work, but error message remains (authentication problems, try to login)
To Reproduce
Log into Gmail account in Ferdi Gmail service
Red error message on top remains
Screenshots
If applicable, add screenshots to help explain your problem.

Closing in favor of https://github.com/getferdi/ferdi/issues/264


BotFrameworkHttpClient: Change null check on 'appId' to StringIsNullOrEmpty

Issue
The Microsoft.Bot.Builder.Integration.AspNet.Core.BotFrameworkHttpClient GetAppCredentialsAsync method checks the appId argument for null; but a string.IsNullOrEmpty(appId) would be better. Or have it throw an exception when it is an empty (or whitespace) string value.
Version
Microsoft.Bot.Builder.Integration.AspNet.Core, Version=<IP_ADDRESS> (Runtime: v4.0.30319)
Describe the bug
For example, I had this value (appId) fetched from configuration, which produced an empty string as value (""). That in it's turn produced the exception that the clientSecret was null or empty; which is very confusing.
Screenshots

[bug]

Thanks @wizX20. @carlosscastro Can you take a quick look? This seems a reasonable change, and would let us give a better error message. Seems like an R9 change.

Thanks @WizX20. This sounds like a good idea. I'll not only check this but all other public methods in this surface to make sure we are consistent with our validations.

@carlosscastro, are you able to drive this to closure, or would you like help? @mrivera-ms will volunteer to help if you need it. :)


Android platform does not work well

This react-native-actionsheet does not work on android platform

Do you speak Chinese?

看下你的项目的 package.json

我知道原因了！没更新react-native

嗯


Improve error message when trying to instantiate a script with _init(...)

Fixes godotengine/godot-proposals#8488

See also:

https://github.com/godotengine/godot/pull/76632

Is it possible, and could it be nice to explicitly state how many parameters are required?

Is possible. But doesn't help in the context of the proposal since no parameters can be passed. But yeah the error contains the expected amount of args so adding it to the message is possible.

I'd say that #76632 is more comprehensive as it also adds error information (ignore the accidental inclusion of unrelated code by the OP of that PR, hopefully that'll get fixer or a new branch made)

Also this solution prints this message when creating an instance with too few arguments yet not none, as it is called in other situations as well, not just resource initialization, so I think the other PR is better for this

Adding the call error is definitely right. (I could probably include the changes into this PR to resolve the rebase mess up). I am just curious whether it is helpful in the context of https://github.com/godotengine/godot-proposals/issues/8488. Or if we need to extend the error message to be helpful in that context. I'll have a look at the specific message.

Closing in favor of #76632


mongo-test-utils: Add the ability to get randomized db / col names from real namespace

For the Billing Test on App, we need to add default data to the db i.e. billing tiers and cost information which is a write method we don't want to expose on our data api. Because we randomize db and column names, i need some testing utils that allow me to access the collection from the app.
This change allows me to do so by just storing the mapping from original db / col names <> randomized names, and creating a function that returns the randomized collection name from the original. With the knowledge of the randomized name. I can access the collection from the APP to do the setup i require.
I tested this via APP to get the billing tiers collection, and running the setup correctly.

Yeah, I wasn't sure if this was the best way of doing it but i wasn't sure how else to do this.
Yes seeding the data would be the best way of doing this. I wasn't sure if we have a way of doing this right now as I couldn't see an example of APP, how would you suggest going about this?
I agree that the data should be able to use the collection without knowing the details, but how is this currently possible? On our data api we only expose I/O functions to the DB & Collections, and we don't expose the actual collections. My issue is that I don't want to expose functions to 1. create seed data (because that shouldn't be exposed in APP) 2. test the write methods because that requires functionality that we don't actually need in APP.

You can also always access the DB/Coll name via exported pointers that will be updated to the randomization.

How do we do this now? I thought my change was allowing for that.

So for example, we do mongoutils.MustRegisterNamespace(&DBName, &someCollName). In this case, anything that refers to those strings after that call will have the randomized dbname and coll name. In this case, DBName is exported and accessible, but coll is not (but could be)

@edaniels Ah okay exposing this names worked thank you! I didn't realise that the local collection names would be updated  to the randomized name space. Thank you! Will close this.


Will Samsung devices loose their warranty?

Hello, I wanted to ask if Samsung devices will loose their warranty by installing any GSIs?
Because unlocking the bootloader will not trip the knox counter on devices like the Galaxy S23U.
Thanks in advance.

That's a good question, in one of my videos comments, a person said that it won't trip, but i cannot give you any trust if  this behavior really happens.
I think it should trip, since it likely to trigger AVB, but i cannot test to give you a concrete answer, i own only one Samsung device in which the Knox is already tripped.
I'll let this issue open, if someone want to give it a try, keep in mind to just test it if you don't mind tripping Knox.

Yes, because you have to replace vbmeta which makes Knox 0x1 in order to boot gsi.


Profile Page: Cancel button not working for Public Profile Toggle

On my Profile page (that link will take you to your own profile page on the server if you are logged in), if I change the toggle for Public Profile and click cancel, it acts as if it saves it instead of cancelling.
So, if someone were to toggle their public profile either on or off and change their mind by clicking the cancel button, it doesn't cancel it.

Sounds like a state bug.  Maybe someone can track this down.


请问有没有考虑再将深度信息融合呢？

将图像分割与边界检测相融合，两个分支能够促进，如果再将图像的深度值作为一个分支，让感知有了3d信息，效果会不会更好?

Good idea. You can have a try.
However, monocular depth estimation is not reliable and it should be considered.

好的，谢谢


Improve testing and always grab artifacts

Testing was a bit basic and not providing the artifacts to double check everything needed.
closes #5 but its not possible it seems to use a branch based ref for version of the marketplace action - so restricted to treating itself as a repo for now

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


Profile is missing from general settings

When you go bottom left > All settings > Profile you will notice it's not there:

The settings page for profile is currently under development.

The settings page for profile is currently under development and therefore currently disabled

Its in our backlog to do before release, so closing for now as known


pipenv update fails (given PIPENV_PIPFILE is not found)

Issue description
In a project where Pipfiles are not under current working directory, pipenv update fails.
In contrast, pipenv sync works well (if foo already contains a Pipfile.lock file). So the problem happens when trying to create Pipfile.lock.
 + foo
    - Pipfile

set PIPENV_PIPFILE=foo\Pipfile
pipenv update --verbose

Expected result
I expect pipenv to create Pipfile.lock under foo directory.
Actual result
λ pipenv update --verbose
Running $ pipenv lock then $ pipenv sync.
Locking [dev-packages] dependencies…
Locking Failed!
Traceback (most recent call last):
  File "c:/python37/lib/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "c:/python37/lib/site-packages/pipenv/resolver.py", line 119, in main
    parsed.requirements_dir, parsed.packages)
  File "c:/python37/lib/site-packages/pipenv/resolver.py", line 72, in _main
    from pipenv.core import project
  File "c:\python37\lib\site-packages\pipenv\core.py", line 22, in <module>
    from .project import Project, SourceNotFound
  File "c:\python37\lib\site-packages\pipenv\project.py", line 110, in <module>
    raise RuntimeError("Given PIPENV_PIPFILE is not found!")
RuntimeError: Given PIPENV_PIPFILE is not found!
File "c:/python37/lib/site-packages/pipenv/resolver.py", line 126, in <module>
    main()
  File "c:/python37/lib/site-packages/pipenv/resolver.py", line 119, in main
    parsed.requirements_dir, parsed.packages)
  File "c:/python37/lib/site-packages/pipenv/resolver.py", line 72, in _main
    from pipenv.core import project
  File "c:\python37\lib\site-packages\pipenv\core.py", line 22, in <module>
    from .project import Project, SourceNotFound
  File "c:\python37\lib\site-packages\pipenv\project.py", line 110, in <module>
    raise RuntimeError("Given PIPENV_PIPFILE is not found!")
RuntimeError: Given PIPENV_PIPFILE is not found!

Remarks
If I set PIPENV_SKIP_LOCK and then execute:

pipenv install

Then there is no problem. Which confirms that the problem is somehow that pipenv fails to create Pipfile.lock when PIPENV_PIPFILE is not on the working directory.

@ipiqueras Thanks for the reported, a PR is sent.


H61A0 flashes a bright every so often

Govee Device SKU
H61A0
Govee2MQTT Version
17.0.2
Describe the issue
H61A0 lights are recognized and can be controlled fine, but every minute or so it blinks a bright flash for a fraction of a second,
Startup Diagnostics
Error shown is like this...
[2024-01-10T19:23:13 ERROR govee::service::iot] Decoding IoT Packet: govee::service::iot::start_iot_client::{{closure}}::{{closure}}::Packet op.command[0]: packet must contain 20 bytes, have 4 at line 1 column 274. Input: {"proType":2,"sku":"H61A0","device":"56:DC:D4:AD:FC:1C:6A:92","softVersion":"2.07.01","wifiSoftVersion":"2.05.08","wifiHardVersion":"1.02.00","cmd":"ptIotOp","type":2,"transaction":"u_1704914593781","pactType":2,"pactCode":1,"state":{"result":1},"op":{"command":["6gEB6g=="]}} {"proType":2,"sku":"H61A0","device":"56:DC:D4:AD:FC:1C:6A:92","softVersion":"2.07.01","wifiSoftVersion":"2.05.08","wifiHardVersion":"1.02.00","cmd":"ptIotOp","type":2,"transaction":"u_1704914593781","pactType":2,"pactCode":1,"state":{"result":1},"op":{"command":["6gEB6g=="]}}
Not entirely sure what this all means though?
Additional Logs
No response
Home Assistant Logs
No response
Anything else?
No response

I have a couple of govee devices that do this intermittently, and have done so for months before I even thought of building this addon: I think they're just bad and/or failing. The quality of the hardware isn't the best.  I've had one floor lamp completely burn out its controller, my glide lights will occasionally start to flicker intermittently, and I have another floor lamp whose top segment sometimes flickers.  That's 3 out of 11 devices with some kind of hardware quality issue.

The error in the logs you shared is harmless and unrelated to the symptoms you described, but I'll do something to account for it and make it go away in a later release.

Really? Sorry to hear that, all my devices have been working great since I
bought them, which was well over a year ago, could be the law of averages
though, and I finally got one device that's gonna shit the bed.
I was using govee lan control before and had never had an issue, I'll maybe
need to check the strip itself then, thanks
On Wed, 10 Jan 2024, 21:22 Wez Furlong, @.***> wrote:

I have a couple of govee devices that do this intermittently, and have
done so for months before I even thought of building this addon: I think
they're just bad and/or failing. The quality of the hardware isn't the
best. I've had one floor lamp completely burn out its controller, my glide
lights will occasionally start to flicker intermittently, and I have
another floor lamp whose top segment sometimes flickers. That's 3 out of 11
devices with some kind of hardware quality issue.
—
Reply to this email directly, view it on GitHub
https://github.com/wez/govee2mqtt/issues/45#issuecomment-1885754194, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AXMRPBOM23TX3KTV2ZEHBOTYN4BADAVCNFSM6AAAAABBVKIHWCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBVG42TIMJZGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

I'm going to close this because it isn't related to this software.

That's cool, I've actually not had an issue since, thanks for my life
easier though, all the best for 2024 wez
On Sat, 13 Jan 2024, 03:08 Wez Furlong, @.***> wrote:

Closed #45 https://github.com/wez/govee2mqtt/issues/45 as completed.
—
Reply to this email directly, view it on GitHub
https://github.com/wez/govee2mqtt/issues/45#event-11476001660, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AXMRPBKZKKHPYN5TFVV55E3YOH3DPAVCNFSM6AAAAABBVKIHWCVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJRGQ3TMMBQGE3DMMA
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hey ho,
I got the same problem with my Glide Hexa Panels (H6061). When turned off, they turn on for ~100ms. I removed and added the panels again to the govee app, which worked for someone and for me for one evening. On the next day it was flickering again.
As @wez mentioned it's probably not an issue with the govee2mqtt addon but with the "old" "Govee LAN Control" integration it never happened. So i rolled back and the flickering dissappeared again but I want to use the effects of my lamps within Home Assistant and is far as i found out it's not possible with the lan integration :/


Implement UIMenu "copy" actions for media items/cells

Currently, the library ignores the copy action for media cells.
Media items and data to copy to clipboard:

[x] JSQPhotoMediaItem — copy the photo (done in #1447)
[x] JSQLocationMediaItem — copy the location coordinates? copy the address (requires reverse-geocoding)? copy map link (done in #1447)
[ ] JSQVideoMediaItem — copy the URL? copy the video

Any feedback is welcome here!

Remaining TODOs:

See progress from PR #1447
Once JSQVideoMediaItem is implemented, let's make all protocol methods non-optional

I gave this one a try. First real open-source contribution, plus some ok-ish tests. Still scratching my head on video, it'll copy, but shows up as a generic file instead of a video. I left out support for it at the moment.

ignoring the need to implement copy, is the pathway to a custom action on a media bubble available at this point in time?

For what it is worth, i augmented JSQMessagesViewController.m to not ignore the menu, and then trapped the copy selector to remove it from the popup menu.. good to go.

@wdcurry - see https://github.com/jessesquires/JSQMessagesViewController/releases/tag/7.1.0

Hello everyone!
I'm sorry to inform the community that I'm officially deprecating this project. 😢 Please read my blog post for details:
http://www.jessesquires.com/blog/officially-deprecating-jsqmessagesviewcontroller/
Thus, I'm closing all issues and pull requests and making the necessary updates to formally deprecate the library. I'm sorry if this is unexpected or disappointing. Please know that this was an extremely difficult decision to make. I'd like to thank everyone here for contributing and making this project so great. It was a fun 4 years. 😊
Thanks for understanding,
— jsq


Add payouts api

The sample app doesn't have the payouts API. Have added the create, fetch all and fetch by ID for the payouts endpoint.
Do not Merge until the payouts API has been added

Closing this ticket since I modified other files to fix the linting issue. Have raised a new ticket here https://github.com/circlefin/payments-sample-app/pull/56


Adjust errors thrown from FileManager's copyItem function

Due to an incorrect check of the lstat return value, the copy item functions can return incorrect errors when the source file/directory does not exist. This corrects that logic to ensure the appropriate error codes are thrown (and match the error codes in the old ObjC implementation)

@swift-ci please test


Define summary and plot methods for objects of class provoc.

This must come after #2.
mymodel <- provoc(...)
summary(mymodel)
plot(mymodel)

Should produce meaningful outputs, similar to summary.glm() and plot.glm().
Note that, in R, defining a function named summary.provoc is enough to make it a summary method for objects of class provoc. R has awful naming conventions - try to avoid . in object names.

Not fully finished, but progress will be made as other issues are closed.


Page asset path

Greetings,
I added a new tag that allows referring to page's asset path from contexts other than page itself, referring to it by page id. I use this on http://koti.kapsi.fi/oturpe/projects/ to fetch cover image of each page for page listing. Do you think this would be a useful complement to asset_path tag?

Hey @oturpe, thanks for the PR.
I think it might be nicer to either:
a) Make the post ID an additional, optional argument on the same tag, i.e. {% asset_path document.pdf /2012/05/25/another-post-title %}.
or b) just release this yourself as a separate Jekyll tag
WDYT?

Hi Sam!
I agree that having two separate tags is somewhat complex solution for the small amount of functionality we are discussing here. The reason for such choice was to avoid changing the semantics of asset_path itself in any way. But in case you do not think it matters if there is some small change, I can go with your suggestion A. I suppose the main difference would be that
{% asset_path filename with space.ext %}

will not resolve as it used to - instead it would have to be
{% asset_path "filename with space.ext" %}

So: first quoted string is the asset file name. If there are no quotes it is the part preceding the first whitespace. If non-whitespace string follows, it is the post id.
Does this sound ok to you?
Otto

That is another good way of doing it. I think we have a mutual understanding how it should work. I will work on it when I have time (which might take some time) and get back to you when I get something ready.

Hello again,
I finally found some time to look into this. See commit a4e41cb comment and contents to see what was done. What do you think?

Here you go

Thanks @oturpe!


Pulling latest changes from master fork

What did you implement

Closes #XXXXX
How can we verify it

Todos

Useful Scripts

npm run test:ci --> Run all validation checks on proposed changes
npm run lint:updated --> Lint all the updated files
npm run lint:fix --> Automatically fix lint problems (if possible)
npm run prettier-check:updated --> Check if updated files adhere to Prettier config
npm run prettify:updated --> Prettify all the updated files

[ ] Write and run all tests
[ ] Write documentation
[ ] Enable "Allow edits from maintainers" for this PR
[ ] Update the messages below

Is this ready for review?: NO
Is it a breaking change?: NO

Updating my fork


Updated with latest template. Dropped 3.6 support and added Docker-based development

Type: trivial
@tomage updating with the latest template so that we can have docker-based development and more contributors!

I veried this works on a few Macs and on Linux


Rendering page as PNG or PDF

I think one of the advantage of using QT Webkit is that it can render the current page as a PNG or PDF. A while ago I forked the project and added a "render" method to the driver that does just that (https://github.com/nicholaides/capybara-webkit/commit/eabc7b20b77e09cafb04c7e8c4a3d1ec59850bc5). I pretty much swiped it from the Phantom.js project.
Would this be an appropriate addition to capybara-webkit? If so, what sort of tests would be necessary?
If not, does anyone have any ideas how another module or gem could be made that adds this functionality, yet takes advantage of the code in this project?

@pusewicz I get that error as well. Did you ever find a fix?

@dbalatero No, sorry.


No way to test ISP from outside US...

Testing the skill in the developer console from the UK does not work as it calls
apiEndpoint: 'https://api.eu.amazonalexa.com' instead of 'https://api.amazonalexa.com'
for all US skills. The api endpoint does not change when you change the language of the device.

Right now it's only available in the US but they plan to expand it soon. Here's the link, I think it will be updated as soon as they expand the countries.
https://developer.amazon.com/docs/in-skill-purchase/isp-faqs.html
(ctrl + F countries to get to the relevant question fast)


Blog post on llama-2

@xmnlab

@Satarupa22-SD it seems you will need to rebase your branch

@Satarupa22-SD ping me if you need  any help for rebasing your branch on top of the upstream main

@Satarupa22-SD thanks for working on that. this blog post looks really good!


Optimization for user.GetRepositoryAccesses to reduce db query times

Too many database queries on this method. This will reduce many of them.

Since you're the Xorm guru: trusted LGTM

Trusted LGTM

L-G-T-M


Export _INF publicly

Hi,
For my Django exporter I need to import _INF from prometheus_client because I build my own buckets (powers of 2, powers of 10) and I need _INF at the end.
Could you expose it publicly in the API (in init.py ideally, since it was moved in 0.0.10)?

Hmm, I can see the use but it doesn't feel quite right to have this as part of the main public API. I can also see myself reorganising the internals a bit more to tighten things up a bit and this getting in the way.
Are you aware that if you don't put Inf as the last bucket that the client will do it for you?

And if the client forgets to add it, the server will do it for you. :)
The inf bucket is essentially redundant (same value as ..._count).

Oh, this changes everything :) Thanks!


Cross Region Detection - IVS Intrusion not working

Not getting any responses to Cross Region Detection. I've reinstalled and cross line alarm works but not cross region.
I've added the log entry into configurations.yaml but when checking the side bar logs I don't see any entries, assume I'm looking in the wrong place for the logs.

When you added the integration, did you select CrossRegionDetection in the event list?

yes, that and Cross Line alarm which works fine.

Not working across 3 cameras and def. configured in the camera settings for all 3

Got it, thanks. I'm going to set this up on one of my cameras and debug the issue -- those screenshots help a lot. I'll do that later today and report back.

I can't get CrossRegionDetection to fire at all in the camera. I can only make it fire VideoMotion and SmartMotionHuman events. The event data contains more details like the region, etc. Those events are fired on the Home Assistant event bus and you can use that for automations if you like.  The question I have is, how do we make CrossRegionDetection events fire with Dahua cameras? I tried combinations of IVS, motion enabled, smart motion, etc.
Code=VideoMotionInfo;action=State;index=0

Code=VideoMotion;action=Start;index=0;data={
   "Id" : [ 0 ],
   "RegionName" : [ "Region1" ],
   "SmartMotionEnable" : true
}

Code=SmartMotionHuman;action=Start;index=0;data={
   "RegionName" : [ "Region1" ],
   "WindowId" : [ 0 ],
   "object" : [
      {
         "HumamID" : 8,
         "Rect" : [ 3632, 3184, 4816, 8144 ]
      }
   ]
}

Code=SmartMotionHuman;action=Stop;index=0;data={
   "RegionName" : [ "Region1" ],
   "WindowId" : [ 0 ],
   "object" : [
      {
         "HumamID" : 8,
         "Rect" : [ 3824, 3696, 4728, 8096 ]
      }
   ]
}

Code=VideoMotion;action=Stop;index=0;data={
   "Id" : [ 0 ],
   "RegionName" : [ "Region1" ],
   "SmartMotionEnable" : true
}

I checked my IVS cross region detection was working correctly from the camera's perspective when using IE and the "live" section was flashing when it was hit.
I used this attached code in a container that was able to send an HTTP request for CRD, not sure if it helps. HA is so much easier to work with as getting this code to scale to 5 cameras was beyond me
dahua-ivskitchen.zip
If CRD doesn't work it's not an issue as IVS via Cross line Detection is just as good.

OK awesome. I wasn't able to make any progress on this because I couldn't find any way to trigger CRD with my cameras.
I'll keep an eye open and reopen this if I find a way. Sorry I don't have a better answer but glad you have a solution.


[Bug] Refresh 42 API Token seems to failed under certains circumstances

42 API token seems to fail to refresh.
I used oauth go package, and it seemed to automatically refresh token if request failed on 401 unauthorized.
But it's not working, maybe oauth package needs more information to be able to refresh automatically.
If it doesn't work, I could refresh 42 API token manually, and if it still doesn't work, I'll remove 42 API token refresh and only 42 Tutor API token.

Currently, there is a refresh inception, myAPI pings authAPI (with accessToken stored internally):

if success, accessToken from authAPI is not expired, and everything works as expected, myAPI refresh accessToken from myAPI;
if fail, accessToken from authAPI is expired, and myAPI fail to refresh that token with authAPI.

A workaround could be to avoid refreshing myAPI token with authAPI token.
It is not really useful at this step (login already enforces user information retrieving).


Support 2D-only OME-Zarrs?

We save our 2D OME-Zarrs as (z, y, x) images with (1, size_y, size_x). Some other OME-Zarrs (e.g. the ones generated by the faim-hcs OME-Zarr converter) can be (x,y) only, i.e. (size_y, size_x).
This then leads to issues in our processing, for example the following error in cellpose. The problem here is a mismatch between ROI dimensions (ROIs always being z, y, x) and image dimensions.
2023-06-07 13:03:23,100; INFO; START cellpose_segmentation task
2023-06-07 13:03:23,100; INFO; zarrurl='/Users/joel/Desktop/20230607_MD_Maurice_test2/Plate.zarr/C/3/0'
2023-06-07 13:03:23,217; INFO; data_zyx.shape=(3072, 3072)
2023-06-07 13:03:23,242; INFO; ROI table at /Users/joel/Desktop/20230607_MD_Maurice_test2/Plate.zarr/C/3/0/tables/well_ROI_table has attrs: <zarr.attrs.Attributes object at 0x29e828580>
2023-06-07 13:03:23,242; INFO; ROI table at /Users/joel/Desktop/20230607_MD_Maurice_test2/Plate.zarr/C/3/0/tables/well_ROI_table cannot be used for masked loading. Set use_masks=False.
2023-06-07 13:03:23,242; INFO; use_masks=False
2023-06-07 13:03:23,242; INFO; reset_origin=True
2023-06-07 13:03:23,243; INFO; pxl_zyx=[1.0, 0.6834, 0.6834]
2023-06-07 13:03:23,243; INFO; new_labels=['organoids']
2023-06-07 13:03:23,243; INFO; existing_labels=[]
2023-06-07 13:03:23,251; INFO; Output label path: /Users/joel/Desktop/20230607_MD_Maurice_test2/Plate.zarr/C/3/0/labels/organoids/0
2023-06-07 13:03:23,261; INFO; mask will have shape (3072, 3072) and chunks ((2048, 1024), (2048, 1024))
2023-06-07 13:03:23,263; INFO; TORCH CUDA version not installed/working.
2023-06-07 13:03:23,265; INFO; >> cyto2 << model set to be used
2023-06-07 13:03:23,265; INFO; >>>> using CPU
2023-06-07 13:03:23,265; INFO; WARNING: MKL version on torch not working/installed - CPU version will be slightly slower.
2023-06-07 13:03:23,265; INFO; see https://pytorch.org/docs/stable/backends.html?highlight=mkl
2023-06-07 13:03:23,369; INFO; >>>> model diam_mean =  30.000 (ROIs rescaled to this size during training)
2023-06-07 13:03:23,369; INFO; Start cellpose_segmentation task for /Users/joel/Desktop/20230607_MD_Maurice_test2/Plate.zarr/C/3/0
2023-06-07 13:03:23,369; INFO; relabeling: True
2023-06-07 13:03:23,369; INFO; do_3D: True
2023-06-07 13:03:23,369; INFO; use_gpu: False
2023-06-07 13:03:23,369; INFO; level: 1
2023-06-07 13:03:23,369; INFO; model_type: cyto2
2023-06-07 13:03:23,369; INFO; pretrained_model: None
2023-06-07 13:03:23,369; INFO; anisotropy: 1.4632718759145449
2023-06-07 13:03:23,369; INFO; Total well shape/chunks:
2023-06-07 13:03:23,369; INFO; (3072, 3072)
2023-06-07 13:03:23,369; INFO; ((2048, 1024), (2048, 1024))
2023-06-07 13:03:23,369; INFO; Now starting loop over 1 ROIs
2023-06-07 13:03:23,369; INFO; Now processing ROI 1/1
Traceback (most recent call last):
  File "/Users/joel/Dropbox/Joel/FMI/Code/fractal/fractal-demos/examples/server/FRACTAL_TASKS_DIR/.fractal/fractal-tasks-core0.9.4/venv/lib/python3.9/site-packages/fractal_tasks_core/cellpose_segmentation.py", line 699, in <module>
    run_fractal_task(
  File "/Users/joel/Dropbox/Joel/FMI/Code/fractal/fractal-demos/examples/server/FRACTAL_TASKS_DIR/.fractal/fractal-tasks-core0.9.4/venv/lib/python3.9/site-packages/fractal_tasks_core/_utils.py", line 91, in run_fractal_task
    metadata_update = task_function(**task_args.dict(exclude_unset=True))
  File "/Users/joel/Dropbox/Joel/FMI/Code/fractal/fractal-demos/examples/server/FRACTAL_TASKS_DIR/.fractal/fractal-tasks-core0.9.4/venv/lib/python3.9/site-packages/fractal_tasks_core/cellpose_segmentation.py", line 516, in cellpose_segmentation
    img_np = np.expand_dims(data_zyx[region].compute(), axis=0)
  File "/Users/joel/Dropbox/Joel/FMI/Code/fractal/fractal-demos/examples/server/FRACTAL_TASKS_DIR/.fractal/fractal-tasks-core0.9.4/venv/lib/python3.9/site-packages/dask/array/core.py", line 1978, in __getitem__
    index2 = normalize_index(index, self.shape)
  File "/Users/joel/Dropbox/Joel/FMI/Code/fractal/fractal-demos/examples/server/FRACTAL_TASKS_DIR/.fractal/fractal-tasks-core0.9.4/venv/lib/python3.9/site-packages/dask/array/slicing.py", line 904, in normalize_index
    raise IndexError("Too many indices for array")
IndexError: Too many indices for array

TODO: Figure out whether we can support 2D OME-Zarr images

by adapting the loading to support that?
by adapting our ROI tables for 2D images?

I'd prefer 1, but need to evaluate

How would one of the 2D-only input OME-Zarrs that we'd like to support look like? Would it be fully CYX like the one below?
I'm trying to write a test with this kind of input, but I'm not sure this was your intended goal @jluethi, nor I'm sure that https://github.com/fractal-analytics-platform/fractal-tasks-core/pull/403 is enough (I'm still reviewing..).

I'm still not convinced that #403 would not work for this kind of OME-Zarr input. In fact it may be that it does, by accident, by interpreting the C dimension as a Z dimension - when parsing the ZYX pixel sizes (via extract_zyx_pixel_sizes). But this only works if the scale transformation has value 1 for both the C and Z axis (which is always the case for us, but not necessarily true).

With https://github.com/fractal-analytics-platform/fractal-tasks-core/commit/bad56c4cbe82177f392dd6bc9a1f389963f47f3c, I added a test that runs the Cellpose task on a true CZY OME-Zarr array. The test actually passes, and it produces labels, but I think this is again not working correctly.
This is clear by looking at the logs
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:296 zarrurl='/tmp/pytest-of-tommaso/pytest-93/test_CYX_input0/tmp_out_mip/plate_mip.zarr/B/03/0'
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:364 data_zyx.shape=(540, 1280)
INFO     fractal_tasks_core.lib_regions_of_interest:lib_regions_of_interest.py:400 ROI table at /tmp/pytest-of-tommaso/pytest-93/test_CYX_input0/tmp_out_mip/plate_mip.zarr/B/03/0/tables/FOV_ROI_table has attrs: {'encoding-type': 'anndata', 'encoding-version': '0.1.0'}
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:378 ROI table at /tmp/pytest-of-tommaso/pytest-93/test_CYX_input0/tmp_out_mip/plate_mip.zarr/B/03/0/tables/FOV_ROI_table cannot be used for masked loading. Set use_masks=False.
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:383 use_masks=False
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:389 full_res_pxl_sizes_zyx=[1.0, 0.1625, 0.1625]
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:393 actual_res_pxl_sizes_zyx=[1.0, 0.65, 0.65]
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:400 reset_origin=True
INFO     fractal_tasks_core.lib_regions_of_interest:lib_regions_of_interest.py:226 full_res_pxl_sizes_zyx=[1.0, 0.1625, 0.1625]
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:471 new_labels=['label_DAPI']
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:472 existing_labels=[]
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:496 Output label path: /tmp/pytest-of-tommaso/pytest-93/test_CYX_input0/tmp_out_mip/plate_mip.zarr/B/03/0/labels/label_DAPI/0
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:517 mask will have shape (540, 1280) and chunks ((540,), (1280,))
test_workflows_cellpose_segmentation.py:161 patched_cellpose_core_use_gpu
    'WARNING: using patched_cellpose_core_use_gpu' (str) len=44
INFO     cellpose.models:models.py:338 >> cyto2 << model set to be used
INFO     cellpose.core:core.py:90 >>>> using CPU
INFO     cellpose.models:models.py:372 >>>> model diam_mean =  30.000 (ROIs rescaled to this size during training)
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:532 Start cellpose_segmentation task for /tmp/pytest-of-tommaso/pytest-93/test_CYX_input0/tmp_out_mip/plate_mip.zarr/B/03/0
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:533 relabeling: True
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:534 do_3D: False
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:535 use_gpu: False
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:536 level: 2
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:537 model_type: cyto2
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:538 pretrained_model: None
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:539 anisotropy: None
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:540 Total well shape/chunks:
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:541 (540, 1280)
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:542 ((540,), (1280,))
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:558 Now starting loop over 2 ROIs
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:567 Now processing ROI 1/2
INFO     cellpose_segmentation.py:test_workflows_cellpose_segmentation.py:119 [None][patched_segment_ROI] START
INFO     cellpose_segmentation.py:test_workflows_cellpose_segmentation.py:132 [None][patched_segment_ROI] END
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:636 ROI [0, 1, 0, 540, 0, 640], num_labels_roi=2, num_labels_tot=2
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:567 Now processing ROI 2/2
INFO     cellpose_segmentation.py:test_workflows_cellpose_segmentation.py:119 [None][patched_segment_ROI] START
INFO     cellpose_segmentation.py:test_workflows_cellpose_segmentation.py:132 [None][patched_segment_ROI] END
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:636 ROI [0, 1, 0, 540, 640, 1280], num_labels_roi=2, num_labels_tot=4
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:672 End cellpose_segmentation task for /tmp/pytest-of-tommaso/pytest-93/test_CYX_input0/tmp_out_mip/plate_mip.zarr/B/03/0, now building pyramids.
INFO     fractal_tasks_core.tasks.cellpose_segmentation:cellpose_segmentation.py:688 End building pyramids

where it's clear that the 1.0 which is the "pixel size" along the C axis is interpreted as the one along the Z axis.

Great overview of conclusions from the call, this should be the scope limit for merging it.

Would it be fully CYX like the one below?

Yes, the examples I have so far always are like this and I'm aiming for supporting CYX support, not YX support. Yes, that this works is somewhat accidental, we'll need to improve with #150 eventually.

We are currently always relying that the first axis is C, independently on what comes next. Because of this, we can simply fix a current issue with the labeling tasks (they produce wrong metadata, which has scale transformations with four elements) in a simple way: always strip away the first item, since labels do not have C axis.

If we include a check for the presence of a C axis in relevant library functions, then that should be save and show us where we'd need to continue when we get back to it.

[ ] Add a check that the first axis is c, in some relevant library function - which one(s)?

The new test_workflows_napari_workflows.py::test_napari_workflow_CYX (90c7528) applies two napari workflows (labeling and measurement) to a CYX OME-Zarr input. The final OME-Zarr

has three-dimensional (that is, CYX) metadata both for the image and for the labels
has three-dimensional (that is, CYX) structure of the zarr arrays (that is, in .zattrs)
renders correctly in napari.

That's great! 👏🏻

We are clearly not fixing https://github.com/fractal-analytics-platform/fractal-tasks-core/issues/150 here, but let's aim at a version where example 01 in fractal-demos does work.

I've not run example 01 in fractal-demos (as of https://github.com/fractal-analytics-platform/fractal-demos/pull/54/commits/1152116bcd6e1c20d2960915e892b1d3cef8e096), and it went through with no noticeable issues.

The 3D OME-Zarr is present, and can be viewed in napari
The 2D OME-Zarr is present, and can be viewed in napari (including its labels)
Both have CZYX axes, and in both cases the scale transformations have four items
The label image of the MIP OME-Zarr has ZYX axes and scale transformations with three items

That's great! Sounds like we're ready to merge this then.

I also ran example 01 locally now and all looks good to me there. I'll continue work to update the MD converter task for server 1.3.0 & tasks 0.10.0 compatibility and will test that afterwards, but would open new issues and a new PR if problems come up there.

What about MIP? Does it also rely on having three-items scale transformations? Let's review this.

When we have a CZYX OME-Zarr and we call copy_ome_zarr.py with project_to_2D=True, the output is a new (metadata-only) CZYX OME-Zarr, which simply has a dummy Z axis.
Both copy_ome_zarr.py and maximum_intensity_projection.py then use extract_zyx_pixel_sizes, which we patched so that it alwasy returns the last three elements of scale transformations as ZYX pixel sizes.
TL;DR Even if we don't have much flexibility, in the current (transitional..) state of fractal-tasks-core, I don't see any special issue with MIP in current workflows:

A Fractal-generated 3D zarr should always be a CZYX one;
An CYX existing OME-Zarr would be out-of-scope for the MIP task;
A ZYX existing OME-Zarr would be in-scope for the MIP task, but only as part of #150.

That's great! Sounds like we're ready to merge this then.

There's nothing left on my side re: #403.


Rate control misbehaving with SM_FIXEDSLCNUM_SLICE and uiSliceNum > 1

I'm getting weird results when I set uiSliceMode = SM_FIXEDSLCNUM_SLICE and uiSliceNum > 1.
With uiSliceNum = 1, things work as expected, but setting a higher number results in the control thinking the input fps is way higher than it is. Example:

[OpenH264] this = 0x0x7f747c000a80, Warning:Actual input fLatestFrameRate = 490.000000 is quite different from framerate in setting 24.000000, please check setting or timestamp unit (ms), cur_Ts =<PHONE_NUMBER>711 start_Ts =<PHONE_NUMBER>295
[OpenH264] this = 0x0x7f747c000a80, Warning:Actual input framerate 490.000000 is different from framerate in setting 24.000000, suggest to use other rate control modes

I verified the input frame rate was indeed 24fps, timestamps looked good.
This was tried with commit 6ba85394e0adfaaa506da900bc93e449e436fb26 and webrtc loopback test. See https://cs.chromium.org/chromium/src/third_party/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc?l=456 for info on how the parameters were set up.

@sprangerik Could you send the info trace to us? thanks!

Did a short test with ENCODER_OPTION_TRACE_LEVEL = WELS_LOG_DETAIL.
Is this what you wanted?
h264_rate_control_issue_trace.txt

thanks @sprangerik.
Could you set bEnableAdaptiveQuant as false to have a try?
I will continue to probe the issue with bEnableAdaptiveQuant = true.

Hi, with bEnableAdaptiveQuant = false I don't see these issues.
From the sound of it, I guess that's an option we don't want to touch in production code though, right?

Actually this option can be used in production. But from testing, in some cases, there is some issue on this option. so I prefer to turn off this on your side.  Or you can wait for a new commit that will turn off this option in openh264 internal, after tuning well, this option will be turned on.

if you still have question, please submit a new one freely. thanks!


DatePicker still render as wrong style on Safari

mui version: v0.15.0-alpha.2
Safari : Version 9.1 (106<IP_ADDRESS>)

Dupe of #3822.
Also, in order to help us help you, please use the issue template when opening an issue.


fix: maintain provider context in resources and datasources

We recently introduced equinix-sdk-go as a context-aware replacement SDK for packngo and also migrated some resources and datasources to use context-aware CRUD lifecycle methods.  In those parallel changes we missed some opportunities to pass the terraform provider context into the SDK.
This updates the provider to replace all non-testing usage of context.TODO() and  context.Background() with references to the pre-existing terraform provider context.
Relates to #539

There are some resources that have already been moved to internal that are still using context.Background(), shouldn't they be updated as well?

Uh...I don't know why those changes aren't here.  Yes, those should be updated.

Codecov Report
Attention: 6 lines in your changes are missing coverage. Please review.

Comparison is base (a2797d8) 63.11% compared to head (3788cb4) 55.49%.
 Consider uploading reports for the commit cd719c6 to get more accurate results

Files
Patch %
Lines

equinix/helpers_device.go
0.00%
3 Missing :warning:

equinix/data_source_metal_devices.go
66.66%
1 Missing :warning:

internal/datalist/schema.go
0.00%
1 Missing :warning:

...ternal/resources/metal/project_ssh_key/resource.go
75.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #581      +/-   ##
==========================================
- Coverage   63.11%   55.49%   -7.63%
==========================================
  Files          94       93       -1
  Lines       18250    18149     -101
==========================================
- Hits        11519    10072    -1447
- Misses       6299     7752    +1453
+ Partials      432      325     -107

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


fix CI warnings across several files

Fix logging format issues
Fix unused import
Fix use of double quotes

/gcbrun exp -n dk-5431 -m vertex_ai_gemini-1-5 -b comparison


Update deep linking guidance

Fixes #31884
cc: @BethMassi

Internal previews

📄 File
🔗 Preview link

aspnetcore/blazor/hybrid/routing.md
ASP.NET Core Blazor Hybrid routing and navigation

Done ... and given that you focused on "app linking," I placed that with "(deep linking)" in the section heading.


update to new opendbc api

depends on https://github.com/commaai/opendbc/pull/934
performance is twice as slow because of a few more data conversions. but it should be enough.
the results of running selfdrive/debug/check_can_parser_performance.py :
[updated]:
before:

125.61 mean ms, 130.85 max ms, 118.84 min ms, 2.78 std ms

after:

263.47 mean ms, 367.93 max ms, 258.64 min ms, 37.38 std ms

@deanlee this look good to you for the benchmark? https://github.com/commaai/openpilot/pull/32009/commits/b494b1442e51db25c7e8b6deffcae1149b3ea67b

@deanlee panda shouldn't be touched: https://github.com/commaai/openpilot/pull/32009/commits/17b76ca0cc66cf36d8db15835f2b1bfb13fc6436

trigger-jenkins

Seeing same CPU usage in card which is great!

Great to hear the CPU usage is the same! We can further reduce it later, like in pr https://github.com/commaai/opendbc/pull/1046

trigger-jenkins

trigger-jenkins


Clarity on txsub configurations

Added more clarity to how to use INGEST and STELLAR_CORE_URL on tx sub enabled instance.

Preview is available here:http://developers-pr274.previews.kube001.services.stellar-ops.com

I'd like to clarify that STELLAR_CORE_URL is not required for running a API-only instance (INGEST=false and DISABLE_TX_SUB=true)? The docs indicate that but I think the code still expects that STELLAR_CORE_URL be explicitly defined in that case.

was able to replicate that on master, filed new bug to get that fixed - https://github.com/stellar/go/issues/5124


 LangChain is quite a complex and heavy library, so it would be better to have a core crawl service and then add extra dependencies if needed, rather than binding them from the start.

@aravindkarnam Proceed, it totally make sense


add ability to set fan on

Description:
This adds the ability to turn the fan on on ecobee thermostats.  Also changed the "not on" status to auto since ecobee doesn't have an off status for the fan.
Pull request in home-assistant.github.io with documentation (if applicable): TODO
Example entry for configuration.yaml (if applicable):
ecobee:
  api_key: super_secret_api_key

Checklist:

[X] The code change is tested and works locally.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io TODO

If the code communicates with devices, web services, or third-party tools:

[X] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[X] New dependencies have been added to the REQUIREMENTS variable ([example][ex-requir]).
[X] New dependencies are only imported inside functions that use them ([example][ex-import]).
[X] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.

If the code does not interact with devices:

[X] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[X] Tests have been added to verify that the new code works.

I did a little more testing with this branch with some new automations, and I think there's a regression for climate.set_temperature. I've been trying to call it with like:
{
  "entity_id": "climate.home",
  "temperature": "70",
  "operation_mode": "cool"
}

When I check the ecobee app though, it's being set to 65°, instead of 70° (this is in farenheight). Unclear yet if it's a regression in this branch (doesn't seem since it doesn't touch that code), the updated pyecobee dependency, or some regression between 0.63.2 (what I was running before) and dev.
@uchagani have you seen this with climate.set_temperature?

I tested that against the latest dev, and got the same error, which suggests it's a regression between pyecobee 0.0.15 and 0.0.16.
Looking https://github.com/nkgilley/python-ecobee-api it doesn't seem to have a tag for 0.0.15, but it was bumped at https://github.com/nkgilley/python-ecobee-api/commit/85e311f6c94e6bb81e428e10d76676001af35d19#diff-2eeaed663bd0d25b7e608891384b7298 https://github.com/nkgilley/python-ecobee-api/compare/85e311f...0.0.16 looks like the diff in this version.

@technicalpickles I'll take a look at the regression.  The diff you mentioned is my doing so I probably did something when I was refactoring the request bodies.

Closing this PR to do more testing

@uchagani and I have talked a little bit about this over the past week. He fixed pythone-cobee-api over in https://github.com/nkgilley/python-ecobee-api/pull/32 and there's a 0.0.17 release with that fix.
I've tried latest add-ecobee-fan-mode branch, and confirmed it's working as expected 🎉
I am seeing one other oddity though, when using climate.set_fan_mode. Consider this script:
script:
  climate_its_ok_out:
    sequence:
      - service: climate.set_operation_mode
        entity_id: climate.home
        data:
          operation_mode: 'auto'
      - service: climate.ecobee_resume_program
        entity_id: climate.home
      - service: climate.set_fan_mode
        entity_id: climate.home
        data:
          fan_mode: auto

When this is called, it correct sets operation mode to auto, and resumes the program (although now I'm looking it, I probably only need the latter). However, the temperature remains what it is. If I call climate.set_fan_mode first, climate.ecobee_resume_program, it works as expected.
I think this has to do with a detail of ecobee's set_fan_mode, where their API doesn't distinguish between setting the temperature and setting the fan mode. That is, setting the fan mode requires you specify the temperature also. At the time that climate.set_fan_mode, it doesn't seem that the local ecobee data is refreshed at that point, so the temperature gets set as temperature homeassistant thinks it is, rather than what the ecobee remote API thinks it is.
There are a least a  few possible workarounds as a user. The first I mentioned, making sure to climate.set_fan_mode before changing the temperature to ensure the temperature is called later. Another might be to use a delay to try to wait until the local state has updated, but that is probably a race condition.
I'm not sure what else we can do on the backend. It might make sense to remove the ecobee.set_fan_mode method, and instead make set_temperature method in this branch take a keyword arg for the fan mode, and it passes it down to all of the the way to the python-ecobee-api call (set_temp_hold or set_auto_hold). That would involve more changes to this branch and python-ecobee-api and this branch though 😞

Asked about this #devs channel, and @balloob suggested:

you can pass blocking=True to the call service method to wait for it to finish
However, might still mean that the platform does not implement the service correctly.

@technicalpickles FYI the new PR for this functionality is #12732


Search looping fix yet again

Description
Turns out I was way overthinking this. We can get rid of the comparison on states completely if we only push the state when we actually have to. Wrapping it in an if (page) completely removes the need to compare states, thus removing the fuckery that is URL encoding.
The state is still encoded to prevent issues with ? and & etc., but there should now be a near 0 chance of looping happening.
Fixes #286
Type of change

[x] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Tried to break it
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have updated changelog.md with changes made

Oh and sqlite still errs on certain special chars, but that's a feature not a bug or something.
Just don't search for things with " in it

Just don't search for things with " in it

Your not the boss of me. 😝
Good work, i'll do some testing this afternoon and see if i can break it 😁


Find the autoload.php when  installed globally

:+1: about the feature,
:-1: about the implementation, I prefer something like that: https://github.com/sensiolabs/insight/blob/master/bin/insight#L14-L18

The implementation you proposed is not able to show a message if the composer dependency are not installed.

@mikeSimonson Just add another elseif block

:+1:

This PR needs rebase.

@lyrixx need also to fix the last comment of @stof

@mikeSimonson Did you close the PR by mistake?

No.
I realised that it's already merged in the codebase. (https://github.com/sensiolabs/melody/commit/e9415fc97f3c00dfb2453722de391ff8dbe8ba4c).
I just don't know why it doesn't show in the github ui.

Oups, I may have did a mistake.

@lyrixx Can you take into account the last change from @mikeSimonson ?
'/../../../autoload.php' => '/../../autoload.php'

@lyrixx @jeremy-derusse Please ignore that last remark. The way it is in melody now is the right one.
'/../../../autoload.php' is good

@lyrixx If you want to be picky you can change the order of the if but I doubt that it's any useful.

Closing this PR.
If there is an issue, please open an issue or send another PR.


Charging data missing from dashboard and unable to correct

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
I'm inconsistently seeing charges at Superchargers not being fully recorded.  The charge ID shows up in the 'Incomplete Charges' section, and when following the Manually fixing data doc a ** (FunctionClauseError) no function clause matching in Decimal.decimal/1 is returned.  This issue appears to be similar to issue #2994.  I also have a geo-fence for the Supercharger, but the costs are NULL.  Reviewing the relevant log data from when the charge started and ended, the same FunctionClauseError is shown there.
Expected Behavior
Fully recorded charging session in the database and in the "Charges" table.
Steps To Reproduce

Start charging at location.
End charging at location.
Open TeslaMate site, access Charges dashboard and find charge data.
Charge details not available, charge ID is located in 'Incomplete Charges'.
Open SSH to docker host and run the TeslaMate.Log.complete_charging_process().  This returns function error.

Relevant log output
2024-12-27 23:14:01.292 car_id=1 [info] Charging / SOC: 17% / Hy-Vee 90th & Center
2024-12-27 23:14:01.293 car_id=1 [info] Disconnecting ...
2024-12-27 23:27:22.240 [error] GenStateMachine :"1" terminating
** (FunctionClauseError) no function clause matching in Decimal.decimal/1
(decimal 2.1.1) Decimal.decimal(nil)
(decimal 2.1.1) lib/decimal.ex:996: Decimal.mult/2
(teslamate 1.32.0) lib/teslamate/log.ex:581: TeslaMate.Log.put_cost/2
(teslamate 1.32.0) lib/teslamate/log.ex:462: TeslaMate.Log.complete_charging_process/1
(teslamate 1.32.0) lib/teslamate/vehicles/vehicle.ex:925: anonymous fn/4 in TeslaMate.Vehicles.Vehicle.handle_event/4
(ecto_sql 3.12.1) lib/ecto/adapters/sql.ex:1400: anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4
(db_connection 2.7.0) lib/db_connection.ex:1756: DBConnection.run_transaction/4
(teslamate 1.32.0) lib/teslamate/vehicles/vehicle.ex:918: TeslaMate.Vehicles.Vehicle.handle_event/4
2024-12-27 23:27:22.998 car_id=1 [info] Start / :online

Screenshots
My attempt to end the charge

The total charges that have been having the same issue.  Trying to manually end these charges produces the same error from above.

Additional data
Adding charge data from the month of December, which includes 3 charging sessions that aren't properly recorded.
charges.csv
charging_processes.csv
Type of installation
Docker
Version
v1.32.0

I'm having a similar issue, I was able to enter the price manually for that session, but now I am unable to. It redirects me to a page and says "Not Found"

This is a guess, but the code that processes the charging session after finishing charging is expecting a number, but since you have NULL as the cost it is giving error. Are you able to enter a value for cost per kWh on the geofence?

I set the geo-fence to 0.0100, then tried running the command to end the charge.  I was able to get all the incomplete charges fixed and checking the charge data, I don't see any issues.  I'm glad it was a simple fix, but sad I didn't think to just set some number.


Backup jobs doesn't set resources limits as specified in resources limits entry in manifest

The same resources limits should be applied to all containers including init containers, the database container and the cron jobs.
Resources limits definitions should be applied to all containers and not to only database container as resources policies present in production clusters applies normally to all resources creation, including cron jobs.
Currently I cannot use kubegres backup functionality in production workflow due to failing compliance with resources limits policy.

I will test it and let you know. Could you copy an example of configuration that you applied to the yaml?


Allow tiles in a tileset to be rearranged in new tileset editor.

Godot version:
3.1 alpha 4
OS/device including version:
Windows 10 64bit
Issue description:
There should be a way to change the tile ID order in the new tileset editor. For example if I have a wall tile on ID 0 and a floor tile on ID 1 I can swap them so the floor is ID 0 and the wall is ID 1.
Not sure what the editor for this should look like. Maybe a list of all the tiles in the tileset and buttons to rearrange them?

Closing in favor of https://github.com/godotengine/godot-proposals/issues/1769, as feature proposals are now tracked on the Godot proposals repository.


Fix installation of template files

The target that copies the *.template files (#15) had a '/' prefixed which
should not be there. The copy should be locally here. The real install
happens in the install-conf that respects $PREFIX
Fixes #40

@toddejohnson Hey could you test if this fix works better for you (#40)? It works for me, but further testing would be very great!

I don't have it in me to hog the -git for this as well on AUR but here is the pkgbuild that is nice for a dev to have:
# Maintainer:

pkgname=restic-systemd-automatic-backup-git
pkgver=r85.428f4be
pkgrel=1
pkgdesc="Backup solution using restic/Backblaze B2 storage."
arch=('any')
url="https://github.com/erikw/restic-systemd-automatic-backup"
license=('BSD' 'custom')
depends=('systemd' 'restic')
makedepends=('git')
conflicts=('restic-systemd-automatic-backup')
provides=('restic-systemd-automatic-backup')
source=("git+https://github.com/erikw/restic-systemd-automatic-backup.git#branch=fix/40")
sha256sums=('SKIP')
backup=('etc/restic/b2_env.sh' 'etc/restic/b2_pw.txt' 'etc/restic/backup_exclude')

pkgver() {
  cd "$pkgname"
  printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
package() {
  cd "$pkgname"
  make PREFIX="$pkgdir" DEST_SCRIPTS="$pkgdir/usr/bin" DEST_SYSTEMD="$pkgdir/usr/lib/systemd/system" install
  sed -e 's|/usr/local/sbin|/usr/bin|g' -i $pkgdir/usr/lib/systemd/system/*
  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

I love makechrootpkg and owe them a beer. Output:
...SNIP...
==> Starting package()...
install -d /build/restic-systemd-automatic-backup/pkg/restic-systemd-automatic-backup/usr/bin
install -m 0744 usr/local/sbin/nm-unmetered-connection.sh usr/local/sbin/restic_backup.sh usr/local/sbin/restic_check.sh usr/local/sbin/systemd-email /build/restic-systemd-automatic-backup/pkg/restic-systemd-automatic-backup/usr/bin
install -m 0600 etc/restic/b2_env.sh.template etc/restic/b2_env.sh
install -m 0600 etc/restic/b2_pw.txt.template etc/restic/b2_pw.txt
install -d /build/restic-systemd-automatic-backup/pkg/restic-systemd-automatic-backup/etc/restic
install -m 0600  etc/restic/b2_env.sh  etc/restic/b2_pw.txt etc/restic/backup_exclude /build/restic-systemd-automatic-backup/pkg/restic-systemd-automatic-backup/etc/restic
install -d /build/restic-systemd-automatic-backup/pkg/restic-systemd-automatic-backup/usr/lib/systemd/system
install -m 0644 etc/systemd/system/nm-unmetered-connection.service etc/systemd/system/restic-backup.service etc/systemd/system/restic-backup.timer etc/systemd/system/restic-check.service etc/systemd/system/restic-check.timer<EMAIL_ADDRESS>/build/restic-systemd-automatic-backup/pkg/restic-systemd-automatic-backup/usr/lib/systemd/system
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Removing static library files...
  -> Stripping unneeded symbols from binaries and libraries...
  -> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "restic-systemd-automatic-backup"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: restic-systemd-automatic-backup r85.428f4be-1 (Fri 03 Dec 2021 10:41:53 AM CST)

I've also added you as co-maintainer in AUR.

If I'm reading the logs right, the make install  works better now. I'll hit the merge button then :)

@toddejohnson I pushed tag v1.0.1. Would you like to have the honor of publishing the updated PKGBUILD? If you don't have time, I can do it as well (now that I'm a co-maintainer, thx!) :)

@erikw go ahead just remove my mv commands that were my workaround


Slow desktop app when installed through launcher

Ubuntu 18.04 x64 Gnome3 w/ native Nvidia drivers
I installed Tor browser 7.5.3 through torbrowser-launcher's "reinstall" option and ran it.  The app's performance, even to open a new tab or move the window, is absolutely horrendously slow, and the window decorations are messed up.  Unmodified Firefox / FF nightly work just fine.

That's odd. It shouldn't make a difference how you install it. Tor Browser Launcher just downloads and installs Tor Browser for you, and it doesn't modify it in any way. When you already have Tor Browser installed and launch it, TBL just opens it in the background, and then closes itself.
Try running this:
cd ~/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US/start-tor-browser.desktop
./start-tor-browser.desktop

Is it still slow? If it is, it probably isn't a TBL problem, but rather some problem with Tor Browser itself on your computer.

If that doesn't fix it, feel free to re-open this issue.

I'm pretty sure it's a pathological interaction in Firefox with the Gnome 3 API, because I've seen a similar performance regression in Firefox, which causes system-wide UI lag, and in a few other things outside of Firefox as well, such as Nautilus.  I'll link here if I discover what's going on.


Read battery level and battery status

Is your feature request related to a problem? Please describe.
We deploy Stripe readers in a retail POS environment across multiple locations. While we strive to keep our readers plugged into the wall, sometimes electrical outlets become faulty or a plug is kicked loose. In these situations, our alerting does not kick in until the reader runs out of battery. We'd like to get ahead of this issue by reading the battery status and triggering an alert when it dips below a threshold.
Describe the solution you'd like
Expose reading the Stripe battery level and status from a BBPOS WisPOS E
Describe alternatives you've considered
Smart outlets/extensions that can alert on broken outlet statuses

The native SDK includes an didReportBatteryLevel event. Are there plans to bubble this event to the javascript side in an upcoming version? If not, would you accept a PR for this? Thanks!

Reader object has isCharging and batteryLevel fields to display this information. Does that not satisfy this user case?

Ah I see. We don't have plans at the moment to add support for this unfortunately, but would always welcome a PR to add support for it!

@marvinklein @b13i we just released beta.19 built on v3.6.0 native SDKs with the above fix. This release also adds the onDidUpdateBatteryLevel and a getter method to access connectedReader with real life battery updates


Can't manage completion to work

Hello, i set up all according to readme, but unfortunately for some reason completion doesn't work. If you have some time could you pls help me with it?

Are you by any chance using Windows? I did not build this plugin to support Windows (yet).

Are you by any chance using Windows? I did not build this plugin to support Windows (yet).

I use MacOS

And you have ripgrep installed?
Can you also include the output of the tmp file that starts with /tmp/css-vars?

I've just looked into my file and i have that variable in it, but i have no completion for it

So if you type the following, you do not see any suggestions?
body {
  background: var(--[CURSOR HERE])
}

What is the name/extension of the file you are editing?

May be something wrong my cmp config.

I just experimented with having it as a custom cmp source instead of snippets.
Try adding it as a dependency to nvim-cmp, and configure it to use the source, like this:
  "hrsh7th/nvim-cmp",
  dependencies = {
    -- other deps
    {
      "jdrupal-dev/css-vars.nvim",
      branch = "cmp-source", -- Important to use this branch.
      opts = {},
    },
  },
  config = function()
     cmp.setup({
      -- Sources for autocompletion.
      sources = cmp.config.sources({
        { name = "nvim_lsp" },
        { name = "css_vars" },
        -- other sources...
      }),
    })
    -- more configuration...
  end

Please let me know how that works.

@jdrupal-dev now it works! Thank you a lot!

Cool, will close this once I have updated the readme and merged to master.


Supported Vector Font Libraries?

First of all, you're doing the net.gods' own work here, sir. Thank you for this project.
I'm wondering if you've had success using a font library such as freetype with this, and if so I'd greatly appreciate any information about which one(s) and how it went. I'm just trying to write something to render a background image with a calendar drawn on top of it and dump it into a png, so PortableGL looks perfect so long as I can draw text without reinventing the wheel.
Edit
Actually, now that I'm looking directly at FreeType for the first time in a decade or so, it looks like it's independent from the renderer, so I'm in business. Sorry to bug you, and thanks again for the project. 😁

Yeah, That was what I was going to say (just saw the email with your original comment).  Basically any of the font rendering libraries, Freetype, stb_truetype, even SDL_ttf, I think they all support at least 2 methods.  The first is creating a single texture atlas of all the characters/graphemes you might use and render them individually as quads (or 2 triangles) with the library giving you the necessary information (cached uv's for each char, screen space coords for each quad in a given string).  The second, you can create complete pre-rendered textures of all the specific strings you want and apply all of those textures however you want, but most equivalently, on an appropriately sized rectangle.  There are pros and cons to each and sometimes you might even mix both approaches in a single application.
I'll go ahead and close this but good luck with your project and let me know if you have any questions or run into any issues.  I've been really busy with the regular life/day job/other projects the last couple months but I do hope spend some serious time on PortableGL in the coming months.