[Form components] Set cursor:not-allowed style when disabled

Added cursor:not-allowed to components in disabled state
part of fixes to #3817

@nktssh Can we make this a single commit but with a message containing all of the affected components?

@nathanmarks sure, will do this changes

@nktssh Sorry!! I didn't communicate my request properly.
Let's do a commit message like this:
[Form components] Set `cursor:not-allowed` style when disabled

Affects the following components: DatePicker, Checkbox, IconButton, ListItem, MenuItem, EnhancedButton, TextField, RadioButton, Stepper, Table, Toggle

@nathanmarks ok, np

Hi @nktssh - just checked this out locally, and I'm getting the normal pointer for the switches for some reason. (All the others look good. 👍 )
I tried Chrome and Firefox just to be sure. Could you take another look?

@mbrookes sure, I'll take a look!

BTW: "html-webpack-plugin" not saved in "docs/package.json" which fail 'npm start' command.
Will it be ok to add new pull-request without issue creation?

Yeah, sorry about that: https://github.com/callemall/material-ui/pull/4201

@nktssh Please go ahead and squash

@nktssh This needs squashing/rebasing.

@nathanmarks not sure I get it. Could you, please, help me to understand?
I need to create one commit from all my commits in this branch?

@nktssh Yes, git rebase -i HEAD~7 and mark all but the base commit as f (fixup), then git push -f.

@mbrookes ok, thanks, will do it and push soon.

@mbrookes sorry for silly questions.
is that ok that my commit will include not only original changes, but every change in repository till now?

@nktssh It needs to be just your changes

@nathanmarks what about changes in master meantime?
I should write my changes on top of current master, right?

@nathanmarks @mbrookes done, please review

@nathanmarks done

@mbrookes @nathanmarks what's you thoughts on this? Should we support disabled cursor in core components?

@nktssh, putting it on the parent component will make it easier for devs to override if they need to. (I don't like not-allowed so much on button for example.)

Could we globally undo this change or provide workaround to disable/override?
Here are the reasons:

Disabled controls are not 100% not-allowed. They could be used for text selection, copy to clipboard.
Text selection looks and works ugly with not-allowed cursor.
Why? What was the reason behind the change? Is there any respectable example of such look&feel?

@demigor If you don't want it for a particular use-case, you can disable it.


Disparate behaviour between Desktop and Mobile devices (regardless of viewport width)

Howdy everyone,
I'm currently working on a site that uses react-slick for the testimonial sections of the site.
It looks like this on Desktop:

And then like this on Mobile:

This works in my desktop browser (as seen in the screenshots above), both in desktop resolutions and mobile device resolutions (Responsive design mode @ chrome & safari).
However, on actual devices (multiple tested, iOS & Android) the carousel appears as such:
(On load)

(On interaction - touching a slide / photo)

Has anyone experienced something similar, or knows why this behaviour is occurring only on ACTUAL mobile devices? It's challenging to debug as I do not have inspector / dev tools available to me on mobile devices.
Here is the settings I'm using for react-slick:
<EMAIL_ADDRESS>import React, { useState, useEffect, useRef } from 'react';
import Slider from 'react-slick';
import { Testimonial } from '.';
import { isClient } from '../../util/helpers';
import './Testimonials.scss';

const Testimonials = (props) => {
  const {
    testimonials,
    isActive,
    isAnimating,
    setHeightHandler,
  } = props;
  const sliderRef = useRef(null);
  const [activeIndex, setActiveIndex] = useState(0);
  const settings = {
    dots: false,
    arrows: false,
    infinite: true,
    speed: 500,
    slidesToShow: 3,
    slidesToScroll: 1,
    centerMode: true,
    centerPadding: '70px',
    afterChange: index => setActiveIndex(index),
    responsive: [
      {
        breakpoint: 800,
        settings: {
          slidesToShow: 1,
          slidesToScroll: 1,
        },
      },
      {
        breakpoint: 400,
        settings: {
          slidesToShow: 1,
          slidesToScroll: 1,
          centerPadding: '40px',
        },
      },
    ],
  };
  const handleResize = () => {
    setHeightHandler(
      sliderRef && sliderRef.current && sliderRef.current.innerSlider && sliderRef.current.innerSlider.state && sliderRef.current.innerSlider.state.slideHeight ? (
        sliderRef.current.innerSlider.state.slideHeight
      ) : 0,
    );
  };
  useEffect(() => {
    sliderRef.current.slickGoTo(activeIndex);
    if (isClient) {
      handleResize();
      window.addEventListener('resize', handleResize);
      return () => {
        window.removeEventListener('resize', handleResize);
      };
    }
  });
  const classes = `${isActive ? ' active' : ''}${isAnimating ? ' is-animating' : ''}`;
  return (
    <div
      className={`testimonials${classes}`}
    >
      <Slider ref={sliderRef} {...settings}>
        {testimonials.map((testimonial, index) => (
          <Testimonial
            key={index} // eslint-disable-line
            index={index}
            isActive={index === activeIndex}
            setActiveIndex={setActiveIndex}
            {...testimonial}
          />
        ))}
      </Slider>
    </div>
  );
};

export default Testimonials;

I managed to fix this issue, I believe the issues was linked to responsive breakpoints.
Essentially I had to initialise the slick slider with the settings I wanted for mobile devices, and then create a ridiculous upper boundary breakpoint (99999px) for desktop resolutions.
See settings:
const settings = {
    dots: false,
    arrows: false,
    infinite: true,
    speed: 500,
    slidesToShow: 1, // Initialise mobile settings here
    slidesToScroll: 1,
    centerMode: true,
    centerPadding: '20%',
    afterChange: index => setActiveIndex(index),
    responsive: [
      {
        breakpoint: 99999, // These are the settings I want for everything but mobile
        settings: {
          slidesToShow: 3,
          centerMode: false,
          slidesToScroll: 1,
        },
      },
      {
        breakpoint: 800, // Mobile settings reapplied here
        settings: {
          slidesToShow: 1,
          slidesToScroll: 1,
        },
      },
    ],
  };


Fix crasher on 404 .pagespeed. resources w/a custom location

Fix crasher on .pagespeed. resources that return 404
Additionally, check for a wiped request context and make sure
we do not dereference a null pointer, which is what hurt in
the flow we hit above.
Also, do not check fail when we would receive a stale event
originating from a NgxBaseFetch that is no longer associated
with our request context.

This is not the final change yet, as I want to back this with
tests where possible, and log warning when appropriate.
For https://github.com/pagespeed/ngx_pagespeed/issues/1081

I confirm that this solves the issue, please merge

If anyone is up for reviewing, this pull is ready for it: I pushed my last changes to this, adding a test and logging warnings.

LGTM

Saw some crashes from Master, now its perfect:

Format:


Prevent possible XSS

In the case of misuse or misunderstanding from a developer whereby, data-panel can receive user-controlled data. $(sel) can lead to the creation of a new element. Current usage is using hard-coded selectors in the templates, but nobody prevents that from expanding to user-controlled somehow.

The code seems to originate from the BIDI feature(https://github.com/go-gitea/gitea/pull/17562) so I don't think this needs to be backported.

make LGTM work

can we add some linter to catch this?

If we want to patch .... we had better patch all the code, but not one by one ....

If we want to patch .... we had better patch all the code, but not one by one ....

Hmm interesting, this was instance was catched by a CodeQL query I've been running locally. Seems to get confused when it sees a usage that is indirect and inlined.

can we add some linter to catch this?

We might go a bit harsh and ban the usage of $(...)(exception of $(this)?) as it doesn't have 1 defined behavior, as it can be querySelector, but on the wrong data it can create a new element. E.g. a lot of instance like the mentioned one should be done via $.find.

I'm still of the opinion we should just replace jQuery with vanilla JS, e.g. document.querySelectorAll. It's better for performance and vanilla DOM APIs are not really that hard to learn. jQuery has no place in modern code.

I'm still of the opinion we should just replace jQuery with vanilla JS

What's the current argument to not do this? If none, expect a PR from me soon to do this. As that would resolve this issue and future ones entirely.

There's no blocker, it's just that some people like @zeripath seem to prefer jQuery out of habit, but I'd certainly welcome a refactor towards replacing jQuery with vanilla JS.

@silverwind @wxiaoguang
I think this pull is fine as is - I do not like to see heavy code refactor in freezing in it do not fix an issue ;)
the ongoing discussion about how our frontend should move towards (framework, libs, ...) is important and we should overthing some of it ... O I would suggest to let this pull be reviewed against proposed aim & open a new issue/discurese-thread/... to talk about this - it look's like it  (discussion) is needed :)

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@4b4884c). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main   #18289   +/-   ##
=======================================
  Coverage        ?   45.73%
=======================================
  Files           ?      831
  Lines           ?    92172
  Branches        ?        0
=======================================
  Hits            ?    42153
  Misses          ?    43257
  Partials        ?     6762

Continue to review full report at Codecov.

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


Update to README.md: Note -h can support ip addresses

If you don't have a domain/subdomain pointing to your server yet, you can use the servers external ip address.

Nice, before you needed a subdomain, a single hostname would not work, but I did not try an ip adress.
The hostname passed as -h value is inserted into the config files in the startup.sh script which also seems to work with an ip adress.


Upgrade our mkdocs-material docker image and fix any issues

Task Description
We need help with migrating our documentation to mkdocs-material - 5.0.0 when it is released. A live preview of the latest RC is available here.
Tasks
The following tasks will need to be carried out:

[x] Upgrade our docker image so it uses the latest version ci-build-images/images/mkdocs/Dockerfile.mkdocs and installs the correct pip dependencies
[x] Make any necessary configuration changes
[x] Add support pymdownx.tabbed in markdown_extensions under mkdocs.yaml (this requires pymdown-extensions>=7.0)
[x] Search for todo: pymdownx.tabbed within the project to

Task Relationships
This task:

Relates to: strongbox/strongbox-docs#78

Useful Links

Live RC preview
Material for MkDocs 5 / How to migrate

Help

Our chat
Points of contact:

@steve-todorov

Me and @rbratfors would like to pick this one up if available

Hi @adbjo and @rbratfors! Thanks for your interest in this issue! I've assigned it to @adbjo (@rbratfors please comment so I can add you to the assignee list). Feel free to work on this, but a heads up - mkdocs-material version 5.0 has not been released yet. There are only RC versions available at the moment. :)
There are two options:

You should be able to do most of the work using the RC4 version (or if a newer becomes available meanwhile). We will not merge it right away but wait for 5.0 to be released and then apply any necessary final changes that might be needed.
You could wait for 5.0 to be released (which might take anywhere between a few weeks and a few months) and do the work then.

Both options are fine by me, although I believe 1) would be better for you if you have a fixed deadline.
Please note that since you both are new contributors you would need to sign a standard ICLA for your PR to be merged.

@steve-todorov Didn't see that I had to comment, but here I am!

FYI @rbratfors and @adbjo - mkdocs-material-5.0 has been just released :)

@gluckzhang, if you're also looking for tasks to work on, let us know! Also, guys, feel free to join our chat channel for more details.

Hi @carlspring , thanks for the invitation. I am one of the TAs in the courses and I won't have time to contribute now. Maybe later I will join the project :smile:

@adbjo , @rbratfors thank you guys for your excellent work on this task! Congratulations on your first merged PR! :)
If you are looking for more devops related tasks - please ping me in the chat and we'll find you something!

Thanks Steve, it was great working with you guys, might contribute more in the future :)


[cxx-interop] Rename ClangRecordTypeInfo -> LoadableClangRecordTypeInfo.

This is a more accurate and clear name. This change will help further differentiate between LoadableClangRecordTypeInfo and (the soon to be added) AddressOnlyClangRecordTypeInfo.
Refs #32973.

@swift-ci please smoke test.


fix: stop plugin by setting vim.b.ignore_early_retirement = true

I think the title of the PR is wrong, but otherwise thanks


Just some very minor corrections/second set of eyes

...ake it so the sample app refers to the library (much easier for making changes)

Already went over it myself but didn't push my changes, thanks for pointing out the local library!


29 implement focus support for canon eos

Initial refactor and attempt to support newer EOS remote control characteristics.

This PR is out of date and will need hardware to properly fix and complete.
Discarding for now, it will almost certainly need a complete rethink/rewrite.


Atom Crashes Every Time when I try to load a project folder.

I upgraded Atom based on the alert in the bottom left, and the problem started happening. Then I uninstalled it using the Windows add/remove programs and reinstalled the latest version from atom.io
https://atom.io/
The file version is <IP_ADDRESS>
Steps to Reproduce

Launch Atom
2.Select File -> add project folder

Expected behavior: [What you expected to happen]
Project folder gets loaded
Actual behavior: [What actually happened]
Boom!

Atom Version: <IP_ADDRESS>
Windows 10 version 1607 / 14393.51

@chatterbeak could you fill out a bug report properly on 1 issue and delete the rest?
https://github.com/atom/atom/issues/12423
https://github.com/atom/atom/issues/12422


update script size limit to 128kb

WHY are these changes introduced?
Quick update to increase our bundle size update restriction to 128KB instead of 64KB now that our LHM migration has finished running.
WHAT is this pull request doing?
Just increasing our web_pixel_extension build validation to set the size limit at 128KB instead of 64KB.
How to test your changes?
You can deploy an web pixels app with this CLI with a script size of 128KB or higher!
128KB Script now:

Post-release steps

Measuring impact
How do we know this change was effective? Please choose one:

[x] n/a - this doesn't need measurement, e.g. a linting rule or a bug-fix
[ ] Existing analytics will cater for this addition
[ ] PR includes analytics changes to measure impact

Checklist

[x] I've considered possible cross-platform impacts (Mac, Linux, Windows)
[x] I've considered possible documentation changes
[x] I've made sure that any changes to dev or deploy have been reflected in the internal flowchart.

/shipit


Setup GitHub Actions for linting

Which feature you want to improve?
GitHub Actions CI
What and why you want to improve that feature
GitHub Actions CI should run linting. So contributors know they need to enforce the pretiier
Potential bugs/ unexpected behaviors
None for now
How to implement the changes

Update code inside .github/workflows.
If we can update in an existing .yml file, we do not need to run npm ci again
If npm run prettier fails, CI fails

Others
Do you have anything else you want to share about the improvement?

Motivation for this issue: When reviewing code for #129

https://stackoverflow.com/questions/65242830/in-a-github-actions-workflow-is-there-a-way-to-have-multiple-jobs-reuse-the-sam

@nvh95 seems like a good story to begin with mhm


Migrate .NET projects to .NET 7

Gateway has been mirgrated to .NET 7 to support RateLimiting 1392da6


feat(frontend): sol addresses loading

Motivation
Add loading of solana addresses.
Changes

Add SOL to AddressGuard
Add SOL to Loader
Add SOL to addresses.services

Tests

Add Tests for AddressGuard
Add tests for addresses.services.spec.ts

resolved with https://github.com/dfinity/oisy-wallet/pull/4013/files


sqrt and log of rational series

It seems that if one of the coefficients of a rational power series is a non-integer then the condition that the constant term is one, fails.
Example.
import flint

QQ = flint.fmpq
log = flint.fmpq_series.log

# this one works ok
print(log(flint.fmpq_series([1,1])))

# here is I get ValueError: log() of power series: constant term must be one
print(log(flint.fmpq_series([1,1,QQ(3,8)])))

The same goes with sqrt.
My best guess is that it is because fmpq series is represented as a fraction, and it thinks that the leading term is equal to 8.
My flint version is 2.7.1, and python-flint is 0.3.0
Cheers

This one seems to be working fine now with python-flint 0.6.0:
In [1]: import flint
   ...:
   ...: QQ = flint.fmpq
   ...: log = flint.fmpq_series.log
   ...:
   ...: # this one works ok
   ...: print(log(flint.fmpq_series([1,1])))
   ...:
   ...: # here is I get ValueError: log() of power series: constant term must be one
   ...: print(log(flint.fmpq_series([1,1,QQ(3,8)])))
x + (-1/2)*x^2 + 1/3*x^3 + (-1/4)*x^4 + 1/5*x^5 + (-1/6)*x^6 + 1/7*x^7 + (-1/8)*x^8 + 1/9*x^9 + O(x^10)
x + (-1/8)*x^2 + (-1/24)*x^3 + 7/128*x^4 + (-11/320)*x^5 + 23/1536*x^6 + (-13/3584)*x^7 + (-17/16384)*x^8 + 73/36864*x^9 + O(x^10)

Looks like it was fixed in c715d518 from gh-39 so python-flint 0.4.0.


Freezes when more than one app use iohook

Current Behavior
whenever I open more than one electron application using iohook, it makes the whole operating system freeze for a few seconds.
Steps to Reproduce (for bugs)

Open a Electron application with the the ioHook module.
Open a second Electron application with the ioHook module.
The second Electron application will freeze when the app start loading.

Context
I want to use the module in more than one project, but I do not want this type of problem to happen.
Your Environment

Version used: 0.2.0
Nodejs 8.9.3
Electron 2.0.2
Windows 10

Same here! 😞

Same here too!
A temporary fix for the Electron apps, if you DON'T want to open a second one, you can use this code only have one app opened, and when you try to open a second one, it redirects you to first one you have open:
const shouldQuit = app.makeSingleInstance(() => {   // do your code to redirect to the window here! }) if (shouldQuit) {   app.exit() // could use app.quit(), but exit is more fast and prevent other errors }

sorry, but my problem is not two electron applications repeated. My problem is two different electron applications

What you could do is, e.g. write a file somewhere in the user folder and check if it is present before launching the app.

@Djiit
I am confused. Can you explain better please? :c
the simple fact of the  var ioHook = require('iohook'); exists, makes everything freeze

I am getting the same problem with two nodejs applications, where if the first one has an ioHook module loaded, the second one that opens with an ioHook module loaded lags a lot and causes the cursor and other IO inputs to lag out until the second application is closed.

I got it now. Maybe we could tell iohook to only listen once system-wide, and provide a way for users to know it (like triggering an event "IOHookAlreadyListening". Any C++ programmer here ?

When launching two or more processes with iohook module, my mouse moves like in slow-mo. This is actually a big problem. Imagine if user launches two or more completely different apps that uses iohook module.
const {exec} = require('child_process');
const iohook = require('iohook');

iohook.start();

if (process.argv.length === 2) {
	console.log('Launched main');
	iohook.on('keydown', (e) => {
		console.log('Main', e.rawcode);
	});
	exec([`"${process.argv[0]}"`, process.argv[1], '-t'].join(' ')).stdout.pipe(process.stdout);
} else {
	console.log('Launched child');
	iohook.on('keydown', (e) => {
		console.log('Child', e.rawcode);
	});
}

@Djiit , this issue hasn't been resolved by now? I have to give up iohook because of this issue.

This issue: https://github.com/wilix-team/iohook/issues/176 seems related to this one.

This freezing issue is still present. @Djiit, why did you close #145? Did that not solve this problem? Or was something else wrong with that PR?

@Lennon925 Did you find an alternative for iohook?

@Lennon925 Did you find an alternative for iohook?

Acturally not yet. But I am using "robotjs" which can monitor mouse-move event only.

As this is still not fixed, I'm switching over to something that seems to work much better:
https://www.npmjs.com/package/gkm

Hey, we just ran into this exact issue (wasn't aware that it was caused by iohook but luckily ran into this thread).
Is there any way to simply detect if there's another instance of iohook and shut down iohook functionality in our app?

I'm not aware of that, but I strongly advise against using iohook in any way before this issue is fixed somewhere. Gkm it turns out has quite some issues too. Next I'll look into if I can use Electron.js to be able to respond to global keys.

Got it, yeah we've come to the same conclusion but unfortunately, we haven't found a good alternative. We've experimented with the globalShortcut that comes with Electron.js, but we'd rather have it listen to a key-binding rather than actually register a shortcut, which can conflict with other shortcuts on the machine. For example, the user is playing a game or something, the shortcuts will be blocked.

Is that so? That's strange. I've still yet to experiment with the Electron approach, would be a shame if they couldn't react to a shortcut key that another app is also listening to. Have you perhaps a small reproducible experimental example that I could also try to replicate this? Because if so, their project might be much more active, receptive and interested in fixing this shortcoming of theirs, and we could share it with them too while raising an issue with them.

It looks like libuiohook has fixed this issue upstream somewhat recently: https://github.com/kwhat/libuiohook/pull/72
I've yet to try dropping this newer libuiohook version in, but it certainly feels promising.

Hello! I'm also experiencing this abnormal behavior! :(
Its really easy to replicate, just run two electron apps which use electron [eg Loom or Cortex]  and everything freezes.
Is there any fix on this incoming soon due to the recent libuiohook changes?
Thanks!

Put out a PR for a fix for this. Welcoming reviews here: https://github.com/wilix-team/iohook/pull/294

Following. I have the same issue


assemble pipeline based on flags passed in

so, for example, if we have the normalize=True flag passed in, dynamically insert the normalize transformer. same for NLP, same for many of the stats functions we want to build in.
possibly even same for ensembling! that would make me feel better about building in ensembling, since it would only be a part of the pipeline (therefore reducing function invocations below the other implementation i had envisioned) when we actually want to do ensembling.
probably even modularize this into it's own function (def assemble_pipeline(self, **flags)).
Then, depending on verbosity, print out a simplified version of the pipeline for the user to see?

finished!


Theme footer sits on top of other elements

When not using the advanced web interface, depending on the screen size, content height or windows size, the theme's footer stays on top of other elements, preventing the use of some buttons.

This does not happen when using the default Mastodon theme.

Can you share the exact viewport where this happens?


[Feat]: Deprecate legacy app management helpers

refer to: https://github.com/appium/java-client/pull/1571

@mykola-mokhnach , we need to implement this, right?

right, this set of APIs will be eventuallyremoved from the server

@mykola-mokhnach  can we close this or should I wait for https://github.com/appium/appium/issues/15807 to be closed?

Should be ok, thank you


Why does this code force use of a singleton Transaction.Current to check for transactions?

Library name and version
Azure Service Bus .NET library
Query/Question
https://github.com/Azure/azure-sdk-for-net/blob/0a82584b4dc7858ca6aab6e9cd0c5762c0367b5f/sdk/servicebus/Microsoft.Azure.ServiceBus/src/Core/MessageSender.cs#L547
We ran into this issue when we were running a SQL transaction via EF, while trying to send messages on the service bus, and we'd get an error like "The only supported IsolationLevel is Serializable" which makes no sense in this scenario.
It appears this code is tightly coupling a transaction scope to something completely unrelated via a singleton. Why is it doing that, and surely there can be some injectable means of doing the same thing?
Environment
all (this is a base code issue)

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

@jeremy-holovacs-sp Thanks for reaching out to us and reporting this issue. We are looking into this issue and we will provide an update.

Chiming here with the perspective of me using several versions of the ServiceBus library. I have no insights into why the transaction scope was originally chosen. I think it would have been possible to design an explicit unit of work like concept like we have today with the batch instead of relying on ambient transaction.
I also understand that at the time this was introduced TransactionScope was the defacto standard of grouping different operations together into a single transaction by having the methods be automatically enlisted into the ambient transaction. Transaction.Current is not really a singleton. It is more an ambient either "thread-bound" or "async local bound" (when using the TransactionScopeAsyncFlowOptions) state that is "floated" around. This allows any operation that is surrounded by a scope to tap into the Transaction.Current and then enlist into it.
From the perspective of the SDK as far as I understand is to have a short live scope that is dedicated to wrap the receive operation and all the send operations. This scope is only available for the SDK operations and should never be used to enlist any other transaction on it. That's why the Serializable isolation level was chosen to make sure no other operation that taps into ambient transaction can enlist.
The design choice of using the TransactionScope makes this a bit hard to use because you might be tempted to simply span a scope, execute all your code and then finally send the messages all included in the scope while effectively any operations that might try to enlist that are not SDK operations need to have their own scope and the surrounding scope required for the SDK operations need to be suppressed for the lifetime of these other calls. That makes things very complicated to use because you end up with code like the following (pseudocode):
using var scopeForSdkOperations = new TransactionScope(...);
await receiver.ReceiveMessageAsync();
   using var suppressScope = new TransactionScope(Suppress);
       using var entityFrameworkScope = new TransactionScope(...);
       var efContext = new EfContext()...
await sender.SendMessageAsync();
await sender.SendMessageAsync();

To avoid accidental leakage of the scope and the complex suppression "song and dance" I have opted in to explicitly "float" around a CommittableTransaction object and turn that into a scope only when needed. One additional benefit this has is that you can delay the instantiation of that CommittableTransaction to the last point, and then you are as well less likely to run into the default transaction timeout of 10 minutes and all the complex workarounds you need to do to set that value.
The code looks more less like the following:
                // somewhere feasible but as late as possible so that EF transaction
                var transaction = new CommittableTransaction(transactionOptions);

               // execute EF stuff with their own scopes

                // turn the committable transaction into a scope
                using var scope = transaction.ToScope();
                await sender.SendMessagesAsync(messageBatch, cancellationToken);
                //committable tx will not be committed because this scope is not the owner
                scope.Complete();

                // some time later commit the committable transaction

static class TransactionExtensions
    {
        public static TransactionScope ToScope(this Transaction transaction)
        {
            return transaction != null
                ? new TransactionScope(transaction, TransactionScopeAsyncFlowOption.Enabled)
                : new TransactionScope(TransactionScopeOption.Suppress, TransactionScopeAsyncFlowOption.Enabled);
        }
    }

see https://github.com/Particular/NServiceBus.Transport.AzureServiceBus/blob/master/src/Transport/Sending/MessageDispatcher.cs#L188-L191 and https://github.com/Particular/NServiceBus.Transport.AzureServiceBus/blob/master/src/Transport/Sending/MessageDispatcher.cs#L120-L122 plus the higher up the chain commit https://github.com/Particular/NServiceBus.Transport.AzureServiceBus/blob/master/src/Transport/Receiving/MessagePump.cs#L296
But yeah this is some non-trivial gymnastics to comply with the rules of the transaction scope just to get cross entity transaction working and also making sure that any other send always has a suppression scope to not accidentally run into the exception mentioned here.
I believe it would be worthwhile improving this in the new Azure.Messaging.ServiceBus library too.

@JoshLove-msft :point_up: some feedback for the Azure.Messaging.ServiceBus client

@jeremy-holovacs-sp Transaction.Current is a thread local static. It's set for the executing thread. It's not a singleton.
Service Bus uses System.Transactions for its own transactions, but it can't be enlisted into an ongoing distributed transaction that involves SQL.
When there is an existing transaction scope, you need to create a new TransactionScope around the Service Bus operations with the scope option RequiresNew of you want Service Bus use transactions or Suppress if not. Hope this answers.


Added aria-label

I made line 77 more accessible

Fixes Issue
2382

Changes proposed

Check List (Check all the applicable boxes)

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

Screenshots

Note to reviewers

Looks good to me.

Thanks @dan-mba! :) Now onto merging it


Imgui for Silk.NET.Core?

Is there a extension for Silk.NET.core that works on dotnet 6?

imgui extensions work fine on dotnet core

I don't even know which ones to use there is OpenGL and OpenGLES but I don't see a vulkan one.

I don't even know which ones to use there is OpenGL and OpenGLES but I don't see a vulkan one.

we do not provide one, there is a heavy WIP one but its not for use so we dont pubish it

ok thankyou


Create Responsive Error Page

I want to work on this issue under JWOC

can I have a proper description @TuhinBanerjee31

Want to create a 404 error page for the website which will be displayed if the user visits any wrong page location. It will contain a responsive and tempting UI with a Go back to home button.

ok


CI: ConformanceEKS - Error: Connectivity test failed: timeout reached waiting for pod IDs in ipcache of Cilium pod kube-system/cilium-lbwv4

CI failure
Observed in https://github.com/cilium/cilium/pull/16635
Error: Connectivity test failed: timeout reached waiting for pod IDs in ipcache of Cilium pod kube-system/cilium-lbwv4

cilium-sysdump-out.zip.zip
logs_125844.zip

This is likely different from #16693 as this is EKS and not AKS, and supposedly the root cause for #16693 has already been fixed in EKS.

The problem seems to be that the CEPs for the new endpoint could not be created because the old namespace was still getting deleted. The cilium-cli CEP check however passed because it still found the old ones.
Just two seconds before the timeout was reached:
cilium-lbwv4-cilium-agent-20210630-084005.log
cilium-lbwv4-cilium-agent-20210630-084005.log
368:2021-06-30T08:37:49.411351564Z level=error msg="Cannot create CEP" containerID=87f8270279 controller="sync-to-k8s-ciliumendpoint (32)" datapathPolicyRevision=0 desiredPolicyRevision=0 endpointID=32 error="ciliumendpoints.cilium.io \"echo-same-node-7967996674-th842\" is forbidden: unable to create new content in namespace cilium-test because it is being terminated" identity=27408 ipv4=<IP_ADDRESS> ipv6= k8sPodName=cilium-test/echo-same-node-7967996674-th842 subsys=endpointsynchronizer
369:2021-06-30T08:37:49.588050217Z level=error msg="Cannot create CEP" containerID=eaa61f8bf2 controller="sync-to-k8s-ciliumendpoint (2639)" datapathPolicyRevision=0 desiredPolicyRevision=0 endpointID=2639 error="ciliumendpoints.cilium.io \"client-7b7bf54b85-h2ll4\" is forbidden: unable to create new content in namespace cilium-test because it is being terminated" identity=16680 ipv4=<IP_ADDRESS> ipv6= k8sPodName=cilium-test/client-7b7bf54b85-h2ll4 subsys=endpointsynchronizer
386:2021-06-30T08:37:50.429861129Z level=error msg="Cannot create CEP" containerID=87f8270279 controller="sync-to-k8s-ciliumendpoint (32)" datapathPolicyRevision=0 desiredPolicyRevision=0 endpointID=32 error="ciliumendpoints.cilium.io \"echo-same-node-7967996674-th842\" is forbidden: unable to create new content in namespace cilium-test because it is being terminated" identity=27408 ipv4=<IP_ADDRESS> ipv6= k8sPodName=cilium-test/echo-same-node-7967996674-th842 subsys=endpointsynchronizer
387:2021-06-30T08:37:50.597178176Z level=error msg="Cannot create CEP" containerID=eaa61f8bf2 controller="sync-to-k8s-ciliumendpoint (2639)" datapathPolicyRevision=0 desiredPolicyRevision=1 endpointID=2639 error="ciliumendpoints.cilium.io \"client-7b7bf54b85-h2ll4\" is forbidden: unable to create new content in namespace cilium-test because it is being terminated" identity=16680 ipv4=<IP_ADDRESS> ipv6= k8sPodName=cilium-test/client-7b7bf54b85-h2ll4 subsys=endpointsynchronizer
391:2021-06-30T08:37:52.443959377Z level=error msg="Cannot create CEP" containerID=87f8270279 controller="sync-to-k8s-ciliumendpoint (32)" datapathPolicyRevision=0 desiredPolicyRevision=1 endpointID=32 error="ciliumendpoints.cilium.io \"echo-same-node-7967996674-th842\" is forbidden: unable to create new content in namespace cilium-test because it is being terminated" identity=27408 ipv4=<IP_ADDRESS> ipv6= k8sPodName=cilium-test/echo-same-node-7967996674-th842 subsys=endpointsynchronizer
392:2021-06-30T08:37:52.605544806Z level=error msg="Cannot create CEP" containerID=eaa61f8bf2 controller="sync-to-k8s-ciliumendpoint (2639)" datapathPolicyRevision=0 desiredPolicyRevision=1 endpointID=2639 error="ciliumendpoints.cilium.io \"client-7b7bf54b85-h2ll4\" is forbidden: unable to create new content in namespace cilium-test because it is being terminated" identity=16680 ipv4=<IP_ADDRESS> ipv6= k8sPodName=cilium-test/client-7b7bf54b85-h2ll4 subsys=endpointsynchronizer

This is likely fixed by https://github.com/cilium/cilium-cli/commit/7c72164a035647bdbe5a1007f77ebdbe17891ae0

This particulate failure here should be fixed by #16689


Remove mode-start and mode-end slots from toolbar

Ionic version:  (check one with "x")
[ ] 1.x (For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[ ] 3.x
[x] 4.x
Right now we have mode-start and mode-end to recreate the functionality that start and end used to have.
For example:
v3
<ion-toolbar>
  <ion-buttons start>
    <button ion-button (click)="dismiss()">Cancel</button>
  </ion-buttons>

  <ion-title>
    Filter Sessions
  </ion-title>

  <ion-buttons end>
    <button ion-button (click)="applyFilters()" strong>Done</button>
  </ion-buttons>
</ion-toolbar>

v4
<ion-toolbar>
  <ion-buttons slot="mode-start">
    <ion-button (click)="dismiss()">Cancel</ion-button>
  </ion-buttons>

  <ion-title>
    Filter Sessions
  </ion-title>

  <ion-buttons slot="mode-end">
    <ion-button (click)="applyFilters()" strong>Done</ion-button>
  </ion-buttons>
</ion-toolbar>

I'd like to remove these and instead just use start and end, but first I need to verify that this functionality can still easily be added. The old functionality caused a lot of confusion and wasn't intuitive.
More info here: https://github.com/ionic-team/ionic/blob/master/BREAKING.md#attributes-renamed-4
Useful comments:

https://github.com/ionic-team/ionic/issues/12223#issuecomment-314500797
https://github.com/ionic-team/ionic/issues/6844#issuecomment-362712859

Revert

After some further discussion on this we decided to move forward with the following change in naming:

Old Property
New Property
Property Behavior

start
slot="secondary"
Positions element to the left of the content in ios mode, and directly to the right in md mode.

end
slot="primary"
Positions element to the right of the content in ios mode, and to the far right in md mode.

left
slot="start"
Positions to the left of the content in LTR, and to the right in RTL.

right
slot="end"
Positions to the right of the content in LTR, and to the left in RTL.

This table can also be found in the breaking changes document for v4
Here is a diagram to further explain why we went with this naming convention:


Please update to RC3

Please update to ionic RC3

@aXaki ill get into that in the next few days.

Please update to RC4

I've upgraded the project with the latest ionic version.


Unknown CMake command "configure_package_config_file"

Build fails:
CMake Error at CMakeLists.txt:163 (configure_package_config_file):
  Unknown CMake command "configure_package_config_file".

CMakeLists.txt is missing include(CMakePackageConfigHelpers) that provides this macro.

I cannot reproduce this problem on my end. I guess this include somehow happens transitively or is included by default in my cmake setup.
Can you test whether PR #12 fixes this for you?

Thanks, it work for me.


release type breaks version

using version:
- name: pivnet
  type: docker-image
  source:
    repository: pivotalcf/pivnet-resource
    tag: latest-final

with the following configuration:
- name: pas-tile-2.8
  type: pivnet
  source:
    api_token: ((pivnet-api-token))
    product_slug: elastic-runtime
    product_version: 2.8.*
    release_type: Security Release

Expected:
no results should match
Actual:

Context:
PAS 2.8 has not been released yet to the public.
We use a refresh token that can see all PAS Dev Releases.
There are 2.8 versions available but there are no 2.8 versions that are publicly available.

Thank you, Paul.  I will add this bug to our tracker.

Hi @pnikonowicz.
After investigating, it seems that the expression provided for the product_version is not strict enough. Under the hood, the filtering out for a version uses the regexp.MatchStringhttps://github.com/pivotal-cf/pivnet-resource/blob/7269b361507e0dd2b451f4b8e7f967d7f679239b/filter/filter.go#L40 method provided by the Go regexp library. The asterisk at the end made it so that the period before could be present or not which is why the release of version 2.2.8 was returned.
For the example above, we would recommend writing the product version as 2\.8\.\d+. You should be able to see the expected result of cannot find specified release. Hopefully this was helpful.
Thanks again for submitting this issue! We'll be updating the README to be more clear about this.

Seems like there is already a reference to this in the README located here.
Closing this issue.


Doesn't work with C# System.Uri

Describe the bug
When trying to build a C# class library that uses System.Uri in methods, like the one seen below, I get an "Incorrect function" error. And then trying to consume the library from a C++ app fails at runtime with a class not registered exception. If I omit using System.Uri, it works fine. The Windows Community Toolkit Notifications library is littered with System.Uri and this blocks attempting to make a CsWinRT version of the library for C++ apps.
To Reproduce
Have a C# class library that uses CsWinRT and has a public method that uses C# System.Uri as seen below...
        public ToastContentBuilder AddAudio(System.Uri uri)
        {
            return this;
        }

Build the project. Notice a warning appears while building...
1>CSC : warning CS8785: Generator 'SourceGenerator' failed to generate source. It will not contribute to the output and compilation errors may occur as a result. Exception was of type 'Win32Exception' with message 'Incorrect function'

Attempt to consume the library (as a NuGet in my case) from a C++ app. Notice you get a class not registered exception when trying to access anything from the library in that class.
Expected behavior
It should work? 😊 If you change System.Uri to string, it builds without a warning and is consumable.
Version Info

CsWinRT NuGet: 1.3.3
.NET 5

@andrewleader  Is this a C#/WinRT component? As in, true in the project file?

@j0shuams correct, <CsWinRTComponent>true</CsWinRTComponent> in the C# class library that's exposing a method that uses System.Uri.

It seems that setting <CsWinRTWindowsMetadata>10.0.19041.0</CsWinRTWindowsMetadata> might be a workaround for this, but not sure why yet.


Porting to mermaid v10.0

Deal with multiple JS files instead of single mermaid.min.js

see request https://github.com/mermaid-js/mermaid/issues/4203
see 262 files in<EMAIL_ADDRESS>

Change script-initialization, using the following ESM form in future

<script type="module">
      import mermaid from<EMAIL_ADDRESS>      ...
</script>

or accessing the local files location

Please comment the the Pull Request https://github.com/mersinvald/aquamarine/pull/36

if mermaid modules cannot be loaded, neither form local storage nor form remote unpkg location, the following notice marker is displayed instead of mermaid markdowns

To test the port, change the dependency in Cargo.toml to
[dependencies]
aquamarine = { git = "https://github.com/frehberg/aquamarine.git", branch = "35_port_mermaid_v10" }

@frehberg I'm on it. To streamline the process from now, I'm going to add you as a maintainer too, as I don't get much time to work on this project at the moment.

cool :)
Mike Lubinets @.***> schrieb am Mo., 17. Apr. 2023,
10:53:

@frehberg https://github.com/frehberg I'm on it. To streamline the
process from now, I'm going to add you as a maintainer too, as I don't get
much time to work on this project at the moment.
—
Reply to this email directly, view it on GitHub
https://github.com/mersinvald/aquamarine/issues/35#issuecomment-1510954913,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABB265RHRDCJH2Q5GYWIPQ3XBUAJPANCNFSM6AAAAAAVUPHKHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

cool :)
just, AFAICS, I cannot edit tickets or merge branches yet
Mike Lubinets @.***> schrieb am Mo., 17. Apr. 2023,
11:02:

Closed #35 https://github.com/mersinvald/aquamarine/issues/35 as
completed.
—
Reply to this email directly, view it on GitHub
https://github.com/mersinvald/aquamarine/issues/35#event-9021780372, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABB265QJH6OMOGSXUWXO2KLXBUBJPANCNFSM6AAAAAAVUPHKHA
.
You are receiving this because you were mentioned.Message ID:
@.***>


Cache provider for Service Fabric

It would be very nice for ASP.NET Core apps running on Service Fabric to be able to use SF itself as the IDistributedCache instead of having to rely on SQL or Redis. Any thoughts on implementing this?

👍


Support template rendering

When you have a tybalt component that returns an observable from the setup method, we should pass it to the template and create a render method. For example
const myComponent = defineComponent({
    template: html`

            Seconds Elapsed:
            {{ seconds }}

    `,
    setup() {
        const { handler: setSeconds, observable: seconds } = useObservable(0);
        setInterval(1000, () => setSeconds(seconds + 1));

        return { seconds };
    }
})

should return a web component that displays the number of seconds since the component was attached to the DOM.

I think this is done, but I think we should write an integration test to be sure


What is the status of this effort?

Is the roadmap accurate? I.e., is the survey still being drafted? What's its status?

Nevermind, I found this page and signed up for updates.


docker fails to start when "hosts" key is configured

Distro: Ubuntu 16.04
We need to have docker listen to TCP (inside private network). For this, we use in /etc/docker/daemon.json:
"hosts": ["fd://", "unix:///var/run/docker.sock", "tcp://<IP_ADDRESS>:2376", "tcp://<IP_ADDRESS>:2375"]

As an alternative, we also tried with:
"hosts": ["tcp://<IP_ADDRESS>:2376", "tcp://<IP_ADDRESS>:2375"]

Unfortunately, the systemd service file contains the -H parameter, which seems to conflict with above setting. This leads to docker not starting.
To solve the situation, we have removed -H from the systemd service file. However, now our docker instances "occasionally" fail. More precisely, they fail whenever the docker packages get updated and thus re-enable -H. This is pretty annoying, as it usually happens "at the wrong time".
Is there a recommended method to solve this issue once and forever? Or is this a packaging bug?

hello,
would please tell us your docker version.
docker version

The following information may be useful, so write down the information.

systemd "docker.socket" missing on todays update * docker/for-linux#476

https://github.com/docker/for-linux/issues/476#issuecomment-437210470

systemd "docker.socket" missing on todays update * docker/for-linux#475

https://github.com/docker/for-linux/issues/475#issuecomment-437373774

if your environment is not production, try to remove docker.service on etc. And restart docker.service. In doing so, it replaces the state of change to loading path(/lib/systemd/system/docker.service).

# mv /etc/systemd/system/docker.service ~/

Dear contributor, please tell us good practice and workaround.

would please tell us your docker version.
docker version

Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.4
 Git commit:        e68fc7a
 Built:             Fri Oct 19 19:43:14 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       e68fc7a
  Built:            Thu Sep 27 02:39:50 2018
  OS/Arch:          linux/amd64
  Experimental:     false

plus a bit on the packages:
docker/bionic,now 1.5-1build1 amd64 [instalado]
docker-compose/bionic,bionic,now 1.17.1-2 all [instalado]
docker.io/bionic-updates,now 18.06.1-0ubuntu1~18.04.1 amd64 [instalado]

Note: we were able to work-around this via a systemd service override. I still think a proper solution would be better.

Closing as this is the wrong repo to report this in. Please ask in https://github.com/moby/moby/


Add first pass for baseline pod tests

This bash script is meant to compliment the podman baseline
test script.  It primarily focuses on exercising the common
actions of pods.
Signed-off-by: baude<EMAIL_ADDRESS>

bot, retest this please

@rh-atomic-bot r+

@rh-atomic-bot retry


Invalid header when using Secure Boot and Flash Encryption (IDFGH-9136)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v4.4.3-347-g9ee3c8337d
Operating System used.
macOS
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
What is the expected behavior?
Device to boot normally and perform flash encryption.
What is the actual behavior?
After burning bootloader and firmware get invalid header.
Steps to reproduce.
Following instructions from here: https://docs.espressif.com/projects/esp-idf/en/release-v4.4/esp32s3/security/secure-boot-v2.html
Using secure boot signing key generated by espsecure.py generate_signing_key

Firmware works normally when not encrypted and when secure boot is not enabled.
Burning the signed bootloader and code produces invalid error header. I also burn certs to esp_secure_cert. I have tried burning these secure certs as the first operation and on a separate attempt as the last operation and still get the invalid header error.

ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x7 (TG0WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x40048c3e
invalid header: 0x507bc083
invalid header: 0x507bc083
invalid header: 0x507bc083

I have tried implementing the changes suggested in #5771 and get the same results. See SDKconfig settings below.

SDKCONFIG
#
# Partition Table
#
# CONFIG_PARTITION_TABLE_SINGLE_APP is not set
# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set
# CONFIG_PARTITION_TABLE_TWO_OTA is not set
CONFIG_PARTITION_TABLE_CUSTOM=y
# CONFIG_PARTITION_TABLE_SINGLE_APP_ENCRYPTED_NVS is not set
# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE_ENC_NVS is not set
# CONFIG_PARTITION_TABLE_TWO_OTA_ENCRYPTED_NVS is not set
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_ota.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions_ota.csv"
CONFIG_PARTITION_TABLE_OFFSET=0xA000
CONFIG_PARTITION_TABLE_MD5=y
# end of Partition Table

#
# Bootloader config
#
CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set
CONFIG_BOOTLOADER_LOG_LEVEL_ERROR=y
# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_INFO is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set
CONFIG_BOOTLOADER_LOG_LEVEL=1
CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y
CONFIG_BOOTLOADER_FACTORY_RESET=y
CONFIG_BOOTLOADER_NUM_PIN_FACTORY_RESET=3
CONFIG_BOOTLOADER_FACTORY_RESET_PIN_LOW=y
# CONFIG_BOOTLOADER_FACTORY_RESET_PIN_HIGH is not set
CONFIG_BOOTLOADER_OTA_DATA_ERASE=y
CONFIG_BOOTLOADER_DATA_FACTORY_RESET="nvs"
# CONFIG_BOOTLOADER_APP_TEST is not set
CONFIG_BOOTLOADER_HOLD_TIME_GPIO=5
CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y
CONFIG_BOOTLOADER_WDT_ENABLE=y
# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
# CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK is not set
# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set
CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set
CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y
# end of Bootloader config

#
# Security features
#
CONFIG_SECURE_SIGNED_ON_BOOT=y
CONFIG_SECURE_SIGNED_ON_UPDATE=y
CONFIG_SECURE_SIGNED_APPS=y
CONFIG_SECURE_BOOT_SUPPORTS_RSA=y
CONFIG_SECURE_TARGET_HAS_SECURE_ROM_DL_MODE=y
CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME=y
CONFIG_SECURE_BOOT=y
CONFIG_SECURE_BOOT_V2_ENABLED=y
CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES=y
CONFIG_SECURE_BOOT_SIGNING_KEY="secure_boot_signing_key.pem"
# CONFIG_SECURE_BOOT_ENABLE_AGGRESSIVE_KEY_REVOKE is not set
CONFIG_SECURE_BOOT_INSECURE=y
CONFIG_SECURE_FLASH_ENC_ENABLED=y
CONFIG_SECURE_FLASH_ENCRYPTION_AES128=y
# CONFIG_SECURE_FLASH_ENCRYPTION_AES256 is not set
# CONFIG_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT is not set
CONFIG_SECURE_FLASH_ENCRYPTION_MODE_RELEASE=y

#
# Potentially insecure options
#
# CONFIG_SECURE_BOOT_ALLOW_JTAG is not set
# CONFIG_SECURE_BOOT_ALLOW_SHORT_APP_PARTITION is not set
# CONFIG_SECURE_BOOT_V2_ALLOW_EFUSE_RD_DIS is not set
# CONFIG_SECURE_BOOT_ALLOW_UNUSED_DIGEST_SLOTS is not set
# end of Potentially insecure options

CONFIG_SECURE_FLASH_CHECK_ENC_EN_IN_APP=y
# CONFIG_SECURE_DISABLE_ROM_DL_MODE is not set
# CONFIG_SECURE_ENABLE_SECURE_ROM_DL_MODE is not set
CONFIG_SECURE_INSECURE_ALLOW_DL_MODE=y
# end of Security features

Partition Table
esp_secure_cert, 0x3F,    ,     0xD000,   0x6000,   encrypted
nvs,             data, nvs,     0x13000,  0x6000,
otadata,         data, ota,     0x19000,  0x2000,   encrypted
phy_init,        data, phy,     0x1b000,  0x1000,   encrypted
factory,         app,  factory,        ,      5M,   encrypted
ota_0,           app,  ota_0,          ,      5M,   encrypted
ota_1,           app,  ota_1,          ,      5M,   encrypted
storage,         data, nvs,            , 0x10000,   encrypted
nvs_key,         data, nvs_keys,       , 0x1000,    encrypted

Build or installation Logs.
No response
More Information.
No response

@davidallenmann
It is not recommended to flash plain-text build artifacts once you enable flash encryption in release mode. I am afraid but this probably means that you have no way to recover this device now. Can you please confirm how you had generated the flash encryption key? Was it through bootloader or you had externally programmed it?

I don't believe I flashed any plain-text build artifacts after enabling flash encryption, unless one of these steps caused a system reset. The three steps below were performed without cycling power or resetting the ESP32-S3
The flash encryption key was generated by the ESP32-S3 I believe using the menuconfig settings.
The secure boot signing key was generated by espsecure.py generate_signing_key.
I performed three flashes usually in this order (on my last attempt I also tried with the secure_certs flash step last instead of first--in case they were getting written over).

secure_certs:

python3 configure_esp_secure_cert.py -p /dev/cu.usbserial-110 --keep_ds_data_on_host --ca-cert root_cert_auth.pem --device-cert $1/cert.pem --private-key $1/private.key --target_chip esp32s3 --secure_cert_type cust_flash
esptool.py --no-stub --port /dev/cu.usbserial-110 write_flash 0xD000 $1/esp_ds_data/esp_secure_cert.bin

encrypted bootloader:
esptool.py write_flash
using command suggested by idf.py bootloader

binary:
Note the command suggested by the idf.py for flashing generated an error on my second attempt at this. This error is below.
So, flashed with: idf.py flash on each of my 3 attempts (I used new modules each time).

I tried this with 3 modules making some changes each time
Attempt 1: IDF v4.4
Attempt 2: Updated IDF to latest 4.4.3
Attempt 3: Set to Allow potentially insecure options. And enable ROM download mode.  Flash bootloader. Flash binary. Flash certs (last).  Already showing invalid header without reset on serial monitor.
/.espressif/python_env/idf4.4_py3.9_env/bin/python ../../../esp/esp-idf-v4.4.2/components/esptool_py/esptool/esptool.py -p /dev/cu.usbserial-110 -b 460800 --before default_reset --after no_reset --chip esp32s3 --no-stub write_flash --flash_mode dio --flash_size keep --flash_freq 80m 0xa000 build/partition_table/partition-table.bin 0x19000 build/ota_data_initial.bin 0x20000 build/xxxxx.bin
esptool.py v3.3.2
Serial port /dev/cu.usbserial-110
Connecting....
Chip is ESP32-S3
Features: WiFi, BLE
Crystal is 40MHz
MAC: f4:12:fa:d8:7e:b0
Changing baud rate to 460800
Changed.
Enabling default SPI flash mode...
Configuring flash size...
Flash will be erased from 0x0000a000 to 0x0000afff...
Flash will be erased from 0x00019000 to 0x0001afff...
Flash will be erased from 0x00020000 to 0x00480fff...
Erasing flash...
Took 0.08s to erase flash block
Wrote 3072 bytes at 0x0000a000 in 0.2 seconds (99.9 kbit/s)...
Hash of data verified.
Erasing flash...
Took 0.08s to erase flash block
Wrote 8192 bytes at 0x00019000 in 0.7 seconds (100.1 kbit/s)...
Hash of data verified.
Erasing flash...

A fatal error occurred: Failed to enter Flash download mode (result was 01066430: Operation or feature not supported)

@davidallenmann
Can you please check if you can get the efuse summary of the device using:
espefuse.py --chip esp32s3 summary

If this command does not work then most likely you have secure ROM DL mode enabled on the device, in that case please run following command:
esptool.py --no-stub --chip esp32s3 get_security_info

Please share the results here.

esptool.py --no-stub --chip esp32s3 --port  /dev/cu.usbserial-110 get_security_info
esptool.py v3.3.2
Serial port /dev/cu.usbserial-110
Connecting....
Chip is ESP32-S3 in Secure Download Mode
Enabling default SPI flash mode...
Flags: 0x000006f5 (0b11011110101)
Flash_Crypt_Cnt: 0x0
Key_Purposes: (9, 4, 0, 0, 0, 0, 12)
Chip_ID: 9
Api_Version: 0
Hard resetting via RTS pin...

@davidallenmann

Key_Purposes: (9, 4, 0, 0, 0, 0, 12)

As per this both flash enc key and secure boot digest has been programmed on the device. EFuse purpose codes for S3 can be found here.

Flash_Crypt_Cnt: 0x0

This suggests that flash encryption is not yet enabled on this device. Probably flash encryption sequence was not completed on this device. Please try flashing plaintext artifacts (bootloader, partition-table and application) again, and then flash encryption sequence should start again. Note: basic flash writes are supported in secure DL mode with --no-stub argument to esptool.

I am able to reflash the encyrpted bootloader.
I get the following error when flashing the boot table and binary.
I got this error the first time I tried writing the binary with esptool.py on one of my previous attempts
python esptool.py -p /dev/cu.usbserial-110 -b 460800 --before default_reset --after no_reset --chip esp32s3 --no-stub write_flash --flash_mode dio --flash_size keep --flash_freq 80m 0xa000 build/partition_table/partition-table.bin 0x19000 build/ota_data_initial.bin 0x20000 build/xxxxxx.bin
esptool.py v3.3.2
Serial port /dev/cu.usbserial-110
Connecting....
Chip is ESP32-S3 in Secure Download Mode
Changing baud rate to 460800
Changed.
Enabling default SPI flash mode...
Configuring flash size...
Flash will be erased from 0x0000a000 to 0x0000afff...
Flash will be erased from 0x00019000 to 0x0001afff...
Flash will be erased from 0x00020000 to 0x00480fff...
Erasing flash...
Took 0.09s to erase flash block
Wrote 3072 bytes at 0x0000a000 in 0.3 seconds (96.4 kbit/s)...
Erasing flash...
Took 0.13s to erase flash block
Wrote 8192 bytes at 0x00019000 in 0.7 seconds (96.4 kbit/s)...
Erasing flash...

A fatal error occurred: Failed to enter Flash download mode (result was 01060000: Operation or feature not supported)

@davidallenmann
It is difficult to say why this issue occurred in your setup. However, you can enable both flash enc and secure boot simultaneously, there should not be a problem with that.
Regarding flash write error, please see my earlier comment about --no-stub argument to esptool command. Since secure ROM DL mode is already enabled, providing --no-stub is mandatory during flash write. Please refer to docs for this at https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/security/security.html#uart-dl-mode

@mahavirj
--no-stub is in the command that fails (see output above). It seems to successfully write the partition table but fails when writing the binary

Aha, my bad! Indeed the command looks correct. I am not sure why it failed when it reached to the application partition erase stage. Would you mind trying this workflow on official S3 devkit once?

I am using my own boards and programming with a serial programmer that has DTR tied to GPIO0. EN pin is connected to RTS. Not sure if that could cause a reset at some point in the flashing process.

Recommend checking this against our official S3 devkits schematics available at https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/index.html#hardware
CC @radimkarnis

I get the same error using the ESP32-S3-WROOM2 DEVKIT-C board (changed to octal flash mode in menuconfig and recompiled).
python  esptool.py --chip esp32s3 --port=/dev/cu.usbserial-110 --baud=460800 --before=default_reset --after=no_reset --no-stub write_flash --flash_mode dio --flash_freq 80m --flash_size 16MB 0x0 bootloader.bin
esptool.py v3.3.2
Serial port /dev/cu.usbserial-110
Connecting....
Chip is ESP32-S3
Features: WiFi, BLE
Crystal is 40MHz
MAC: 68:b6:b3:3b:af:b4
Changing baud rate to 460800
Changed.
Enabling default SPI flash mode...
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00009fff...
Erasing flash...
Flash params set to 0x024f
Took 0.29s to erase flash block
Wrote 40960 bytes at 0x00000000 in 3.3 seconds (99.1 kbit/s)...
Hash of data verified.

Leaving...
Staying in bootloader.
python esptool.py -p /dev/cu.usbserial-110 -b 460800 --before default_reset --after no_reset --chip esp32s3 --no-stub write_flash --flash_mode dio --flash_size keep --flash_freq 80m 0xa000 build/partition_table/partition-table.bin 0x20000 build/xxxxx.bin
esptool.py v3.3.2
Serial port /dev/cu.usbserial-110
Connecting....
Chip is ESP32-S3
Features: WiFi, BLE
Crystal is 40MHz
MAC: 68:b6:b3:3b:af:b4
Changing baud rate to 460800
Changed.
Enabling default SPI flash mode...
Configuring flash size...
Flash will be erased from 0x0000a000 to 0x0000afff...
Flash will be erased from 0x00020000 to 0x00480fff...
Erasing flash...
Took 0.08s to erase flash block
Wrote 3072 bytes at 0x0000a000 in 0.2 seconds (101.1 kbit/s)...
Hash of data verified.
Erasing flash...

A fatal error occurred: Failed to enter Flash download mode (result was 01063136: Operation or feature not supported)
davidmann@Davids-Macbook haiku2 % /Users/davidmann/.espressif/python_env/idf4.4_py3.9_env/bin/python  /Users/davidmann/esp/esp-idf-v4.4.2/components/esptool_py/esptool/esptool.py --chip esp32s3 --port=/dev/cu.usbserial-110 --baud=460800 --before=default_reset --after=no_reset --no-stub write_flash --flash_mode dio --flash_freq 80m --flash_size 16MB 0x0 /Users/davidmann/w/haiku2-release/haiku2/build/bootloader/bootloader.bin
esptool.py v3.3.2
Serial port /dev/cu.usbserial-110
Connecting....
Chip is ESP32-S3
Features: WiFi, BLE
Crystal is 40MHz
MAC: 68:b6:b3:3b:af:b4
Changing baud rate to 460800
Changed.
Enabling default SPI flash mode...
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00009fff...
Erasing flash...
Flash params set to 0x024f
Took 0.29s to erase flash block
Wrote 40960 bytes at 0x00000000 in 3.3 seconds (99.1 kbit/s)...
Hash of data verified.

Leaving...
Staying in bootloader.
davidmann@Davids-Macbook haiku2 % /Users/davidmann/.espressif/python_env/idf4.4_py3.9_env/bin/python ../../../esp/esp-idf-v4.4.2/components/esptool_py/esptool/esptool.py -p /dev/cu.usbserial-110 -b 460800 --before default_reset --after no_reset --chip esp32s3 --no-stub write_flash --flash_mode dio --flash_size keep --flash_freq 80m 0xa000 build/partition_table/partition-table.bin 0x20000 build/haiku2.bin
esptool.py v3.3.2
Serial port /dev/cu.usbserial-110
Connecting....
Chip is ESP32-S3
Features: WiFi, BLE
Crystal is 40MHz
MAC: 68:b6:b3:3b:af:b4
Changing baud rate to 460800
Changed.
Enabling default SPI flash mode...
Configuring flash size...
Flash will be erased from 0x0000a000 to 0x0000afff...
Flash will be erased from 0x00020000 to 0x00480fff...
Erasing flash...
Took 0.08s to erase flash block
Wrote 3072 bytes at 0x0000a000 in 0.2 seconds (101.1 kbit/s)...
Hash of data verified.
Erasing flash...

A fatal error occurred: Failed to enter Flash download mode (result was 01063136: Operation or feature not supported)

Security Info
esptool.py --no-stub --chip esp32s3 --port  /dev/cu.usbserial-110 get_security_info
esptool.py v3.3.2
Serial port /dev/cu.usbserial-110
Connecting...
Chip is ESP32-S3
Features: WiFi, BLE
Crystal is 40MHz
MAC: 68:b6:b3:3b:af:b4
Enabling default SPI flash mode...
Flags: 0x00000680 (0b11010000000)
Flash_Crypt_Cnt: 0x7
Key_Purposes: (4, 0, 0, 0, 0, 0, 12)
Chip_ID: 9
Api_Version: 0
Hard resetting via RTS pin...

I also tried increasing the partition table offset just in case there needed to be space (as it was there was exact byte alignment)

A test on a new board works with only Flash encryption enabled and UART ROM download mode permanently disabled.
So, it seems to have something to do with Secure Boot.

Hi @davidallenmann!
I tested SB + FE  for ESP32-S3 on the IDF v4.4.3-347-g9ee3c8337d version, it works, no issue that you have faced.
Here https://github.com/espressif/esp-idf/issues/10535#issuecomment-1385642447, it is strange why do you flash the bootloader twice?
Could you describe all steps that you do? I do not fully understand it.
In a simple way you need:

have erased flash
idf.py build with enabled options:

CONFIG_SECURE_BOOT=y
CONFIG_SECURE_BOOT_V2_ENABLED=y
CONFIG_SECURE_BOOT_SIGNING_KEY="test/secure_boot_signing_key.pem"
CONFIG_SECURE_FLASH_ENC_ENABLED=y

idf.py bootloader-flash (flash only bootloader). SB and FE will not be enabled until the partition table and app be found.
idf.py flash monitor. If you have an issue at this stage then you need to flash the partition table at the end. It will help you to prevent enabling FE and SB until everything will be completely flashed.

What is your connection to chip? Is it a built-in USB-UART into S3 chip or an external USB-UART?
Minor: about Partition Table. You need to remove all offsets in your partition_table.csv file and use only CONFIG_PARTITION_TABLE_OFFSET=0xA000, in this case, esp_secure_cert should go into 0xD000 and the following go right after the previous partition. You will get the same result, and the ability to move it, only change one Kconfig option (CONFIG_PARTITION_TABLE_OFFSET).

The following worked. I think the issue may have either been the order of operations or the partition table offset being wrong. Thanks so much for your help.
Using ESP32-S3-WROOM2 DevKit-C and USB cable connected to UART port.
Set partition table offset to 0xC000 and removed offsets in partition_table.csv

esptool.py  --port /dev/cu.usbserial-110 erase_flash
idf.py bootloader
python  esptool.py --chip esp32s3 --port=/dev/cu.usbserial-110 --baud=460800 --before=default_reset --after=no_reset --no-stub write_flash --flash_mode dout --flash_freq 80m --flash_size 16MB 0x0 bootloader.bin
Flash security creds
idf.py build
idf.py --port /dev/cu.usbserial-110 flash -b 1500000 monitor

Summary:
The bootloader with SB + FE for ESP32-S3 takes 45056 bytes  [0x0000 - 0xAFFFF].
Your partition table was at offset 0xA000 (see CONFIG_PARTITION_TABLE_OFFSET in sdkconfig)
So it means that the last sector of the bootloader was overwritten when you flash the partition table. The last sector of the bootloader is the signature of the secure boot.
The build system should throw an error.
Error: Bootloader binary size 0xb000 bytes is too large for partition table offset 0xa000. Bootloader binary can be maximum 0xa000 (40960) bytes unless the partition table offset is increased in the Partition Table section of the project configuration menu.

But is still not clear to me how you get invalid header: 0x507bc083, seems, at some point, you overwrite the bootloader with a new one after flash encryption was already enabled.  Please expose your steps how did you reach this state? (it can help us to prevent it in the future for other users). Thanks.

Updating to latest secure cert library still gives the no bootable app partitions issue.

I first uploaded without Secure Boot enabled and without flash encryption to make sure the new secure cert library was working correctly, which it was.

Turned on Secure Boot and Flash Encryption.

Built and flashed bootloader

Generated signed binary image /Users/davidmann/w/haiku2-release/haiku2/build/bootloader/bootloader.bin from /Users/davidmann/w/haiku2-release/haiku2/build/bootloader/bootloader-unsigned.bin
[4/4] Completed 'bootloader'

Bootloader build complete.
davidmann@Davids-Macbook haiku2 %  /Users/davidmann/.espressif/python_env/idf4.4_py3.9_env/bin/python  /Users/davidmann/esp/esp-idf-v4.4.2/components/esptool_py/esptool/esptool.py --chip esp32s3 --port=/dev/cu.usbserial-110 --baud=460800 --before=default_reset --after=no_reset --no-stub write_flash --flash_mode dout --flash_freq 80m --flash_size 16MB 0x0 /Users/davidmann/w/haiku2-release/haiku2/build/bootloader/bootloader.bin
esptool.py v3.3.2
Serial port /dev/cu.usbserial-110
Connecting....
Chip is ESP32-S3
Features: WiFi, BLE
Crystal is 40MHz
MAC: f4:12:fa:db:bb:94
Changing baud rate to 460800
Changed.
Enabling default SPI flash mode...
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00009fff...
Erasing flash...
Flash params set to 0x034f
Took 0.36s to erase flash block
Wrote 40960 bytes at 0x00000000 in 3.3 seconds (98.1 kbit/s)...
Hash of data verified.

Leaving...
Staying in bootloader.

idf.py build
idf.py flash monitor

esptool.py v3.3.2
Creating esp32s3 image...
Merged 2 ELF sections
Successfully created esp32s3 image.
Generated /Users/davidmann/w/haiku2-release/haiku2/build/haiku2-unsigned.bin
[1399/1400] Generating signed binary image
espsecure.py v3.3.2
1 signing key(s) found.
Signed 4521984 bytes of data from /Users/davidmann/w/haiku2-release/haiku2/build/haiku2-unsigned.bin. Signature sector now has 1 signature blocks.
Generated signed binary image /Users/davidmann/w/haiku2-release/haiku2/build/haiku2.bin from /Users/davidmann/w/haiku2-release/haiku2/build/haiku2-unsigned.bin
[1400/1400] cd /Users/davidmann/w/haiku2-release/haiku2/build/esp-idf/esptool_py && /Use...tion_table/partition-table.bin /Users/davidmann/w/haiku2-release/haiku2/build/haiku2.bin
haiku2.bin binary size 0x451000 bytes. Smallest app partition is 0x500000 bytes. 0xaf000 bytes (14%) free.

Project build complete. To flash, run this command:
/Users/davidmann/.espressif/python_env/idf4.4_py3.9_env/bin/python ../../../esp/esp-idf-v4.4.2/components/esptool_py/esptool/esptool.py -p (PORT) -b 460800 --before default_reset --after no_reset --chip esp32s3 --no-stub write_flash --flash_mode dio --flash_size keep --flash_freq 80m 0xc000 build/partition_table/partition-table.bin 0x19000 build/ota_data_initial.bin 0x20000 build/haiku2.bin
or run 'idf.py -p (PORT) flash'
davidmann@Davids-Macbook haiku2 % idf.py --port /dev/cu.usbserial-110 flash -b 1500000 monitor
Executing action: flash
Running ninja in directory /Users/davidmann/w/haiku2-release/haiku2/build
Executing "ninja flash"...
[1/5] cd /Users/davidmann/w/haiku2-release/haiku2/build/esp-idf/esptool_py && /Users/dav...tion_table/partition-table.bin /Users/davidmann/w/haiku2-release/haiku2/build/haiku2.bin
haiku2.bin binary size 0x451000 bytes. Smallest app partition is 0x500000 bytes. 0xaf000 bytes (14%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cd /Users/davidmann/w/haiku2-release/haiku2/build/bootloader/esp-idf/esptool_py && /Users/davidmann/.espressif/python_env/idf4.4_py3.9_env/bin/python /Users/davidmann/esp/esp-idf-v4.4.2/components/partition_table/check_sizes.py --offset 0xc000 bootloader 0x0 /Users/davidmann/w/haiku2-release/haiku2/build/bootloader/bootloader.bin
Bootloader binary size 0xa000 bytes. 0x2000 bytes (17%) free.
[2/3] cd /Users/davidmann/esp/esp-idf-v4.4.2/components/esptool_py && /opt/homebrew/Cell...uild" -P /Users/davidmann/esp/esp-idf-v4.4.2/components/esptool_py/run_serial_tool.cmake
esptool.py esp32s3 -p /dev/cu.usbserial-110 -b 1500000 --before=default_reset --after=no_reset --no-stub write_flash --flash_mode dio --flash_freq 80m --flash_size 16MB 0x20000 haiku2.bin 0xc000 partition_table/partition-table.bin 0x19000 ota_data_initial.bin
esptool.py v3.3.2
Serial port /dev/cu.usbserial-110
Connecting....
Chip is ESP32-S3
Features: WiFi, BLE
Crystal is 40MHz
MAC: f4:12:fa:db:bb:94
Changing baud rate to 1500000
Changed.
Enabling default SPI flash mode...
Configuring flash size...
Flash will be erased from 0x00020000 to 0x00470fff...
Flash will be erased from 0x0000c000 to 0x0000cfff...
Flash will be erased from 0x00019000 to 0x0001afff...
Erasing flash...
Took 8.13s to erase flash block
Writing at 0x00020000... (0 %)
Writing at 0x00020400... (0 %)
Writing at 0x00020800... (0 %)
Writing at 0x00020c00... (0 %)
Writing at 0x00021000... (0 %)
Writing at 0x00021400... (0 %)
Writing at 0x00021800... (0 %)
Writing at 0x00021c00... (0 %)
Writing at 0x00022000... (0 %)
Writing at 0x00022400... (0 %)
Writing at 0x00022800... (0 %)
Writing at 0x00022c00... (0 %)
Writing at 0x00023000... (0 %)
Writing at 0x00023400... (0 %)
Writing at 0x00023800... (0 %)
Writing at 0x00023c00... (0 %)
Writing at 0x00024000... (0 %)
Writing at 0x00024400... (0 %)
Writing at 0x00024800... (0 %)
Writing at 0x00024c00... (0 %)
Writing at 0x00025000... (0 %)
Writing at 0x00025400... (0 %)
Writing at 0x00025800... (0 %)
Writing at 0x00025c00... (0 %)
Writing at 0x00026000... (0 %)
Writing at 0x00026400... (0 %)
Writing at 0x00026800... (0 %)

Writing at 0x0046f800... (99 %)
Writing at 0x0046fc00... (99 %)
Writing at 0x00470000... (99 %)
Writing at 0x00470400... (99 %)
Writing at 0x00470800... (99 %)
Writing at 0x00470c00... (100 %)
Wrote 4526080 bytes at 0x00020000 in 296.7 seconds (122.0 kbit/s)...
Hash of data verified.
Erasing flash...
Took 0.09s to erase flash block
Writing at 0x0000c000... (33 %)
Writing at 0x0000c400... (66 %)
Writing at 0x0000c800... (100 %)
Wrote 3072 bytes at 0x0000c000 in 0.2 seconds (125.4 kbit/s)...
Hash of data verified.
Erasing flash...
Took 0.11s to erase flash block
Writing at 0x00019000... (12 %)
Writing at 0x00019400... (25 %)
Writing at 0x00019800... (37 %)
Writing at 0x00019c00... (50 %)
Writing at 0x0001a000... (62 %)
Writing at 0x0001a400... (75 %)
Writing at 0x0001a800... (87 %)
Writing at 0x0001ac00... (100 %)
Wrote 8192 bytes at 0x00019000 in 0.5 seconds (125.1 kbit/s)...
Hash of data verified.

Leaving...
Staying in bootloader.
Executing action: monitor
Running idf_monitor in directory /Users/davidmann/w/haiku2-release/haiku2
Executing "/Users/davidmann/.espressif/python_env/idf4.4_py3.9_env/bin/python /Users/davidmann/esp/esp-idf-v4.4.2/tools/idf_monitor.py -p /dev/cu.usbserial-110 -b 115200 --toolchain-prefix xtensa-esp32s3-elf- --target esp32s3 /Users/davidmann/w/haiku2-release/haiku2/build/haiku2.elf -m '/Users/davidmann/.espressif/python_env/idf4.4_py3.9_env/bin/python' '/Users/davidmann/esp/esp-idf-v4.4.2/tools/idf.py' '--port' '/dev/cu.usbserial-110'"...
--- idf_monitor on /dev/cu.usbserial-110 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DOUT, clock div:1
load:0x3fce3970,len:0x2604
load:0x403c9700,len:0xcc4
load:0x403cc700,len:0x4d84
SHA-256 comparison failed:
Calculated: 75267704ce9a3f91b5be85dcf5669a015759d3683ff7e3d6d86e11124b13aa70
Expected: f1354bfaeb76fdbdf87fcce2accbb10a850ba5ae76ada3661fba9e7a86a62a5b
Attempting to boot anyway...
entry 0x403c9928
Sig block 0 invalid: Image digest does not match
E (943) secure_boot_v2: Secure Boot V2 verification failed.
E (943) esp_image: Secure boot signature verification failed
E (952) esp_image: Image hash failed - image is corrupt
E (954) secure_boot_v2: bootloader image appears invalid! error 8194
E (962) boot: Secure Boot v2 failed (8194)
E (966) boot: Factory app partition is not bootable
E (972) esp_image: image at 0x520000 has invalid magic byte (nothing flashed here?)
E (980) boot: OTA app partition slot 0 is not bootable
E (986) esp_image: image at 0xa20000 has invalid magic byte (nothing flashed here?)
E (994) boot: OTA app partition slot 1 is not bootable
E (1000) boot: No bootable app partitions in the partition table

Hi @davidallenmann!
You get the issue SHA-256 comparison failed because your settings in sdkconfig and  esptool.py write_flash  ....bootloader.bin are different. The bootloader image is overwritten by the given options (--flash_mode dout --flash_freq 80m --flash_size 16MB) during writing (note that, the bootloader file is not changed). Please make sure that ESPTOOLPY_FLASHMODE ESPTOOLPY_FLASHFREQ ESPTOOLPY_FLASHSIZE are set as required.
This log is from ROM bootloader (it says that the 2nd stage bootloader image was changed):
SHA-256 comparison failed:
Calculated: 75267704ce9a3f91b5be85dcf5669a015759d3683ff7e3d6d86e11124b13aa70
Expected: f1354bfaeb76fdbdf87fcce2accbb10a850ba5ae76ada3661fba9e7a86a62a5b

When your sdkconfig options are not consistent with --flash_... options then the esptool overwrites the header of the bootloader but does not update the sha256 at the end of the image and signatures. So it makes secure boot not workable.
python  esptool.py --chip esp32s3 --port=/dev/cu.usbserial-110 --baud=460800 \
--before=default_reset  --after=no_reset --no-stub \
write_flash \
--flash_mode dout \
--flash_freq 80m \
--flash_size 16MB \
0x0 bootloader.bin

When the image flash configs are overwritten then you see this log: Flash params set to 0x034f

I am glad to hear that you managed to get it workable.
(I suspect that the original issue was that the bootloader was overwritten by the plain-text image when FE was already enabled.)


Improve Button and ToggleButton styling

What does the pull request do?
It makes it easier to change the Button's and ToggleButton's Background and BorderBrush on pressed, pointerover and checked etc.
What is the current behavior?
Currently one has to target the ContentPresenter within the template to change these properties
What is the updated/expected behavior with this PR?
Target this:
Button:pressed
instead of:
Button:pressed /template/ ContentPresenter
##Fixed issues
Closes #1102

I don't think this is a breaking change. Old selectiors should still work.

History of commits looks odd. Something with resolving conflicts?

History of commits (and diff) looks odd. Something with resolving conflicts?

I merged it from master branch that's why I'm going to close this and merge another clean one


Fix: discover hook paths

the pr has two minor fixes

stop adding empty strings to the plugin paths
make sure plugin paths are unique. definitely one does not want to load the same plugin two times. the easiest way to do so is to set FTRACK_CONNECT_PLUGIN_PATH to defaultPluginDirectory. but there is another possibilitie of misuse with FTRACK_EVENT_PLUGIN_PATH.

Hi @blockinhead
could you please update the release notes file with the changes ?
As is likely to be new please simply add:
`.. release:: Upcoming
.. change:: fixed
    :tags: API

    <ADD A DESCRIPITION OF THE BUG>

`

i've merged the most recent main and updated the releas_notes.rst
hope i've done everything correctly :)

@blockinhead looks great, thanks !
Going to merge !


no artist support

gamdl supports entire discography or apple artist link support. Can we get that in this bot too? or that alac, binaural etc?

Preparations are being made to follow up on the new version of gamdl, and it will be updated when it stabilizes this version.

It will be changed very soon, thanks!


Hi!You have a great job,could I ask you some questions?

I'm interested in your work,how to use encoder to train SAC?What's the input of DRL algorithm?And which is the way to use your work to train Kuka envrionment?

For Encoder
There is a config file under the config folder which is called gripper_grasp.yaml, you can modify the file to change perception type, curriculum parameters, or SAC parameters This file you need to change this line to False. If depth and full observation are both set to false, the autoencoder perception will be used by default.
To train with SAC you need to simply pass --algo SAC argument when you start the training. For example
python manipulation_main/training/train_stable_baselines.py train --config config/gripper_grasp.yaml --algo SAC --model_dir SAC_auto_ecoder --timestep 100000 -v
This line will simply start a new training with SAC algorithm 100k steps using the gripper_grasp.yaml configuration parameters. You can omit the final -v which only starts the PyBullet GUI.
Input of DRL Algorithm
DRL algorithm takes the state observation and outputs the actions which maximize the expected reward. Notice that state observation changes with the setting you set in gripper_grasp.yaml.  This is where we set the observation space. Here we set the camera based on the perception type you enter in gripper_grasp.yaml.
Kuka Robot Training
I recently pushed the Kuka environment code to the KukaExt branch.
SImply do git checkout kukaExt under the repository folder. There you can play with the Kuka Robot environment. Notice that now config file is different it takes different robot path. So now you can try to run pre-trained models by
python manipulation_main/training/train_stable_baselines.py run --model trained_models/table_clearing/SAC_real_2m_buffer_128/best_model/best_model.zip -v
or fine-tune a pre-trained model with
python manipulation_main/training/train_stable_baselines.py train --config config/gripper_grasp.yaml --algo SAC --model_dir test_kuka_train_load --load_dir trained_models/table_clearing/SAC_real_2m_buffer_128/best_model/best_model.zip -v
or simply train the Kuka robot from zero
python manipulation_main/training/train_stable_baselines.py train --config config/gripper_grasp.yaml --algo SAC --model_dir kuka_train --timesteps 1000000
Hope this helps :)

Thanks for your help!


appcenter: command not found. Mac OS and ZSH

I'm installing appcenter on my react native project and I'm following the instructions on the docs. However, I can't use any appcenter command on my terminal.
 But nothing. I always get zsh: command not found: appcenter.
My setup is
Mac OS High Sierra, 10.13.5
Node 9.11.2
npm 5.6.0
Any help is appreciated.

Hey there @otaviogaiao! Let's debug. First, you have to install Node.js version 8 or higher. When you run npm install -g appcenter-cli, what is the error message that appears?

@otaviogaiao no problem, and cool 💯 !

@amchew Hi Amanda, hoping you can help. I'm oddly getting the same issue here
$ npm install -g appcenter-cli
npm WARN deprecated<EMAIL_ADDRESS>please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js
/usr/local/Cellar/node/9.11.1/bin/appcenter -> /usr/local/Cellar/node/9.11.1/lib/node_modules/appcenter-cli/bin/appcenter.js
+<EMAIL_ADDRESS>updated 1 package in 11.82s

$ appcenter
-bash: appcenter: command not found

Not sure what I'm doing wrong.

I have the same problem on my new machine.
npm: 5.6.0
node: 8.11.3
Any news?

BLOCK 1
$ npm install -g<EMAIL_ADDRESS>/Users/mm/.nvm/versions/node/v8.16.1/bin/appcenter -> /Users/mm/.nvm/versions/node/v8.16.1/lib/node_modules/appcenter-cli/bin/appcenter.js

><EMAIL_ADDRESS>postinstall /Users/mm/.nvm/versions/node/v8.16.1/lib/node_modules/appcenter-cli/node_modules/fast-xml-parser
> node tasks/postinstall.js || exit 0

Love fast-xml-parser? Check https://amitkumargupta.work for more projects and contribution.

npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.

+<EMAIL_ADDRESS>added 496 packages from 433 contributors in 18.045s
$ appcenter -v

BLOCK 2
$ appcenter -v
-bash: appcenter: command not found
$ nvm use --delete-prefix v10.15.3
N/A: version "v10.15.3 -> N/A" is not yet installed.

You need to run "nvm install v10.15.3" to install it before using it.
$ nvm use --delete-prefix 8
Now using node v8.16.1 (npm v6.4.1)
$ appcenter -v
appcenter command requires at least node version 10.0.0.
You are currently running version v8.16.1.
Please upgrade your version of node.js to at least 10.0.0
$ nvm use --delete-prefix 10
Now using node v10.16.3 (npm v6.9.0)
$ appcenter -v
-bash: appcenter: command not found

MACOS 10.14.5
Node 8 / 10 - npm v6.9.0
Anyone tell me what should i do now?

Oh<EMAIL_ADDRESS>only works on node 10.0.0. not work on node v10.16.3. thanks

appcenter version 2.1.2
node v10.16.3
react-native . 0.58.5
while linking react-native link appcenter
error shows  command not found

Is it still not working with these versions of tools?
appcenter-cli v2.3.0
node v10.16.3
npm v6.9.0

As mentioned in one of the comments before, appcenter-cli is installed under another version of node:
➜  npm install -g appcenter-cli
/usr/local/Cellar/node/10.8.0/bin/appcenter -> /usr/local/Cellar/node/10.8.0/lib/node_modules/appcenter-cli/bin/appcenter.js
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.

+<EMAIL_ADDRESS>updated 1 package in 16.073s
➜  node -v
v10.16.3
➜  npm -v
6.9.0
➜  appcenter
zsh: command not found: appcenter

PS: as a workaround I can run it via /usr/local/Cellar/node/10.8.0/bin/appcenter ...

@sergii-frost can you explain further on how I can run the workaround?

For anyone else still facing this issue, try using yarn to install appcenter-cli, i spent almost an hour and at last went with yarn and it works as a charm
yarn global add appcenter-cli

This fixed it. Thank you, Ravindran!

Getting similar, i'll try figure

Figured in the end

tl;dr
echo 'export PATH="/opt/homebrew/Cellar/bin:$PATH"' >> /Users/<u>/.zprofile

(to not restart ur terminal)
source ~/.zprofile

This worked for me, thanks @ravindranpandu. Just used yarn and it worked 🎉

For anyone else still facing this issue, try this command. This worked for me!!
npm install --location=global appcenter-cli


Selected texts are not visible

@Mangeshrex
Hi!
I think the selected texts are not visible enough in terminal or in chrome url bar ...

Hi @sttatusx! Thank you for the report, we will take a deeper look and fix this ASAP

ive had same problem like yours, will push the fix asap

as per https://github.com/Everblush/gtk/commit/40dd115700143b11f2296999ac48499d16c5a1aa commit, the problem will be fixed. Feel free to reopen this issue or make a new issue if the problem persist

good work @samuelnihbos


App-level providers don't seem to work anymore

Let's assume we have a a custom provider in application/config/generated_overrides/app.php like this:
return array(
    'providers' => array(
        'my_provider' => 'Application\\Src\\PrettyNiceProvider',
    ),
);

in an earlier v8 beta it resolved to autoload the class located at application/src/PrettyNiceProvider.php, now it throws an exception:
Fatal error:
Class
'Application\Src\PrettyNiceProvider'
not found in
concrete/src/Foundation/Service/ProviderList.php on line 32

Maybe the new class paths are \Application\Concrete mapped to files at application/src/Concrete?

Looking at the class loader, we have this now which allows enabling the \Application\Src namespace as it's apparently disabled by default.
A little bit of a tangent/rant here due to pain reading this code:
Following this code kinda sucks because the ClassLoader->enableLegacyNamespace() method doesn't follow the existing convention set by $package->enableLegacyNamespace(), and the method name doesn't really make it clear that you're modifying state without any output.
Here are the conflicting signatures in psuedocode
/**
 * Signature from the Package class
 * This method DOES NOT modify state, it simply reports the current state.
 * @return bool
 */
function enableLegacyNamespace(): bool
{
    return $this->isLegacyNamespaceEnabled;
}

VERSUS
/**
 * Signature from the ClassLoader class
 * This method MODIFIES STATE
 * @return null
 */
function enableLegacyNamespace(): null
{
    $this->isLegacyNamespaceEnabled = true;
}

/**
 * This method reports whether legacy namespaces are enabled
 * @return bool
 */
function isEnableLegacyNamespace(): bool
{
    return $this->isLegacyNamespaceEnabled;
}

This isn't a huge issue but it makes it extremely difficult to follow what's going on especially when the methods have little incorrect documentation. A better signature for these things is ->should* as the semantics of it allow for there to be internal state or any other method for determining whether something should happen. So for example, the signature for ClassLoader would be
if ($loader->shouldEnableLegacyNamespaces()) {
    // code
}

and configuring it can be managed by the class depending on how that "should" is determined. So in the ClassLoader, we'd have:
$loader->setEnableLegacyNamespaces(true);

This leaves no room for confusion.
But to take a step even farther back, I would've stripped out all legacy stuff and moved it to it's own psr-4ish classloader like LegacyClassloader. If someone wants to enable legacy class namespaces they do (new LegacyClassloader)->register() and it's done. It's similarly easy to make it enable based on config.

Agreed...+1

@KorvinSzanto if you make a pull request with those naming changes we can merge that in. Sounds like a sensible change.

I think this issue has been fixed in #4453


Improve CouchDb source

Proposed Changes

Add support for continuous feed
Add support for document deletion event
Rename events

/lgtm
/approve


when using infinite loop there is a crash

Hello
I used the library and it works fine on Android 12,
but when using infinite loop there is a crash!!!
while (true) {      Toast.makeText(MainActivity.this, ArpNDK.getARP(), Toast.LENGTH_SHORT).show();  }
Please fix it.

Thank you for responding.

.


Broken links

Link to Hello World sample  is broken.
In addition it is not clear that i can run this app on desktop or has to run on IoT device only.
It is not working on Windows Desktop i.e. on F5 Run is not hit at all and if i try to break VS says "no process is being debugged"

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: bfeba98b-ce89-613d-f31e-400faf6eb8c2
Version Independent ID: 6aa7fea5-8c12-3306-4a20-f9ed8dc21344
Content: Background Applications - Windows IoT
Content Source: windows-iotcore/develop-your-app/BackgroundApplications.md
Product: windows-iot
GitHub Login: @saraclay
Microsoft Alias: saclayt

HI @pangar-ms, thank you for letting us know about the broken link - I've taken care of that.
Regarding F5, are you deploying to a remote device?

No, I was trying on local machine.

Ok, you will need to deploy to a remote device.


Authentication for wss

Hello, thanks for this awesome lib!
I'm using next-iron-session but with a custom server to handle wss requests
https://nextjs.org/docs/advanced-features/custom-server
After the user authenticate I can move between protected routes perfectly, but I need to check if the user is logged in when he tries to connect to the websocket session.
My serve.js is the following
const { createServer } = require('http');
const { parse } = require('url');
const next = require('next');
const WebSocket = require('ws');
const http = require('http');

const wss = new WebSocket.Server({ clientTracking: false, noServer: true });

const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handle = app.getRequestHandler();

const server = http.createServer(app);

server.on('upgrade', async function (request, socket, head) {
  console.log('Parsing session from request...');

  //>>>>>>>>>>>>>>>>>>>something needs to happen here to get the session and check if everything is ok<<<<<<<<<<<<<<<<

  if (!request.session.user) {
    socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
    socket.destroy();
    return;
  }

  wss.handleUpgrade(request, socket, head, function (ws) {
    wss.emit('connection', ws, request);
  });
});

wss.on('connection', function (ws, request) {
  const user = request.session.user.cpf;

  map.set(user, ws);

  ws.on('message', function (message) {
    console.log(`Received message ${message} from user ${user}`);
  });

  ws.on('close', function () {
    map.delete(user);
  });
});

app.prepare().then(() => {
  createServer((req, res) => {
    // Be sure to pass `true` as the second argument to `url.parse`.
    // This tells it to parse the query portion of the URL.
    const parsedUrl = parse(req.url, true);

    handle(req, res, parsedUrl);
  }).listen(3000, (err) => {
    if (err) throw err;
    console.log('> Ready on http://localhost:3000');
  });
});

server.listen(3232, function () {
  console.log('Websockerts listening on http://localhost:3232');
});

The important part is that when I receive a request in a certain port, the server needs to check if the user is logged in:
server.on('upgrade', async function (request, socket, head) {
  console.log('Parsing session from request...');

  //>>>>>>>>>>>>>>>>>>>something needs to happen here to get the session and check if everything is ok<<<<<<<<<<<<<<<<

  if (!request.session.user) {
    socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
    socket.destroy();
    return;
  }

  wss.handleUpgrade(request, socket, head, function (ws) {
    wss.emit('connection', ws, request);
  });
});

This is the documentation part of the wss lib
https://github.com/websockets/ws#client-authentication
Anyone has a clue of how can I check if the user is logged in in this scenario?

I did not reply but truth to be told: I have no idea how to handle cookie auth in a websocket.
Maybe those pages can help: https://coletiv.com/blog/using-websockets-with-cookie-based-authentication/.

Here's how I did it! First off, thanks so much to @vvo for making a low level library so that we can parse the cookie data.
import ironStore from "iron-store";

...

 onConnect: async (cnxnParams, webSocket, cnxnContext) => {
      // name of the cookie you used for ironSession
      let { userAuth } = cookie.parse(
        webSocket.upgradeReq.headers.cookie || ""
      );
      const store = await ironStore({
        // same password from your ironSession
        password: process.env.SECRET_COOKIE_PASSWORD as string,
        sealed: userAuth,
      });
      // get the data the same way you are used to
      const user = store.get("user");

      return {
        user,
      };
    },

Essentially, i send cookies with the websocket upgrade request. When the websocket starts a connection, I can parse out the cookie and manually initialize it.

@zackify Would you be so kind and add a small section to the README on how to authenticate other parts of your application using iron-store? Thanks! Actually, any token generated by next-iron-session can be decoded with https://github.com/hapijs/iron (and its ports: https://github.com/hapijs/iron/issues?q=label%3Aport+is%3Aclosed+sort%3Aupdated-desc)

Here's how I did it! First off, thanks so much to @vvo for making a low level library so that we can parse the cookie data.
import ironStore from "iron-store";

...

 onConnect: async (cnxnParams, webSocket, cnxnContext) => {
      // name of the cookie you used for ironSession
      let { userAuth } = cookie.parse(
        webSocket.upgradeReq.headers.cookie || ""
      );
      const store = await ironStore({
        // same password from your ironSession
        password: process.env.SECRET_COOKIE_PASSWORD as string,
        sealed: userAuth,
      });
      // get the data the same way you are used to
      const user = store.get("user");

      return {
        user,
      };
    },

Essentially, i send cookies with the websocket upgrade request. When the websocket starts a connection, I can parse out the cookie and manually initialize it.

I'm getting an error when I try it with iron-store. I have checked if the cookie is there and indeed thats the case. But somehow my store is throwing an error.
Error: Bad hmac value at Object.exports.unseal (/workspace/api/node_modules/@hapi/iron/lib/index.js:311:15)

I am using the same password like in the ironSession and passing the cookie value as sealed.
Has someone experienced the same and may know a solution for this?