Many React bugs, and most APIs currently unusable.

Before submitting your bug report

[X] I believe this is a bug. I'll try to join the Continue Discord for questions
[X] I'm not able to find an open issue that reports the same bug
[X] I've seen the troubleshooting guide on the Continue Docs

Relevant environment info
- OS: Windows 10
- Continue version: happens on v0.9.4 and the Pre-Release
- IDE version: happens on 1.85.1 but i have tried other versions
- Model: mistral-8x7b
- config.json:

    {
      "title": "Groq [Free] - Mistral ",
      "apiBase": "https://api.groq.com/openai/v1/models",
      "provider": "groq",
      "model": "mistral-8x7b",
    }

Description
For like the last three weeks I cannot use most functionality in continue. I just assumed at first that I was using it wrong: it's easy to accidentally mangle a URL or place the API indirectly, and the developer console was not intuitive at all to use and determine the error. other ide issues were also causing me difficulty to pin this down.
firstly why are you pushing any and all errors to the dev logs? i don't understand the point of vs code's output area if you aren't even going to use it for your extension.
secondly when the bug happens, the entire chat window loses all its data, requiring you to type into it again.
but the main reason I post this? I can't use half the features or the APIs.
Let's talk the chat window specifically. You open it up, send a query, and since I now know how to use the dev html area, i can now see it's physically getting a response, yet this error will always pop up in vs code (see the log area)
One example out of many. Mistral 8x7b ironically will actually show its response in the developer console, yet i'll never see it in chat window due to the error.
it seems to be just mangling the API urls and some code in your backend is straight up broken for querying the right api with the right parameters. I have to ask, i thought the whole point of the v1 standard was to unify all of this.
Generally I want to enjoy continue, I attempt to use it for its normal purposes. I have cloned the repo with the intent of getting it integrated in other IDEs and PRing in order to contribute back.
But I've had nothing but issues with this.
Another random one I just noticed...

You can't choose 'groq' in the gui model selection area.
what is the estimated billable hour of these issues and how can I help get this into a usable state? Thanks.
PS: OpenRouter has many of the same issues.
PPS: Autodetect does nothing on groq, and half the models are misnamed.
PPPS: The embeddables are incredibly difficult and tedious to use, for example if you type @URL, the box that pops up allowing you to paste does not take focus. You can't even click it, you have to HOLD click in order to actually be able to press ctrl+v and paste.
To reproduce

Do just about anything in Continue Dev.
Get an error
Struggle to find out where the error is
Realize it's in some non-standard browser html area for developers.
Scratch head, shrug, try to do something else or use another api.
Get a similar different error that also forwards to the same place.

Log output

<div aria-expanded="true" tabindex="-1" style="box-sizing: border-box; min-width: 0px; min-height: 0px; outline-width: 0px; flex: 0 0 auto; color: rgb(31, 31, 31); font-family: monospace; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(252, 235, 235); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><button class="devtools-link text-button link-style" jslog="Link; context: script-location; track: click" role="link" tabindex="-1" title="https://main.vscode-cdn.net/sourcemaps/e8653663e8840adaf45af01eab5c627a5af81807/core/vs/workbench/out-vscode/vs/base/common/file:/mnt/vss/_work/1/s/src/vs/base/common/console.ts:137" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;">
console.ts:137</button> [Extension Host] Error handling webview message: {
  "msg": {
    "messageId": "da8474f3-bc10-4b4d-941f-5da0f2a87ca8",
    "messageType": "llm/streamChat",
    "data": {
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": "How do I change the oil in my car"
            }
          ]
        }
      ],
      "title": "Groq [Free] - LLama3.1 405B",
      "completionOptions": {}
    }
  }
}

Error: HTTP 404 Not Found from <button class="devtools-link text-button link-style" jslog="Link; context: url; track: click" role="link" tabindex="-1" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;">https://api.groq.com/openai/v1/models/chat/completions</button>

{"error":{"message":"Unknown request URL: POST /openai/v1/models/chat/completions. Please check the URL for typos, or see the docs at <button class="devtools-link text-button link-style" jslog="Link; context: url; track: click" role="link" tabindex="-1" style="box-sizing: border-box; min-width: 0px; min-height: 0px; font: inherit; margin: 0px; height: unset; border: none; border-radius: 2px; padding: 0px !important; color: var(--sys-color-primary); background: none; flex: 0 0 auto; white-space: nowrap; text-decoration: underline; outline-offset: 2px; outline: none; cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; word-break: break-all;">https://console.groq.com/docs/</button>","type":"invalid_request_error","code":"unknown_url"}}

<div class="" role="group" style="box-sizing: border-box; min-width: 0px; min-height: 0px; flex: 0 0 auto; color: rgb(31, 31, 31); font-family: monospace; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(252, 235, 235); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
  | uGi | @ | console.ts:137
-- | -- | -- | --
  | $logExtensionHostMessage | @ | mainThreadConsole.ts:39
  | S | @ | rpcProtocol.ts:458
  | Q | @ | rpcProtocol.ts:443
  | M | @ | rpcProtocol.ts:373
  | L | @ | rpcProtocol.ts:299
  | (anonymous) | @ | rpcProtocol.ts:161
  | B | @ | event.ts:1243
  | fire | @ | event.ts:1274
  | fire | @ | ipc.net.ts:652
  | l.onmessage | @ | localProcessExtensionHost.ts:378

@th3w1zard1 - Your API key is in the ticket. Edit to remove?
Also, confirming we got "Cannot read properties of undefined" accessing Azure OpenAI due to a temporary glitch in Continue's URL construction that was later fixed. (Azure OpenAI adds some quirks to the OpenAI API.)  Sounds like you're seeing something similar with Groq. (?)
For Azure we noticed Continue was using the engine/deployment versus model as a directory name. Subtle to notice as our deployment names are related to the model names, but tracking that down helped the devs fix it quickly.  Good luck!

Christ sake thanks for catching that.. What an absolute trainwreck of a blunder.

Yup I can repro here too.

v0.8.57 too.

@CypherPotato would you mind sharing your config.json so I can reproduce this?
Separately, the core problem here was that we didn't have TypeScript strict null checks turned on, which we will be doing, and will avoid any of these problems in the future. Also a nicer error page has been built!

@sestinj here you go
{
  "models": [
    {
      "title": "Ollama",
      "provider": "ollama",
      "model": "starcoder2:3b"
    }
  ],
  "slashCommands": [
    {
      "name": "edit",
      "description": "Edit selected code"
    },
    {
      "name": "comment",
      "description": "Write comments for the selected code"
    },
    {
      "name": "share",
      "description": "Export this session as markdown"
    },
    {
      "name": "cmd",
      "description": "Generate a shell command"
    }
  ],
  "customCommands": [
    {
      "name": "test",
      "prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.",
      "description": "Write unit tests for highlighted code"
    }
  ],
  "contextProviders": [
    {
      "name": "diff",
      "params": {}
    },
    {
      "name": "open",
      "params": {}
    },
    {
      "name": "terminal",
      "params": {}
    },
    {
      "name": "problems",
      "params": {}
    },
    {
      "name": "codebase",
      "params": {}
    },
    {
      "name": "code",
      "params": {}
    },
    {
      "name": "docs",
      "params": {}
    }
  ],
  "tabAutocompleteModel": {
    "title": "Phi3",
    "provider": "ollama",
    "model": "starcoder2:3b"
  },
  "allowAnonymousTelemetry": true,
  "embeddingsProvider": {
    "provider": "transformers.js"
  },
  "docs": []
}


Added serialization attr for default stuff and some constructor helpers when creating nodes

Actually with_location doesn't make much sense if I need to bind it first... I'll remove it..

Good point. These api is in refactor now. I am not sure about bind approach either.

Yeah what is it for?

Does the node need to know its own index?

It helps to simplify many internal processes. For node this is not much beneficial, bot for edge it is very beneficial. Because for drawing we use order of and edge to bend it accordingly. And to compute order we need always to be aware of edges endpoints and compute their order on every frame - for that we would need to pass graph reference inside drawing context, which would make generic system even more complicated.
But I think I will rethink this approach soon, now when we have more or less stable implementation of NodeDisplay and EdgeDisplay trait, I think I can find a way to optimize it and keep only order prop inside of edge and recompute it only if graph is changed (edge/node added or deleted)

Yes it is so hard to even add a node. Perhaps I'm doing something wrong...
let mut new_node = Node::new(NodeData{ content: "".into() } );
                    new_node.set_location(Pos2::new(new_pos.x, new_pos.y));
                    self.gc.write().unwrap().g.add_node(new_node);

And it hasn't even been binded now.

Yep, I will think about some macros or further refactorings. But I think this case can be covered with transform::add_node or transform::add_node_custom

I would simply avoid unbinded nodes altogether. If something is unbinded it can be represted just as NodeData.

Oh nvm that's prob not possible.

I will definitely prioritize usability before coming stable.

What do you mean by that? Do you think unbinded nodes are necessary?

#135  Added our concerns hers.
No I just agree that usability is becoming an issue, and I need to work in this direction before releasing stable versions. If you would have any proposals in this regard, we can move the discussion to #135
About binding nodes I am almost sure that this can be avoided and just have one-step process for creating, modifying or deleting node.


Assassins creed 2

Describe the bug
game crashes on boot up
GPU:3070TI
Game: Assassins Creed 2 (Ubisoft Connect)
latest version of remix
Attach logs!
AssassinsCreedIIGame_d3d9.log
d3d9.log
NvRemixBridge.log
To Reproduce
boot game from exe
Expected behavior
boot to main menu

Describe the bug game crashes on boot up
GPU:3070TI Game: Assassins Creed 2 (Ubisoft Connect) latest version of remix Attach logs! AssassinsCreedIIGame_d3d9.log d3d9.log NvRemixBridge.log
To Reproduce boot game from exe
Expected behavior boot to main menu

you need to bypass the video cutscenes with eizo talking with the text in the room wall and the artimis. just make blank bik files

Hello! Will you please test this on the latest release and let us know if the issue persists? Thank you!


fixes keyboard popup regression

Details

This PR add changes from https://github.com/Expensify/App/pull/30864/files which was reverted because of regression along with fixing the regression caused.
Fixed Issues

$ https://github.com/Expensify/App/issues/29379
PROPOSAL: https://github.com/Expensify/App/issues/29379#issuecomment-1764756030
Tests

[x] Verify that no errors appear in the JS console
Open any chat and upload a file more than 24mb. Dissmiss the popup error.
Tap on report Header verify the keyboard not pop ups
Tap on report header and quickly on plus icon verify popover not opens in details page
Tap on report header and quickly on emoji popover verify emoji popover not opens in details page
Tap plus icon and quickly tap the header verify popover closes as soon user is navigated to details page

Offline tests

QA Steps

[x] Verify that no errors appear in the JS console
Open any chat and upload a file more than 24mb. Dissmiss the popup error.
Tap on report Header verify the keyboard not pop ups
Tap on report header and quickly on plus icon verify popover not opens in details page
Tap on report header and quickly on emoji popover verify emoji popover not opens in details page
Tap plus icon and quickly tap the header verify popover closes as soon user is navigated to details page

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/104348397/ec32870f-60f5-4e08-a7bf-2abca85346c2

Android: mWeb Chrome
https://github.com/Expensify/App/assets/104348397/02ce7107-b8d1-4262-a2b5-a2765a88c884

iOS: Native
https://github.com/Expensify/App/assets/104348397/6190fe5b-6961-431d-91c6-437eeac3c85d

iOS: mWeb Safari
https://github.com/Expensify/App/assets/104348397/363f95bd-b092-4a64-b238-7a226f866261

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/104348397/3387070a-ab59-48d0-a208-257be652b787

MacOS: Desktop
https://github.com/Expensify/App/assets/104348397/521906c6-948f-43b7-9ac4-7628089812cb

The code looks good, but this needs to be tested on physical devices same as previous PR

@NikkiWines, same as previous PR, this isn't ready for your review yet, we just need the adHoc builds kicked off for this.
Could you add the "Ready To Build" label and

see https://stackoverflowteams.com/c/expensify/questions/15778/15779
Try https://github.com/Expensify/App/actions/workflows/testBuild.yml > Run workflow

Thanks!

Sure thing! https://github.com/Expensify/App/actions/runs/7121081640

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

🚀 Deployed to staging by https://github.com/NikkiWines in version: 1.4.14-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/NikkiWines in version: 1.4.14-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.4.14-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


The Reset Password page in the sample app asks for an email address three times

See the attached screenshot

Thanks! Will check this out.

This issue is fixed in<EMAIL_ADDRESS>and should be fixed by updating the package.
https://github.com/aws-amplify/amplify-js/issues/8629
https://github.com/aws-amplify/amplify-js/compare/@aws-amplify/ui-react@1.2.7<EMAIL_ADDRESS>


Tighten PEP8 checks, clean up how version is handled.

Check all F and W codes via flake8.
Remove _internal_init.py and do things in the standard way in __init__.py.

This PR should probably be replaced with 2 separate PRs:

Tighten flake8 checks for F and W codes
Remove _internal_init.py and do things in the standard way in __init__.py.

And don't make any changes (yet) with how version is handled is built.


Set lowercase checkbox default value to true

Set lowercase checkbox by default

looks good, but if we uncheck the lowercase, it still includes lowercase..

can you resolve it and make a PR?

Yes got the issue, I'll check


Run 'flutter build apk' then app crash.

I upgraded flutter this morning, but when I use flutter build apk to build the app, the app crash. Then I try to use ./gradlw assembleRelease to build app, the app runs well. This problem only happened after I upgraded flutter.
I compared the two apps and found that the latter app is larger than the previous one. I guess flutter build apk may remove some used resources.
You can add this plugin on your pubspec.yarml, so you can reproduce this problem.
dependencies:
  fijkplayer: ^0.2.3

crash logs:
12-20 18:10:04.768 12794 12794 D AndroidRuntime: Shutting down VM
12-20 18:10:04.771 12794 12794 E AndroidRuntime: FATAL EXCEPTION: main
12-20 18:10:04.771 12794 12794 E AndroidRuntime: Process: com.rootcloud.crp, PID: 12794
12-20 18:10:04.771 12794 12794 E AndroidRuntime: java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app/com.rootcloud.crp-CcNlXLHC-p3qKUclwvQcrQ==/lib/arm64/libijksdl.so"
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at java.lang.Runtime.loadLibrary0(Runtime.java:1016)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at java.lang.System.loadLibrary(System.java:1672)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at tv.danmaku.ijk.media.player.e.a(:197)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at tv.danmaku.ijk.media.player.IjkMediaPlayer.a(:209)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at tv.danmaku.ijk.media.player.IjkMediaPlayer.b(:249)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at tv.danmaku.ijk.media.player.IjkMediaPlayer.<init>(:245)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at tv.danmaku.ijk.media.player.IjkMediaPlayer.<init>(:236)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at c.b.a.b.<init>(:99)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at c.b.a.d.a(:64)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at d.a.c.a.a(:26)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at com.rootcloud.crp.MainActivity.onCreate(:12)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:7458)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:7448)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1286)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3409)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3614)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:86)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:112)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:216)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7625)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
12-20 18:10:04.771 12794 12794 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)

flutter doctor -v:
[✓] Flutter (Channel stable, v1.12.13+hotfix.5, on Mac OS X 10.14.6 18G103, locale zh-Hans-CN)
    • Flutter version 1.12.13+hotfix.5 at /Users/sghl/Documents/workspace/flutter-project/flutter
    • Framework revision 27321ebbad (9 days ago), 2019-12-10 18:15:01 -0800
    • Engine revision 2994f7e1e6
    • Dart version 2.7.0

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/sghl/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3, Build version 11C29
    • CocoaPods version 1.8.4

[!] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[!] Android Studio
    • Android Studio at /Applications/Android Studio 4.0 Preview.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

[✓] VS Code (version 1.41.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.7.1

[✓] Connected device (2 available)
    • JSN AL00a         • 7XBRX19411003667                     • android-arm64 • Android 9 (API
      28)
    • iPhone 11 Pro Max • A510D8A6-4AA9-47DE-A552-C881972D6175 • ios           •
      com.apple.CoreSimulator.SimRuntime.iOS-13-3 (simulator)

! Doctor found issues in 2 categories.

Hi @chinachen01
please try to run
flutter clean
flutter pub cache repair
also fijkplayer is a 3rd party plugin
and you  want to open an issue in the dedicated github
Closing, as this isn't an issue with Flutter itself,
if you disagree please write in the comments and I will reopen it
Thank you

The point is if I run ./gradlew assembleRelease in android directory, the app works well. but if I run flutter build apk, the app crash.
In the last version of flutter, my project works well.  And  I notice when  I  run flutter build apk, flutter will remove some unused resources before run gradlew assembleRelease, this is the difference. So I think flutter may remove some necessary resources(or there are other errors).
PS: Tomorrow I'll try to run flutter clean and flutter pub cache repair

@iapicca
flutter clean
flutter pub cache repair
it doesn't work~
By the way, if I run flutter run --release, the apk works fine.

I try to let flutter doesn't remove the resources before running assembleRelease.
flutter build apk
If you are deploying the app to the Play Store, it's recommended to use app
bundles or split the APK to reduce the APK size.
    To generate an app bundle, run:
        flutter build appbundle --target-platform
        android-arm,android-arm64,android-x64
        Learn more on: https://developer.android.com/guide/app-bundle
    To split the APKs per ABI, run:
        flutter build apk --target-platform
        android-arm,android-arm64,android-x64 --split-per-abi
        Learn more on:
        https://developer.android.com/studio/build/configure-apk-splits#configur
        e-abi-split
注: /Users/sghl/Documents/workspace/flutter-project/flutter/.pub-cache/hosted/pub.dartlang.org/fijkplayer-0.2.3/android/src/main/java/com/befovy/fijkplayer/FijkPlugin.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
Removed unused resources: Binary resource data reduced from 44KB to 35KB: Removed 20%
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done                      59.4s
✓ Built build/app/outputs/apk/release/app-release.apk (29.9MB).

So I add shrinkResources false minifyEnabled false in build.gradle.
    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.

If you are deploying the app to the Play Store, it's recommended to use app
bundles or split the APK to reduce the APK size.
    To generate an app bundle, run:
        flutter build appbundle --target-platform
        android-arm,android-arm64,android-x64
        Learn more on: https://developer.android.com/guide/app-bundle
    To split the APKs per ABI, run:
        flutter build apk --target-platform
        android-arm,android-arm64,android-x64 --split-per-abi
        Learn more on:
        https://developer.android.com/studio/build/configure-apk-splits#configur
        e-abi-split
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done                      39.3s
✓ Built build/app/outputs/apk/release/app-release.apk (30.7MB).

No Removed unused resources: Binary resource data reduced from 44KB to 35KB: Removed 20% anymore, and the apk increased by about 1M. At last run the apk, it works well.

👍


TTextview fixed draw on scroll introduced a bug (beta branch)

in commit c8d1815 titled "fix Draw TTextView error while scrolling", where these changes are made
--   if Assigned(FScrollV) and (FCanScrollV) then begin
++ if Assigned(FScrollV) and (FCanScrollV) and (ScrollValueV < 1) then begin
this is supposed to fix some scrolling error (I'm interested to know what it is), How ever in one of my tests this does the opposite.
my View port size is 418 and my max content size is 3257 my max offset is 2839,
the bug I'm having because of your change is whenever ScrollValueV is 1 the TTextView draws the beginning of the long text I have, but the scroll bar is at the end (2839).
if I remove the change you made, the scrolling is right, but I do not know what that change fixes.
Note: this might be related, I'm using an HTML text in English so #25 might be the source of the problem.

This is the test demo.
Run in Android, try to scroll to the end of the text, then you will found textview is shaking.
意帆.TextView滚动问题.zip


The navbar button is on the opposite side from the side nav menu

I'm submitting a ...

[ ] bug report
[ ] feature request
[x] UX Improvement

Current behaviour:
The sidenav toggle button is on the right side and the sidenav is on the left. So, a user has to travel across the screen to use the sidenav after clicking the toggle button.
Expected behaviour:
Both the sidenav and toggle button should be on the same side.

Toggled navigation menu is now moved to the right side while maintaining the functionality of the button by setting the z-index accordingly. Should be sufficient like this, since I would keep the logo on the left side.

Thanks for your PR.
I think this should be sufficient.
Waiting for the other reviewers.


NuGet restores Service Fabric project with .NET Framework 4.7.2 instead of .NET Core 3.1

I've been trying to setup a SeviceFabric CI in DevOps and I am unable to find a way to tell MSBuild that my app is a .NET Core app and not a .NET Framework 4.7.2 app. Is there another way to do that from within my project file aside from the usual .NET Core TargetFramework element in csproj file so MSBuild stops thinking that it is a .NET Framework app?
Type: Question
Task Name: MSBuild
Agent: Hosted

pool:
  name: Azure Pipelines
  demands:
  - msbuild
  - Cmd

variables:
  BuildPlatform: 'x64'

steps:
- task: UseDotNet@2
  displayName: 'Use .NET Core sdk 3.1.x'
  inputs:
    version: 3.1.x

- task: NuGetToolInstaller@1
  displayName: 'Use NuGet '
  inputs:
    checkLatest: true

- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    restoreSolution: '$(Parameters.solution)'

============================
===This is where it fails===
============================
- task: MSBuild@1
  displayName: 'Build solution **/*.sln'
  inputs:
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    msbuildArguments: '/p:Deterministic=true /p:PathMap=$(Agent.BuildDirectory)=C:\'

- task: MSBuild@1
  displayName: 'Build solution **\*.sfproj'
  inputs:
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    msbuildArguments: '/t:Package /p:PackageLocation=$(build.artifactstagingdirectory)\applicationpackage'

- task: CopyFiles@2
  displayName: 'Copy Files to: $(build.artifactstagingdirectory)\pdbs'
  inputs:
    SourceFolder: '$(build.artifactstagingdirectory)\applicationpackage'
    Contents: '**\*.pdb'
    TargetFolder: '$(build.artifactstagingdirectory)\pdbs'

- task: DeleteFiles@1
  displayName: 'Delete files from $(build.artifactstagingdirectory)\applicationpackage'
  inputs:
    SourceFolder: '$(build.artifactstagingdirectory)\applicationpackage'
    Contents: '**\*.pdb'

- task: ServiceFabricUpdateManifests@2
  displayName: 'Update Service Fabric Manifests (Manifest versions)'
  inputs:
    applicationPackagePath: '$(build.artifactstagingdirectory)\applicationpackage'
    versionSuffix: '.$(build.buildnumber)'
    updateOnlyChanged: true
    pkgArtifactName: drop

- task: CopyFiles@2
  displayName: 'Copy Files to: $(build.artifactstagingdirectory)\projectartifacts'
  inputs:
    SourceFolder: '$(system.defaultworkingdirectory)'
    Contents: |
     **\PublishProfiles\*.xml
     **\ApplicationParameters\*.xml
    TargetFolder: '$(build.artifactstagingdirectory)\projectartifacts'
  condition: succeededOrFailed()

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'
  condition: succeededOrFailed()

Fails with error
##[error]The nuget command failed with exit code(1) and error(NU1201: Project Delivery is not compatible with net472 (.NETFramework,Version=v4.7.2). Project Delivery supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)

Can I ask a question please:
Was the SF app created from the "Visual Studio - New Project Template? Because as you create a new SF project, it asks for the framework which is the full .NETFramework 4.7/4.8. Once you create that, you need to specify the Service Fabric Service and your options are:
.NET Core - Stateless, Stateful, Stateless ASP.NET Core, Stateful ASP.NET Core
.NET Framework (4.7/4.8) - Stateless Service, Stateful Service, Stateless ASP.NET Core, Stateful Asp.NET Core (requiring .NET Core SDK 2.1)
Reason I ask is:
If you went with the SF Project Template using a .NET Core service (which uses .NET Core) then your build pipeline may require both nuget restore and dotnet restore
See doco here on NuGetCommand@2 - https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/package/nuget?view=azure-devops

Use this task to install and update NuGet package dependencies, or package and publish NuGet packages. Uses NuGet.exe and works with .NET Framework apps. For .NET Core and .NET Standard apps, use the .NET Core task.

The only options there when I created the service fabric project was .NET Framework. But the service within we're all created using .NET Core.

I will replace those steps with .NET Core tasks. Thank you.

I am now able to build the .NET Core projects but when I build the .sfproj project using NuGet restore, it fails because the .NET Core services are referenced by that project and it tries to do the same thing it was doing before,

Correct I was expecting that. You need a dotnetcore take to restore core packages and another classic nuget task  to restore sfproj packages

That is what I did. You'll notice on the screenshot that I have .NET Core tasks to take care of the .NET Core projects and the I have the NuGet restore only restoring the sfproj. Would you like me to add a .NET Core task to restore the sfproj too for its .NET Core references?

Yeah, adding a .NET Core task to build the sfproj didn't work.

top of yaml to define some variables
variables:
- name: BuildConfiguration
  value: Release
- name: BuildPlatform
  value: x64
- name: AppPackageLocation
  value: $(Build.ArtifactStagingDirectory)/applicationpackage

later in the yaml at the BUILD step
    - task: DotNetCoreCLI@2
      displayName: 'Restore Packages'
      inputs:
        command: 'restore'
        projects: '**/*.csproj'
        ##feedsToUse: 'config'
        ##nugetConfigPath: 'NuGet.Config'
        feedsToUse: 'select'
        vstsFeed: 'PRIVATE_FEED_GUID'
        includeNuGetOrg: false
    - task: NuGetCommand@2
      displayName: Restore packages
      inputs:
        command: 'restore'
        restoreSolution: '**/*.sfproj'
        ##feedsToUse: 'config'
        ##nugetConfigPath: 'NuGet.Config'
        feedsToUse: 'select'
        vstsFeed: 'PRIVATE_FEED_GUID'
        includeNuGetOrg: false
        restoreDirectory: packages
    - task: VSBuild@1
      displayName: 'Build solution (release)'
      enabled: false
      inputs:
        solution: '**\*.sln'
        vsVersion: latest
        platform: '$(BuildPlatform)'
        configuration: $(BuildConfiguration)
        clean: true
    - task: VSBuild@1
      displayName: 'Build solution for Service Fabric'
      inputs:
        solution: '**\*.sfproj'
        vsVersion: latest
        msbuildArgs: '/t:Package /p:PackageLocation=$(AppPackageLocation)'
        platform: '$(BuildPlatform)'
        configuration: $(BuildConfiguration)
    - task: ServiceFabricUpdateManifests@2
      displayName: 'Update Service Fabric Manifest Versions'
      inputs:
        applicationPackagePath: '$(AppPackageLocation)'
        versionSuffix: '$(Build.BuildNumber)'
        versionBehavior: Replace
        updateOnlyChanged: true
        pkgArtifactName: drop

top of yaml to define some variables
variables:
- name: BuildConfiguration
  value: Release
- name: BuildPlatform
  value: x64
- name: AppPackageLocation
  value: $(Build.ArtifactStagingDirectory)/applicationpackage

later in the yaml at the BUILD step
    - task: DotNetCoreCLI@2
      displayName: 'Restore Packages'
      inputs:
        command: 'restore'
        projects: '**/*.csproj'
        ##feedsToUse: 'config'
        ##nugetConfigPath: 'NuGet.Config'
        feedsToUse: 'select'
        vstsFeed: 'PRIVATE_FEED_GUID'
        includeNuGetOrg: false
    - task: NuGetCommand@2
      displayName: Restore packages
      inputs:
        command: 'restore'
        restoreSolution: '**/*.sfproj'
        ##feedsToUse: 'config'
        ##nugetConfigPath: 'NuGet.Config'
        feedsToUse: 'select'
        vstsFeed: 'PRIVATE_FEED_GUID'
        includeNuGetOrg: false
        restoreDirectory: packages
    - task: VSBuild@1
      displayName: 'Build solution (release)'
      enabled: false
      inputs:
        solution: '**\*.sln'
        vsVersion: latest
        platform: '$(BuildPlatform)'
        configuration: $(BuildConfiguration)
        clean: true
    - task: VSBuild@1
      displayName: 'Build solution for Service Fabric'
      inputs:
        solution: '**\*.sfproj'
        vsVersion: latest
        msbuildArgs: '/t:Package /p:PackageLocation=$(AppPackageLocation)'
        platform: '$(BuildPlatform)'
        configuration: $(BuildConfiguration)
    - task: ServiceFabricUpdateManifests@2
      displayName: 'Update Service Fabric Manifest Versions'
      inputs:
        applicationPackagePath: '$(AppPackageLocation)'
        versionSuffix: '$(Build.BuildNumber)'
        versionBehavior: Replace
        updateOnlyChanged: true
        pkgArtifactName: drop

Keep in mind that I've used a private feed to fetch some packages from - you probably don't need that.
Also keep in mind that - task: DotNetCoreCLI@2 can restore & build directly from a **/*.sln file - i am yet to try that out to see if the double restore & build steps are even required.

Probably are because DotNetCoreCLI will target only .NET Core SDK
but to build *.sfproj you need to target the full .NET 4.7/4.8 framework

I get that sfproj needs the full .NET 4.7/4.8 Framework and to do that you'll need to use the NuGet task. The issue now is that my services are .NET Core and are being referenced by the sfproj. So now whenever I try to build sfproj I get `

I have a project with exactly that scenario and it is restoring, building and deploying fine.
Basically, i don't think it is an issue with the azure pipelines tasks, but more about how they are being applied for your particular usecase.

I created a new project with an empty .NET Core in a new repo with a new Pipeline and I get the same result. Not really sure what I am missing here.

Might we worth while posting some logs? (and your updated pipeline yaml) I am not sure how else to help.
I've been successfully restoring, building and deploying Service Fabric Apps (with .NET Core 3.1 web api project) to an on-prem cluster for a while.
Are you still doing it in this order?
steps:
- task: UseDotNet@2
  displayName: 'Use .NET Core sdk 3.1.x'
  inputs:
    version: 3.1.x

- task: NuGetToolInstaller@1
  displayName: 'Use NuGet '
  inputs:
    checkLatest: true

- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    restoreSolution: '$(Parameters.solution)'

============================
===This is where it fails===
============================
- task: MSBuild@1
  displayName: 'Build solution **/*.sln'
  inputs:
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    msbuildArguments: '/p:Deterministic=true /p:PathMap=$(Agent.BuildDirectory)=C:\'

- task: MSBuild@1
  displayName: 'Build solution **\*.sfproj'
  inputs:
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    msbuildArguments: '/t:Package /p:PackageLocation=$(build.artifactstagingdirectory)\applicationpackage'

because that's nothing like I've commented above.  - ie:  MSBUILD Solution is wrong to start off with

Hey, thank you so much and I really appreciate the help. I have no problems getting .NET Core to restore by the way. Here's the log file I get from the NuGet restore step.
2020-07-07T02:54:21.5657464Z ##[section]Starting: NuGet restore
2020-07-07T02:54:21.5818352Z ==============================================================================
2020-07-07T02:54:21.5818684Z Task         : NuGet
2020-07-07T02:54:21.5819454Z Description  : Restore, pack, or push NuGet packages, or run a NuGet command. Supports NuGet.org and authenticated feeds like Azure Artifacts and MyGet. Uses NuGet.exe and works with .NET Framework apps. For .NET Core and .NET Standard apps, use the .NET Core task.
2020-07-07T02:54:21.5820015Z Version      : 2.171.1
2020-07-07T02:54:21.5820255Z Author       : Microsoft Corporation
2020-07-07T02:54:21.5820567Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/package/nuget
2020-07-07T02:54:21.5820920Z ==============================================================================
2020-07-07T02:54:22.3902128Z SYSTEMVSSCONNECTION exists true
2020-07-07T02:54:22.5487810Z SYSTEMVSSCONNECTION exists true
2020-07-07T02:54:22.9644228Z [command]C:\windows\system32\chcp.com 65001
2020-07-07T02:54:22.9768239Z Active code page: 65001
2020-07-07T02:54:23.0707403Z Detected NuGet version <IP_ADDRESS>35 / 4.8.2+9131ffc4eef705c3fb0457c8cf06cff7af10b6f1
2020-07-07T02:54:23.0731028Z SYSTEMVSSCONNECTION exists true
2020-07-07T02:54:23.0905826Z [command]C:\hostedtoolcache\windows\NuGet\4.8.2\x64\nuget.exe sources Add -NonInteractive -Name NuGetOrg -Source https://api.nuget.org/v3/index.json -ConfigFile d:\a\1\Nuget\tempNuGet_85.config
2020-07-07T02:54:24.1572663Z Package Source with Name: NuGetOrg added successfully.
2020-07-07T02:54:24.1719499Z [command]C:\hostedtoolcache\windows\NuGet\4.8.2\x64\nuget.exe restore d:\a\1\s\MyDemoApp.sln -Verbosity Detailed -NonInteractive -ConfigFile d:\a\1\Nuget\tempNuGet_85.config
2020-07-07T02:56:01.0270909Z NuGet Version: <IP_ADDRESS>35
2020-07-07T02:56:01.0272131Z MSBuild auto-detection: using msbuild version '<IP_ADDRESS>03' from 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\bin'. Use option -MSBuildVersion to force nuget to use a specific version of MSBuild.
2020-07-07T02:56:01.0273417Z WARNING: Project file d:\a\1\s\Framework\MyDemoApp.Communication\MyDemoApp.Communication.csproj cannot be found.
2020-07-07T02:56:01.0274546Z MSBuild P2P timeout [ms]: 120000
2020-07-07T02:56:01.0277384Z C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\bin\msbuild.exe "C:\Users\VssAdministrator\AppData\Local\Temp\NuGetScratch\332oxk4p.wgy.nugetinputs.targets" /t:GenerateRestoreGraphFile /nologo /nr:false /v:q /p:NuGetRestoreTargets="C:\Users\VssAdministrator\AppData\Local\Temp\NuGetScratch\re4v5z4b.02x.nugetrestore.targets" /p:RestoreUseCustomAfterTargets="True" /p:RestoreTaskAssemblyFile="C:\hostedtoolcache\windows\NuGet\4.8.2\x64\nuget.exe" /p:RestoreSolutionDirectory="d:\a\1\s\\" /p:RestoreConfigFile="d:\a\1\Nuget\tempNuGet_85.config" /p:SolutionDir="d:\a\1\s\\" /p:SolutionName="MyDemoApp"
2020-07-07T02:56:01.0279471Z
2020-07-07T02:56:01.0279813Z Running restore with 4 concurrent jobs.
2020-07-07T02:56:01.0280403Z Reading project file d:\a\1\s\Domain\Delivery\MyDemoApp.Delivery\MyDemoApp.Delivery.csproj.
2020-07-07T02:56:01.0281375Z Reading project file d:\a\1\s\Domain\MyDemoApp.Communication.Domain\MyDemoApp.Communication.Domain.csproj.
2020-07-07T02:56:01.0282550Z Reading project file d:\a\1\s\Domain\Security\MyDemoApp.Security\MyDemoApp.Security.csproj.
2020-07-07T02:56:01.0283237Z Reading project file d:\a\1\s\Domain\Delivery\MyDemoApp.Delivery.Test\MyDemoApp.Delivery.Test.csproj.
2020-07-07T02:56:01.0283867Z Restoring packages for d:\a\1\s\Domain\Delivery\MyDemoApp.Delivery\MyDemoApp.Delivery.csproj...
2020-07-07T02:56:01.0284922Z Restoring packages for d:\a\1\s\Domain\MyDemoApp.Communication.Domain\MyDemoApp.Communication.Domain.csproj...
2020-07-07T02:56:01.0285670Z Restoring packages for d:\a\1\s\Domain\Delivery\MyDemoApp.Delivery.Test\MyDemoApp.Delivery.Test.csproj...
2020-07-07T02:56:01.0286357Z Restoring packages for d:\a\1\s\Domain\Security\MyDemoApp.Security\MyDemoApp.Security.csproj...
2020-07-07T02:56:01.0288184Z Restoring packages for .NETCoreApp,Version=v3.1...
2020-07-07T02:56:01.0292055Z Restoring packages for .NETStandard,Version=v2.0...
2020-07-07T02:56:01.0292504Z Restoring packages for .NETStandard,Version=v2.0...
2020-07-07T02:56:01.0294120Z Restoring packages for .NETCoreApp,Version=v3.1...
2020-07-07T02:56:01.0294702Z   GET https://api.nuget.org/v3-flatcontainer/microsoft.windowsdesktop.app.runtime.win-x64/index.json
2020-07-07T02:56:01.0295350Z   GET https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-x64/index.json
2020-07-07T02:56:01.0296427Z   GET https://api.nuget.org/v3-flatcontainer/microsoft.servicefabric.services.remoting/index.json
2020-07-07T02:56:01.0298889Z   OK https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-x64/index.json 15ms
2020-07-07T02:56:01.0299595Z   GET https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-x64/index.json
2020-07-07T02:56:01.0300261Z   GET https://api.nuget.org/v3-flatcontainer/microsoft.servicefabric.services/index.json
2020-07-07T02:56:01.0300955Z   OK https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-x64/index.json 15ms
2020-07-07T02:56:01.0301755Z   GET https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-x64/3.1.0/microsoft.aspnetcore.app.runtime.win-x<IP_ADDRESS>.nupkg
2020-07-07T02:56:01.0302522Z   GET https://api.nuget.org/v3-flatcontainer/stylecop.analyzers/index.json
2020-07-07T02:56:01.0303206Z   GET https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-x64/3.1.0/microsoft.netcore.app.runtime.win-x<IP_ADDRESS>.nupkg
2020-07-07T02:56:01.0303954Z   OK https://api.nuget.org/v3-flatcontainer/microsoft.servicefabric.services.remoting/index.json 56ms
2020-07-07T02:56:01.0304738Z   OK https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-x64/3.1.0/microsoft.aspnetcore.app.runtime.win-x<IP_ADDRESS>.nupkg 13ms
2020-07-07T02:56:01.0305940Z   OK https://api.nuget.org/v3-flatcontainer/microsoft.windowsdesktop.app.runtime.win-x64/index.json 66ms
2020-07-07T02:56:01.0306716Z   GET https://api.nuget.org/v3-flatcontainer/microsoft.servicefabric.services.remoting/4.1.417/microsoft.servicefabric.services.remoting.4.1.417.nupkg
2020-07-07T02:56:01.0307673Z   GET https://api.nuget.org/v3-flatcontainer/microsoft.windowsdesktop.app.runtime.win-x64/3.1.0/microsoft.windowsdesktop.app.runtime.win-x<IP_ADDRESS>.nupkg
2020-07-07T02:56:01.0309139Z   OK https://api.nuget.org/v3-flatcontainer/microsoft.windowsdesktop.app.runtime.win-...
2020-07-07T02:56:01.1757182Z Checking compatibility for System.Diagnostics.Contracts 4.0.1 with .NETCoreApp,Version=v3.1 (win7-x64).
2020-07-07T02:56:01.1757599Z Checking compatibility for System.Threading.Overlapped 4.0.1 with .NETCoreApp,Version=v3.1 (win7-x64).
2020-07-07T02:56:01.1758054Z Checking compatibility for runtime.any.System.Text.Encoding.Extensions 4.0.11 with .NETCoreApp,Version=v3.1 (win7-x64).
2020-07-07T02:56:01.1758502Z Checking compatibility for runtime.win7.System.Private.Uri 4.0.1 with .NETCoreApp,Version=v3.1 (win7-x64).
2020-07-07T02:56:01.1759147Z Checking compatibility for runtime.any.System.Globalization.Calendars 4.0.1 with .NETCoreApp,Version=v3.1 (win7-x64).
2020-07-07T02:56:01.1759581Z All packages and projects are compatible with .NETCoreApp,Version=v3.1 (win7-x64).

...

2020-07-07T02:56:01.1759841Z Committing restore...
2020-07-07T02:56:01.1760239Z Generating MSBuild file d:\a\1\s\MyDemoApp.Gateway\obj\MyDemoApp.Gateway.csproj.nuget.g.props.
2020-07-07T02:56:01.1760666Z Generating MSBuild file d:\a\1\s\MyDemoApp.Gateway\obj\MyDemoApp.Gateway.csproj.nuget.g.targets.
2020-07-07T02:56:01.1761065Z Writing lock file to disk. Path: d:\a\1\s\MyDemoApp.Gateway\obj\project.assets.json
2020-07-07T02:56:01.1761476Z Writing cache file to disk. Path: d:\a\1\s\MyDemoApp.Gateway\obj\MyDemoApp.Gateway.csproj.nuget.cache
2020-07-07T02:56:01.1761889Z Restore completed in 7.17 sec for d:\a\1\s\MyDemoApp.Gateway\MyDemoApp.Gateway.csproj.
2020-07-07T02:56:01.1762218Z
2020-07-07T02:56:01.1762307Z
2020-07-07T02:56:01.1762466Z NuGet Config files used:
2020-07-07T02:56:01.1762679Z     d:\a\1\Nuget\tempNuGet_85.config
2020-07-07T02:56:01.1762843Z
2020-07-07T02:56:01.1762970Z Feeds used:
2020-07-07T02:56:01.1763164Z     https://api.nuget.org/v3/index.json
2020-07-07T02:56:01.1763316Z
2020-07-07T02:56:01.1763453Z Installed:
2020-07-07T02:56:01.1763738Z     1 package(s) to d:\a\1\s\Domain\Delivery\MyDemoApp.Delivery.Test\MyDemoApp.Delivery.Test.csproj
2020-07-07T02:56:01.1764161Z     9 package(s) to d:\a\1\s\Domain\MyDemoApp.Communication.Domain\MyDemoApp.Communication.Domain.csproj
2020-07-07T02:56:01.1764549Z     35 package(s) to d:\a\1\s\Framework\MyDemoApp.Data\MyDemoApp.Data.csproj
2020-07-07T02:56:01.1764880Z     1 package(s) to d:\a\1\s\MyDemoApp\MyDemoApp.sfproj
2020-07-07T02:56:01.1765216Z     12 package(s) to d:\a\1\s\Domain\Delivery\MyDemoApp.Delivery\MyDemoApp.Delivery.csproj
2020-07-07T02:56:01.1765610Z     10 package(s) to d:\a\1\s\Domain\Security\MyDemoApp.Security\MyDemoApp.Security.csproj
2020-07-07T02:56:01.1765983Z     77 package(s) to d:\a\1\s\MyDemoApp.Gateway\MyDemoApp.Gateway.csproj
2020-07-07T02:56:01.2150832Z ##[error]The nuget command failed with exit code(1) and error(NU1201: Project MyDemoApp.Delivery is not compatible with net472 (.NETFramework,Version=v4.7.2). Project MyDemoApp.Delivery supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
NU1201: Project MyDemoApp.Security is not compatible with net472 (.NETFramework,Version=v4.7.2). Project MyDemoApp.Security supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
NU1201: Project MyDemoApp.Gateway is not compatible with net472 (.NETFramework,Version=v4.7.2). Project MyDemoApp.Gateway supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
NU1201: Project MyDemoApp.Delivery is not compatible with net472 (.NETFramework,Version=v4.7.2) / win. Project MyDemoApp.Delivery supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
NU1201: Project MyDemoApp.Security is not compatible with net472 (.NETFramework,Version=v4.7.2) / win. Project MyDemoApp.Security supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
NU1201: Project MyDemoApp.Gateway is not compatible with net472 (.NETFramework,Version=v4.7.2) / win. Project MyDemoApp.Gateway supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
NU1201: Project MyDemoApp.Delivery is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x64. Project MyDemoApp.Delivery supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
NU1201: Project MyDemoApp.Security is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x64. Project MyDemoApp.Security supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
NU1201: Project MyDemoApp.Gateway is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x64. Project MyDemoApp.Gateway supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
NU1201: Project MyDemoApp.Delivery is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x86. Project MyDemoApp.Delivery supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
NU1201: Project MyDemoApp.Security is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x86. Project MyDemoApp.Security supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
NU1201: Project MyDemoApp.Gateway is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x86. Project MyDemoApp.Gateway supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
Errors in d:\a\1\s\MyDemoApp\MyDemoApp.sfproj
    NU1201: Project MyDemoApp.Delivery is not compatible with net472 (.NETFramework,Version=v4.7.2). Project MyDemoApp.Delivery supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
    NU1201: Project MyDemoApp.Security is not compatible with net472 (.NETFramework,Version=v4.7.2). Project MyDemoApp.Security supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
    NU1201: Project MyDemoApp.Gateway is not compatible with net472 (.NETFramework,Version=v4.7.2). Project MyDemoApp.Gateway supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
    NU1201: Project MyDemoApp.Delivery is not compatible with net472 (.NETFramework,Version=v4.7.2) / win. Project MyDemoApp.Delivery supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
    NU1201: Project MyDemoApp.Security is not compatible with net472 (.NETFramework,Version=v4.7.2) / win. Project MyDemoApp.Security supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
    NU1201: Project MyDemoApp.Gateway is not compatible with net472 (.NETFramework,Version=v4.7.2) / win. Project MyDemoApp.Gateway supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
    NU1201: Project MyDemoApp.Delivery is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x64. Project MyDemoApp.Delivery supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
    NU1201: Project MyDemoApp.Security is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x64. Project MyDemoApp.Security supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
    NU1201: Project MyDemoApp.Gateway is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x64. Project MyDemoApp.Gateway supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
    NU1201: Project MyDemoApp.Delivery is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x86. Project MyDemoApp.Delivery supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
    NU1201: Project MyDemoApp.Security is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x86. Project MyDemoApp.Security supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1)
    NU1201: Project MyDemoApp.Gateway is not compatible with net472 (.NETFramework,Version=v4.7.2) / win-x86. Project MyDemoApp.Gateway supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1))
2020-07-07T02:56:01.2171806Z ##[error]Packages failed to restore
2020-07-07T02:56:01.2182515Z ##[section]Finishing: NuGet restore

I figured it out. I have Directory.Build.props, stylecop.json and StyleCop.ruleset on the same directory where SLN file is. I removed these files and my build started going through.
Directory.Build.props
<Project>
<!-- StyleCop Analyzers configuration -->
  <PropertyGroup>
    <CodeAnalysisRuleSet>$(SolutionDir)StyleCop.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
    <AdditionalFiles Include="$(SolutionDir)stylecop.json" Link="stylecop.json" />
    <AdditionalFiles Include="$(SolutionDir)stylecop.ruleset" Link="StyleCop.ruleset" />
  </ItemGroup>
</Project>

Stylecop.ruleset
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Development ruleset" Description=" " ToolsVersion="16.0">
 ...
</RuleSet>

I will end up adding those files in my .gitingore because I still want to be able to take advantage of stylecop without consciously referencing it as I add more projects.

I am facing the exact same issue with my projects, having the Directory.Build.props, stylecop.json and StyleCop.ruleset causes my build to fail. Removing them resolves the issue.
But I would like to keep these changes in place and setup a standard for the team.
Does anyone know why these files cause the problem? And how to get around it?

I have a feeling your issues are again caused by how you've setup your repository and pipeline and nothing to do with a "bug" in nuget restore and the pipeline tasks.
As for Directory.Build.props - don't place them in the solution folder - that's an anti pattern.
I have mine in the src folder where all projects are. (Note that the sfproj is under the repo root)
I have an additional Directory.Build.props in my tests folder which is slightly different - contains coverlet specific package references.

I don't know if this is just a problem / bug with Service Fabric projects (*.sfproj) that reference .net core applications. But they are the only projects that fail during the nuget restore when the Directory.Build.props contains a PackageReference, everything else about the Directory.Build.props doesn't trigger these errors.
Removing the below package reference but keeping the rest of the contents of Directory.Build.props allows the nuget restore to pass.
<ItemGroup>
    <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
 </ItemGroup>

As mentioned in my comment above, the issue lies with the Service Fabric (.sfproj). Thanks @temelj for the hint with regards to your project structure. Knowing that your .sfproj sits at the root, where as mine sit within my /src folder meant that the Directory.Build.props were being applied to all projects. Which then resulted in the nuget restore error.
The trick I applied was to conditionally apply configuration, the condition could be improved or be more specific:
 Condition="'$(MSBuildProjectExtension)' != '.sfproj'"
Full example:
    <!-- StyleCop Analyzers configuration -->
    <PropertyGroup Condition="'$(MSBuildProjectExtension)' != '.sfproj'">
        <GenerateDocumentationFile>true</GenerateDocumentationFile>
        <CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)codeanalysis.ruleset</CodeAnalysisRuleSet>
    </PropertyGroup>

    <ItemGroup Condition="'$(MSBuildProjectExtension)' != '.sfproj'">
        <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.0.0" PrivateAssets="all" IncludeAssets="runtime; build; native; contentfiles; analyzers; buildtransitive" />
        <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" IncludeAssets="runtime; build; native; contentfiles; analyzers; buildtransitive" />
        <AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json" Link="stylecop.json" />
        <None Include="$(CodeAnalysisRuleSet)" Condition="'$(CodeAnalysisRuleSet)' != ''" Link="%(Filename)%(Extension)" />
    </ItemGroup>


Tooltips for zero-width emotes are inaccessable

Checklist

[X] I'm reporting a problem with Chatterino
[X] I've verified that I'm running the most recent nightly build or stable release
[X] I've looked for my problem on the wiki
[X] I've searched the issues and pull requests for similar looking reports

Describe your issue
When a zero-width emote is posted along side a standard emote, only a tooltip for the standard emote is shown no matter where the mouse is hovered.
Screenshots
N/A
OS and Chatterino Version
Chatterino 7.3.4 (commit 530dcc3c), applies to c2

Pulled upstream from https://github.com/SevenTV/chatterino7/issues/72

To reproduce:

Post FeelsDankMan cvMask
try to hover over the cvMask emote
see that there is no tooltip for it, just FeelsDankMan

FeelsDankMan

I actually really like the way chatsen displays them, only thing missing would be provider information for the emotes on the bottom, and the first FeelsDankMan is kinda unnecessary, but the general layout is pretty nice imo:

Not sure how feasible something like that would be to implement though, given the current LIDL zero-width emote implementation.

I think we would have to rework zero width emotes to actual modifier emotes, this would probably be also mean solving that render order issue with animated emotes.
15 sie 2022 12:31:16 LosFarmosCTL @.***>:

I actually really like the way chatsen displays them, only thing missing would be provider information for the emotes on the bottom, and the first FeelsDankMan is kinda unnecessary, but the general layout is pretty nice imo:
[https://user-images.githubusercontent.com/80157503/184619859-1a2d6377-969a-48dc-bdfe-e412325e3584.jpeg][image][https://user-images.githubusercontent.com/80157503/184619859-1a2d6377-969a-48dc-bdfe-e412325e3584.jpeg]
Not sure how feasible something like that would be to implement though, given the current LIDL zero-width emote implementation.
—
Reply to this email directly, view it on GitHub[https://github.com/Chatterino/chatterino2/issues/3615#issuecomment-1214867350], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AF62MIQJ7F5NUBF7W2SBLSTVZIL6XANCNFSM5RESXMEA].
You are receiving this because you commented. [data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAAkSURBVGiB7cExAQAAAMKg9U9tDQ+gAAAAAAAAAAAAAAAA4NQAMv0AAa3l6BAAAAAASUVORK5CYII=###24x24:true###][Obrazek śledzący][https://github.com/notifications/beacon/AF62MIX5TO2UEPD7SMA4S7LVZIL6XA5CNFSM5RESXMEKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOJBUWPFQ.gif]Message ID: @.***>

I think we would have to rework zero width emotes to actual modifier emotes

I experimented a bit with that a couple of months ago, but didn't feel like I had the knowledge about neither C++, qt or the c2 codebase to tackle this, and I don't think I would feel comfortable working on it now as well.
From what I could tell though this will require some pretty drastic changes to both emote and even general rendering, considering that not only are emotes being drawn completely separately, but animated images are even rendered in a completely separate method and canvas compared to normal UI elements (which is also the reason why they are drawn above non-animated zero-width emotes, they are actually just drawn later on top of the entire UI)
Maybe we could actually create separate emotes for combinations of emote+zerowidth, but this would create additional memory usage and would definitely still be a hacky solution, I can conceive of a bunch of possible side effects even by just thinking about it for a few seconds.
Whatever way a refactor like that could be going, its almost certainly going to take a very long time to get merged, if it ever happens. Not sure if that warrants slapping more hacky code on top of already messy things, but there might be no other way to fix current issues.


Fix missing tab & preview

Fix missing tab to allow Github search & preview

Thanks for the fix :)


[mp-units] Add feature to use ms-gsl or gsl-lite

Is your feature request related to a problem? Please describe.
A project of mine uses ms-gsl, which will conflict with the gsl-lite dependency in mp-units.
Proposed solution
Add a feature choose between ms-gsl and gsl-lite.
Describe alternatives you've considered
No response
Additional context
No response

Add a feature choose between ms-gsl and gsl-lite.

There can't be such a feature. https://learn.microsoft.com/en-us/vcpkg/contributing/maintainer-guide#do-not-use-features-to-implement-alternatives

I see. I will have to use an overlay port then.
Thank you,

Do I understand correctly that we already have two alternative implmentations of the GSL which cannot be used at the same time? Maybe we don't need a feature but must force all ports to use the same variant. AFAIU the ban of alternatives is intented to prevent the situation which is reported here.

Do I understand correctly that we already have two alternative implmentations of the GSL which cannot be used at the same time?

Yes. Both ms-gsl and gsl-lite define things under the gsl namespace, which causes type conflicts and ODR violations.

It seems like only one of them should be used in vcpkg.


Make time filtering even easier in iD

What's your idea for a cool feature that would help you use OHM better.
Right now, time filtering in iD takes at least 2 clicks (open and close the Map Data panel & hope the Date Range drop down is selected), as well as changing at least 1, if not 2, fields (start & end), and a prayer that the data you want to modify is revealed or the stuff that is in the way is hidden. It's sort of time selection in the dark.
Because most people only edit for a specific time range or date (to match a map or some other source), the slider wouldn't have to support a wide time window. Maybe a single date field that accepted just a year (or made obvious that finer resolution is highly optional) and controls to move forward and back a day, month, or year (or even keystrokes) would be pretty awesome.
Here's a completely noncommittal and uglier-than-homemade mockup that has no connection to any understanding of what's possible, but that I think captures what I'm trying to express. Think of the little circles as forward or back for year, month, day.

Benefits
If we had a less modal, faster way of adjusting the date range:

Users might find the date filter more quickly
They might be encouraged to change dates more frequently
It might be easier to change more rapidly-changing attributes
Easier to see when features start or end without having to guess or do attributed inspection

Current workarounds
Time and fiddling around.
Same feature for JOSM: #771

Per @bauer33333, need to be able to quickly toggle this feature on and off.


Provide a way of getting a file's real path

Right now, given a user-provided file path, there's no (efficient) way of getting that file's real path on disk. On Linux et al these are always the same thing (modulo . and .. path components which p.normalize() can handle), but Windows and some OS X systems have case-insensitive filesystems where a file named FILE.TXT can be referred to by the path file.txt. Worse yet, some servers appear to only serve the files in question if the case matches exactly, even when the underlying filesystem is case sensitive (see https://github.com/sass/dart-sass/issues/540).
It's possible to work around this today using Directory.list() on the parent directory, but that's much more expensive than a single call. I believe you can use FindFirstFileA for this on Windows and fcntl with F_GETPATH on Unixes.

Note that something like realpath() is not sufficient here, because I explicitly do not want to resolve symbolic links.


Minor correction in Symbol description

Just noticed a minor typo in the Symbol descriptions

No worries and looking forward to your book! :)

Glad to hear! :)


Search on member votes page

It should be possible to search on a member's page for a subset of their votes. This search should also include a "load" button to load your current stash.

I implemented most of the UI for this. Three issues remain:

Tooltips don't work on votes besides the initial batch (this is a general problem w/r/t javascript event hooks on stuff loaded in via ajax)
The column widths for votes besides the initial batch don't quite work.
No load stash UI.


[Question] Best way to Synch state across scenes using Default Reducer.

Version
Tell us which versions you are using (react native 0.26 is required for v3):
"react-native": "^0.26.3",
"react-native-router-flux": "^3.26.16"

Question
What is the best way to change the props of another scene such that it is consistent with another scene using the DefaultReducer:
Say for example I have 3 scenes: MainContainer > FirstContainer  > SecondContainer.
The FirstContainer has a props attribute called volume e.g.: this.props.volume. When a button is clicked on FirstContainer the following action is called:
Actions.secondContainer({volume: this.props.volume});
The SecondContainer loads with this.props.volume = 1. The SecondContainer also has button when click the following action is called:
Actions.refresh({volume: 0});
Which changes the.props.volume = 0 for the SecondContainer. When the button on the SecondContainer is clicked how can I ensure that this.props.volume for the FirstContainer also changes its prop.volume = 0, such that the volume prop is consistent for both First and Second Container:
I have created an example to demo this use case: https://github.com/shiv86/SnchComponentStateTest/
Also these are all the scenes:

class SynchComponentState extends Component {
    render() {
        return <Router createReducer={reducerCreate} sceneStyle={{backgroundColor:'#F7F7F7'} }>
            <Scene key="main" >
              <Scene key="mainContainer" component={MainContainer} />
              <Scene key="firstContainer" component={FirstContainer} />
              <Scene key="secondContainer" component={SecondContainer} />
            </Scene>

        </Router>;
    }
}

Sorry, but it is only navigation router, not framework for syncing your app state. I'd recommend to look at MobX & react-native-mobx or Redux.

ah ok. I misunderstood the scope of RNRF. Thanks


Networkd containers

Motivation for this change
POC for https://github.com/NixOS/rfcs/pull/108
Tests are regularly built at https://hydra.ist.nicht-so.sexy/jobset/nixpkgs/networkd-containers.
(This is also the reason for the temporary jobset.nix in the project's root).
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Thanks a lot for your comments!
As soon as we start discussing the RFC in January and I know how much of this PR is actually useful, I'll start fixing these :)

How would old things from /nix/var/nix/profiles/per-container/nixos/ and /var/lib/containers/ be migrated?

 Shouldn't be too bad though as the NixOS config inside can remain as-is in most cases, but e.g. networking, bind-mounts etc need to be adjusted.
Containers need to be stopped
move /var/lib/containers/{name} -> /var/lib/machines/{name}
Apply the new NixOS config (and thus also the "new" container should be started).

The same principle applies to imperative containers.

when running the command manually I get:
NIX_PATH=nixpkgs=/etc/nixos/nixpkgs nix-env -p /nix/var/nix/profiles/per-nspawn/name/system --arg config ./containers-next.nix -f /nix/store/8wypbk73d4x796x8wk5zvxr8vp185gsc-eval-container.nix --set --arg nixpkgs "<nixpkgs>" --show-trace

/nix/store/iqprjr5k5385bhf1dzj07zwd5p43py1n-bash-5.1-p12/bin/bash ../libtool --tag=disable-static --mode=link gcc -o sudo conversation.o copy_file.o edit_open.o env_hooks.o exec.o exec_common.o exec_monitor.o exec_nopty.o exec_pty.o get_pty.o hooks.o limits.o load_plugins.o net_ifs.o parse_args.o preserve_fds.o signal.o sudo.o sudo_edit.o tcsetpgrp_nobg.o tgetpass.o ttyname.o utmp.o  preload.o -Wl,--enable-new-dtags -Wl,--allow-multiple-definition -Wl,-z,relro --tag=disable-shared -static  -Wc,-fPIE -pie -Wc,-fstack-protector-strong -lutil   ../lib/util/libsudo_util.la ../plugins/sudoers/sudoers.la
libtool: link: gcc -o sudo conversation.o copy_file.o edit_open.o env_hooks.o exec.o exec_common.o exec_monitor.o exec_nopty.o exec_pty.o get_pty.o hooks.o limits.o load_plugins.o net_ifs.o parse_args.o preserve_fds.o signal.o sudo.o sudo_edit.o tcsetpgrp_nobg.o tgetpass.o ttyname.o utmp.o preload.o -Wl,--enable-new-dtags -Wl,--allow-multiple-definition -Wl,-z -Wl,relro --tag=disable-shared -fPIE -pie -fstack-protector-strong  -lutil ../lib/util/.libs/libsudo_util.a ../plugins/sudoers/.libs/sudoers.a /nix/store/l22kn6ljd9hnq7y8vk333n963mg5fy6b-linux-pam-1.5.1/lib/libpam.so /build/sudo-1.9.7p2/lib/util/.libs/libsudo_util.a -lpthread -ldl -Wl,-rpath -Wl,/nix/store/l22kn6ljd9hnq7y8vk333n963mg5fy6b-linux-pam-1.5.1/lib -Wl,-rpath -Wl,/nix/store/l22kn6ljd9hnq7y8vk333n963mg5fy6b-linux-pam-1.5.1/lib
gcc: error: unrecognized command-line option '--tag=disable-shared'
make[1]: *** [Makefile:179: sudo] Error 1
make[1]: Leaving directory '/build/sudo-1.9.7p2/src'
make: *** [Makefile:108: all] Error 2
error: builder for '/nix/store/0xfg0hnxwrr0r3hypnb98wx0kw5g6xyr-sudo-1.9.7p2.drv' failed with exit code 2;
       last 10 log lines:
       > libtool: compile:  gcc -c -I../include -I.. -I. -I. -D_PATH_SUDO_CONF=\"/etc/sudo.conf\" -DLOCALEDIR=\"/nix/store/yg615xidy9kh6smh3w4x040z3fkzv9zz-sudo-1.9.7p2/share/locale\" -DZLIB_CONST -D_FORTIFY_SOURCE=2 -g -O2 -fvisibility=hidden -fstack-protector-strong ./sudo_noexec.c  -fPIC -DPIC -o .libs/sudo_noexec.o
       > /nix/store/iqprjr5k5385bhf1dzj07zwd5p43py1n-bash-5.1-p12/bin/bash ../libtool --tag=disable-static --mode=link gcc -Wl,--enable-new-dtags -Wl,--allow-multiple-definition -Wl,-z,relro  -Wc,-fstack-protector-strong -ldl -o sudo_noexec.la sudo_noexec.lo -module -avoid-version -rpath /nix/store/yg615xidy9kh6smh3w4x040z3fkzv9zz-sudo-1.9.7p2/libexec/sudo -shrext .so
       > libtool: link: gcc -shared  -fPIC -DPIC  .libs/sudo_noexec.o   -ldl  -Wl,--enable-new-dtags -Wl,--allow-multiple-definition -Wl,-z -Wl,relro -fstack-protector-strong   -Wl,-soname -Wl,sudo_noexec.so -o .libs/sudo_noexec.so
       > libtool: link: ( cd ".libs" && rm -f "sudo_noexec.la" && ln -s "../sudo_noexec.la" "sudo_noexec.la" )
       > /nix/store/iqprjr5k5385bhf1dzj07zwd5p43py1n-bash-5.1-p12/bin/bash ../libtool --tag=disable-static --mode=link gcc -o sudo conversation.o copy_file.o edit_open.o env_hooks.o exec.o exec_common.o exec_monitor.o exec_nopty.o exec_pty.o get_pty.o hooks.o limits.o load_plugins.o net_ifs.o parse_args.o preserve_fds.o signal.o sudo.o sudo_edit.o tcsetpgrp_nobg.o tgetpass.o ttyname.o utmp.o  preload.o -Wl,--enable-new-dtags -Wl,--allow-multiple-definition -Wl,-z,relro --tag=disable-shared -static  -Wc,-fPIE -pie -Wc,-fstack-protector-strong -lutil   ../lib/util/libsudo_util.la ../plugins/sudoers/sudoers.la
       > libtool: link: gcc -o sudo conversation.o copy_file.o edit_open.o env_hooks.o exec.o exec_common.o exec_monitor.o exec_nopty.o exec_pty.o get_pty.o hooks.o limits.o load_plugins.o net_ifs.o parse_args.o preserve_fds.o signal.o sudo.o sudo_edit.o tcsetpgrp_nobg.o tgetpass.o ttyname.o utmp.o preload.o -Wl,--enable-new-dtags -Wl,--allow-multiple-definition -Wl,-z -Wl,relro --tag=disable-shared -fPIE -pie -fstack-protector-strong  -lutil ../lib/util/.libs/libsudo_util.a ../plugins/sudoers/.libs/sudoers.a /nix/store/l22kn6ljd9hnq7y8vk333n963mg5fy6b-linux-pam-1.5.1/lib/libpam.so /build/sudo-1.9.7p2/lib/util/.libs/libsudo_util.a -lpthread -ldl -Wl,-rpath -Wl,/nix/store/l22kn6ljd9hnq7y8vk333n963mg5fy6b-linux-pam-1.5.1/lib -Wl,-rpath -Wl,/nix/store/l22kn6ljd9hnq7y8vk333n963mg5fy6b-linux-pam-1.5.1/lib
       > gcc: error: unrecognized command-line option '--tag=disable-shared'
       > make[1]: *** [Makefile:179: sudo] Error 1
       > make[1]: Leaving directory '/build/sudo-1.9.7p2/src'
       > make: *** [Makefile:108: all] Error 2
       For full logs, run 'nix log /nix/store/0xfg0hnxwrr0r3hypnb98wx0kw5g6xyr-sudo-1.9.7p2.drv'.
error: 1 dependencies of derivation '/nix/store/9xcc9jx2csnl498ammnqvsckp0hqq7ag-nixos-system-projektwahl-lit-22.05pre-git.drv' failed to build
error: 1 dependencies of derivation '/nix/store/xkln4hddscbykgaxvg7k47f1qfpphkrf-final.drv' failed to build

Github seems to have a bad day today (at least for me) the comments are duplicated and not connected to the original threads.

Github seems to have a bad day today (at least for me) the comments are duplicated and not connected to the original threads.

That is always like this. The review feature creates some special comments which do weird things which is one of the reasons why I avoid it often.  Some of them are connected when you switch to the files tab and using normal comments would solve this.

Note: some fixes are rather dirty, but right now I'd mainly like to get
the branch up-to-date to upgrade the systems where I use this to 22.05.
Hopefully, I'll get to work on the remaining things soon :)

Is it stable enough to build imperative containers in any way? 😅 Coincidentally, I have been working on m1cr0man/python-nixos-nspawn and I have just reached feature parity with the python script in this PR. Planning to add flake support next, but want to do some testing.

Hey @Ma27, just wondering what's the status of this and if you need development or testing help? From what I understand, this affects/resolves a bunch of things around NixOS containers and it seems like it would unblock further improvements.

@farnoy the main problem recently was a lack of time, but I guess I'll try to get it done before 23.05! So far, the following things need to be done:

[ ] Writing docs
[ ] Resolving all review comments
[ ] Merge in latest master
[ ] Clean up switch-to-configuration.pl. In fact, I'm actually considering to move the nspawn-related logic out into its own program. That way we could reuse the logic for imperative containers and make it easier to deploy them.

I'll try to actually get these things ready during the next weeks and push the changes onto this branch.

I've been using this PR successfully for a while now and made a few changes. The current NixOS container module allows using an existing nixosConfiguration or path so I've implemented a similar feature in my branch. I also added an option to allow using a specialisation of the container's nixosConfiguration. containers-next default.nix
A clever use case for these features is you can easily deploy a production container and then a development/test specialisation of that same container.
I still have a bit to clean up but I thought I'd just comment on my experience with this PR which has been great.

(also posted in #nix-rfc-108:matrix.org)
Hi!
Short update from my side: unfortunately my priorities shifted and I'm quite occupied with a bunch of other things these days, so I'm afraid that right now I don't really have the energy and time to et this finished. What's missing is mostly some cleanup work around imperative containers (the script I hacked together is pretty messy) and writing some docs + a good migration path.
It'd be highly appreciated if somebody could take over from here (cc m1cr0man @Lassulus @arianvp  ), of course I'm still happy to answer questions and give some basic feedback, but that's it I'm afraid.. The current state can be fonud at https://github.com/NixOS/nixpkgs/pull/140669, maintainers should have push access anyways to this branch, otherwise I'd suggest to push the branch to one's own fork.
Sorry that this took me so long, I wanted to announce this for a few weeks already now!
I'll also leave a message in the PR itself, perhaps there are some more people to be found.

Thanks for the update ma27. I am indeed eager to contribute/take over and continue this work. It's a shame you've lost time to contribute but I hope that myself and whoever else comes on board can continue the great work you've done here :slightly_smiling_face:
For those reading this that are maybe not aware, I had developed my own version of the nixos-nspawn declarative container tooling here: https://github.com/m1cr0man/python-nixos-nspawn Short of what is in #216025 (which I do need to update to reflect further work done here), it is standalone and can be imported as a flake. I have been running declarative containers now for over a year at least and it's been working great.
What I'd like to suggest as an action plan right now is getting the minimal viable changes to nixpkgs into master as soon as possible, and then creating a flake to iterate on the imperative and declarative container modules/components before then merging that into master too (if it makes sense). Right now, it's a bit inconvenient to run on a forked nixpkgs for any of RFC108 to work correctly, and I think it will ease adoption over time too. I still need to familiarize myself more with the imperative container management suite and also the migration path/solution for legacy containers.
These are just my thoughts of course, and I'm eager to hear what others think we should do. :smile:

Small update. Currently seeing if it's possible to consolidate the generation of systemd units (nspawn + networkd) between imperative and declarative containers. Right now, declarative container units are generated in Nix whilst the imperative container units are generated in Python, the reason being it's really awkward to make the module work correctly in both scenarios. I have a working (read: buildable but untested) POC here so I'm hopeful it will be possible. My main motive is to reduce the chance of the two deployment methods diverging and to reduce duplicate code.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/nixcon-governance-workshop/32705/9


References in README.md

I noticed that references 4, 6 and 7 are gone. Fortunately, 7 seems to be available at http://statweb.lsu.edu/faculty/marx/glass_paper.pdf.

@echo66 good catch!
i didnt expect that o happen...
we could update the links with new ones, but this will probably keep happening.
we could add copies of the papers to the repo, but this might violate the licenses of some of those journals and conferences?
do you think we should just remove the links from the readme?
-dani

@dswah If there is any problem with licenses, people can request for the link to be taken down.

forgiveness > permission
:)


SDXL punet_quant.mlir fails to compile at ConvertConvToChannelsLastPass

What happened?
Running --mlir-print-ir-after-all, ConvertConvToChannelsLastPass failed:
// -----// IR Dump After ConvertConvToChannelsLastPass Failed (iree-preprocessing-convert-conv-to-channels-last) //----- //
After turning off the layout propagation for packs/unpacks, I got this error (full error in the attached file):
punet_quant.mlir:18483:13: error: 'arith.cmpf' op requires attribute 'predicate'
    %6229 = torch.aten.clamp %6228, %int-128_296, %int127_297 : !torch.vtensor<[2,320,128,128],f16>,
    !torch.int, !torch.int -> !torch.vtensor<[2,320,128,128],f16>

Steps to reproduce your issue

Download punet_quant.mlir
Compile on gfx942:
../iree-build-trace/tools/iree-compile punet_quant.mlir --iree-global-opt-propagate-transposes=true --iree-opt-const-eval=false --iree-opt-outer-dim-concat=true --iree-vm-target-truncate-unsupported-floats --iree-llvmgpu-enable-prefetch=true --iree-opt-data-tiling=false --iree-codegen-gpu-native-math-precision=true --iree-rocm-waves-per-eu=2 --iree-flow-inline-constants-max-byte-length=1 --iree-preprocessing-pass-pipeline="builtin.module(iree-preprocessing-transpose-convolution-pipeline, util.func(iree-preprocessing-pad-to-intrinsics))" --iree-flow-enable-aggressive-fusion --iree-global-opt-enable-fuse-horizontal-contractions=true --iree-opt-aggressively-propagate-transposes=true --iree-codegen-llvmgpu-use-vector-distribution=true --iree-hal-target-backends=rocm --iree-rocm-target-chip=gfx942 --iree-vm-bytecode-module-output-format=flatbuffer-binary --iree-codegen-transform-dialect-library="../sdxl-scripts/specs/attention_and_matmul_spec.mlir" -o punet.vmfb
See error

What component(s) does this issue relate to?
Compiler
Version information
b44581a390956a21c653200da4273d8d03d23571
Additional context
No response

cc @hanhanW

It looks like there is a bug in ConvertConvToChannelsLastPass. @IanWood1 please help triage when you're available, thank you!

After commenting out the propagation layout from ConvertConvToChannelsLastPass, I found that the predicate op was missing from the distributedOp in GPUDistributionPatterns.cpp. I will add a PR for that fix, but still need help triaging the ConvertConvToChannelsLastPass.

It would be good if you can share the IR before the pass, then @IanWood1 can start from there.

The command would be something like iree-compile --mlir-print-ir-before=iree-preprocessing-convert-conv-to-channels-last --mlir-elide-elementsattrs-if-larger=0 --mlir-elide-resource-strings-if-larger=0 ...

@aviator19941 did you get an error before disabling layout propagation for packs/unpack (other than output from --mlir-print-ir-after-failure)?
Without propagation disabled, it appears like DataLayoutPropagationPatterns rewrite patterns are failing to converge. I let the greedy rewriter run with no limit and got an error during verification after teh pass https://gist.github.com/IanWood1/269798dffcde630a06ef70b2c5fcdebd/raw/f5001f37673e57ce4d811da4cca897d6822999c8/punet-compile.log

@aviator19941 did you get an error before disabling layout propagation for packs/unpack (other than output from --mlir-print-ir-after-failure)?
Without propagation disabled, it appears like DataLayoutPropagationPatterns rewrite patterns are failing to converge. I let the greedy rewriter run with no limit and got an error during verification after the pass https://gist.github.com/IanWood1/269798dffcde630a06ef70b2c5fcdebd/raw/f5001f37673e57ce4d811da4cca897d6822999c8/punet-compile.log

let me check if I can reproduce this with the ToM iree and I'll also get you the IR before the pass.

@aviator19941 did you get an error before disabling layout propagation for packs/unpack (other than output from --mlir-print-ir-after-failure)?
Without propagation disabled, it appears like DataLayoutPropagationPatterns rewrite patterns are failing to converge. I let the greedy rewriter run with no limit and got an error during verification after the pass https://gist.github.com/IanWood1/269798dffcde630a06ef70b2c5fcdebd/raw/f5001f37673e57ce4d811da4cca897d6822999c8/punet-compile.log

This is the IR I got before disabling layout propagation https://gist.github.com/aviator19941/f76d3e86754517578807a710ed9d1195.


Add autoconf to vim's build dependencies

While creating a PR updating vim, I noticed that autoconf wasn't specified as a build dependency and caused my build to fail -- I've added it to the PKGBUILD build dependencies.
I don't know of other missing dependencies, but I hope that this PR will help others who maintain the vim PKGBUILD down the road. :)

Actually...I'm not sure if this pull request is necessary...from the ArchWiki:

The group base-devel is assumed to be already installed when building with makepkg. Members of this group should not be included in makedepends array.

I can close this, if desired, but I'm not sure if this project follows the same convention as in the ArchWiki.

I can close this, if desired, but I'm not sure if this project follows the same convention as in the ArchWiki.

Yes, it allows to make makedepends more readable.

Got it. Closing, then! :) Thanks!


Add phpcs command

Is your feature request related to a problem? Please describe
As a module maintainer I want an easy way to lint Drupal coding standards.
Describe the solution you'd like

[ ] Add PHPCS and setup coding standards
[ ] Add DDev phpcs command

Describe alternatives you've considered

Additional context

It appears PHPCS is already installed and configured in the Gitpod environment, but not inside of the DDev environment.
The following command can be run:
./vendor/bin/phpcs -s --standard=Drupal,DrupalPractice --extensions=module,php,install,inc,test,info.yml,js repos/[module]

An example command for DDev: .ddev/comands/web/phpcs
#!/bin/bash

## Description: Run PHP_CodeSniffer
## Usage: phpcs [flags] [args]
## Example: "ddev phpcs contrib/module/druxt"

cd web

php ../vendor/bin/phpcs -s --standard=Drupal,DrupalPractice --extensions=module,php,install,inc,test,info.yml,js $@

If it's in vendor/bin... that means it's in the code, and also inside the container. So not understanding what you're saying about not being able to run it inside the container.

The issue is the Drupal coding standards aren't installed in DDev.
ERROR: the "Drupal" coding standard is not installed. The installed coding standards are MySource, PEAR, PSR1, PSR12, PSR2, Squiz and Zend

But they are installed in the Gitpod environment.
I also haven't confirmed if PHPCS is generally available, or if it's the specific environment or PR that I'm starting from

You wouldn't install the Drupal coding standards in "ddev" would you? You'd install them in the project?

There are good reasons to install these things globally where we're trying to leave the code "as is", like when testing a vanilla drupal install.
Here's how to add phpcs and coder globally, https://stackoverflow.com/questions/61870801/add-global-phpcs-and-drupal-coder-to-ddev-in-custom-dockerfile

We looked into PHPCS while getting the recommended VSCode extensions for Drupal development - https://github.com/shaal/DrupalPod/pull/30


Update ubi tag to the latest available - DO NOT MERGE, yet

Update ubi8 image tag from 8.7 to 8.8

Description

How Has This Been Tested?

Merge criteria:

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

/hold

/unhold

/cherry-pick 2023.1-release

/cherry-pick 2023.1-release

/cherry-pick 2023.1-release