showLicensePage throws RenderFlex overflow error in landscape when fontSize/Display size is largest

Steps to Reproduce

Create test app: flutter create test.
Change fab onPressed method to be like this:

onPressed: () => showLicensePage(
	context: context,
	applicationIcon: Icon(Icons.add),
	applicationVersion: "TEST",
),

Start x86 Emulator Pixel 2 1980x1920 xxhdpi
Open Settings/Display/Advanced and set Font Size to Larger and Display Size to Largest
Rotate emulator in landscape mode
Execute flutter run to start app
Click on fab to show license page

Expected results:
Licenses list without any issues
Actual results:
Black/Yellow markups showing overflow error at the bottom of the screen until licenses list is rendered completely. The error present only during progress indicator stage, then disappears.

Logs

I/flutter (16356): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter (16356): The following assertion was thrown during layout:
I/flutter (16356): A RenderFlex overflowed by 1.00 pixels on the bottom.
I/flutter (16356):
I/flutter (16356): The relevant error-causing widget was:
I/flutter (16356):   MaterialApp file:///Users/apc/Work/test2/lib/main.dart:12:12
I/flutter (16356):
I/flutter (16356): The overflowing RenderFlex has an orientation of Axis.vertical.
I/flutter (16356): The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and
I/flutter (16356): black striped pattern. This is usually caused by the contents being too big for the RenderFlex.
I/flutter (16356): Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the
I/flutter (16356): RenderFlex to fit within the available space instead of being sized to their natural size.
I/flutter (16356): This is considered an error condition because it indicates that there is content that cannot be
I/flutter (16356): seen. If the content is legitimately bigger than the available space, consider clipping it with a
I/flutter (16356): ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex,
I/flutter (16356): like a ListView.
I/flutter (16356): The specific RenderFlex in question is: RenderFlex#00445 relayoutBoundary=up4 OVERFLOWING:
I/flutter (16356):   creator: Column ← LayoutBuilder-[<ConnectionState.waiting>] ← FadeTransition ← KeyedSubtree-[<0>] ←
I/flutter (16356):     Stack ← AnimatedSwitcher ← FutureBuilder<_LicenseData> ← _PackagesView ← _BodyBuilder ← MediaQuery
I/flutter (16356):     ← LayoutId-[<_ScaffoldSlot.body>] ← CustomMultiChildLayout ← ⋯
I/flutter (16356):   parentData: offset=Offset(0.0, 0.0) (can use size)
I/flutter (16356):   constraints: BoxConstraints(0.0<=w<=520.9, 0.0<=h<=240.0)
I/flutter (16356):   size: Size(520.9, 240.0)
I/flutter (16356):   direction: vertical
I/flutter (16356):   mainAxisAlignment: start
I/flutter (16356):   mainAxisSize: max
I/flutter (16356):   crossAxisAlignment: center
I/flutter (16356):   verticalDirection: down
I/flutter (16356): ◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤
I/flutter (16356): ════════════════════════════════════════════════════════════════════════════════════════════════════

[✓] Flutter (Channel master, 1.22.0-10.0.pre.65, on Mac OS X 10.15.6 19G2021, locale en-UA)
    • Flutter version 1.22.0-10.0.pre.65 at /Users/apc/Library/flutter
    • Framework revision 2032a448ed (7 hours ago), 2020-09-02 23:36:19 -0700
    • Engine revision 165abef0a2
    • Dart version 2.10.0 (build 2.10.0-77.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/apc/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/apc/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/apc/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✗] Xcode - develop for iOS and macOS
    ✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
        sudo xcodebuild -runFirstLaunch
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the
        Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install:
        sudo gem install cocoapods

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 48.1.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] Connected device (1 available)
    • sdk gphone x86 (mobile) • emulator-5554 • android-x86 • Android 11 (API 30) (emulator)

! Doctor found issues in 1 category.

@TonicArtos

Hi @arsenioo
I can reproduce the issue

code sample
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Material App Bar'),
      ),
      body: Center(
        child: Container(
          child: Text('Hello World'),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () => showLicensePage(
          context: context,
          applicationIcon: Icon(Icons.add),
          applicationVersion: "TEST",
        ),
      ),
    );
  }
}

logs
Launching lib\main.dart on Android SDK built for x86 in debug mode...
√ Built build\app\outputs\flutter-apk\app-debug.apk.
Connecting to VM Service at ws://<IP_ADDRESS>:60058/--Z1ryBcstU=/ws
D/EGL_emulation( 8330): eglMakeCurrent: 0xe8da9f00: ver 2 0 (tinfo 0xdd9f2c90)
D/eglCodecCommon( 8330): setVertexArrayObject: set vao to 0 (0) 1 0
D/EGL_emulation( 8330): eglMakeCurrent: 0xf407f700: ver 2 0 (tinfo 0xdd9f2a80)
D/EGL_emulation( 8330): eglMakeCurrent: 0xe8da9f00: ver 2 0 (tinfo 0xdd9f2c90)
D/EGL_emulation( 8330): eglMakeCurrent: 0xf407f700: ver 2 0 (tinfo 0xdd9f2a80)

════════ Exception caught by rendering library ═════════════════════════════════
The following assertion was thrown during layout:
A RenderFlex overflowed by 1.00 pixels on the bottom.

The relevant error-causing widget was
    MaterialApp
The overflowing RenderFlex has an orientation of Axis.vertical.
The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and black striped pattern. This is usually caused by the contents being too big for the RenderFlex.

Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the RenderFlex to fit within the available space instead of being sized to their natural size.
This is considered an error condition because it indicates that there is content that cannot be seen. If the content is legitimately bigger than the available space, consider clipping it with a ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex, like a ListView.

The specific RenderFlex in question is: RenderFlex#3cb7a relayoutBoundary=up4 OVERFLOWING
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
A RenderFlex overflowed by 1.00 pixels on the bottom.
The relevant error-causing widget was
    MaterialApp
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
A RenderFlex overflowed by 1.00 pixels on the bottom.
The relevant error-causing widget was
    MaterialApp
════════════════════════════════════════════════════════════════════════════════

flutter doctor -v
[✓] Flutter (Channel master, 1.22.0-10.0.pre.65, on Microsoft Windows [Version 10.0.19041.450], locale en-US)
    • Flutter version 1.22.0-10.0.pre.65 at C:\Code\flutter_master
    • Framework revision 2032a448ed (9 hours ago), 2020-09-02 23:36:19 -0700
    • Engine revision 165abef0a2
    • Dart version 2.10.0 (build 2.10.0-77.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Code\sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = C:\Code\sdk
    • Java binary at: C:\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.7.2)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.7.30413.136
    • Windows 10 SDK version 10.0.18362.0

[✓] Android Studio (version 4.0)
    • Android Studio at C:\Code\android-studio
    • Flutter plugin version 48.1.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[✓] VS Code (version 1.48.2)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.13.2

[✓] Connected device (4 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86    • Android 10 (API 29) (emulator)
    • Windows (desktop)                  • windows       • windows-x64    • Microsoft Windows [Version 10.0.19041.450]
    • Web Server (web)                   • web-server    • web-javascript • Flutter Tools
    • Chrome (web)                       • chrome        • web-javascript • Google Chrome 84.0.4147.135

• No issues found!

CC @gspencergoog

@TonicArtos are you able to take a look at this?

@TonicArtos are you able to take a look at this?

No problems. I'll get it done.

I cannot reproduce this issue with Master (3.6.0-3.0.pre.54). Closing this issue as fixed. If you disagree, please comment with a complete and minimal, reproducible example and I can reopen it. Thank you.


Allow package install/removal from command pallet

Hello, everyone
This is supposed to be marked as a feature idea.
There is a feature in Sublime that simplifies plugin/package management very much and I often find myself trying to use on atom: to use the command pallete to remove packages.
In fact, in sublime you can also do the installation process via the pallete. The pallete is able to unfold into  "submenus/suboptions" to be acessed from there.
I'd like this also in atom, if it can be considered. I'm also considering developing a plugin for that, but as I'm so out of time these days I decided to share the idea here.
Thanks a bunch for the editor. Web tech FTW

This sounds more like a good idea for a package instead of a core functionality.
Atom provides a way of installing packages CLI-based without using the GUI via the bundled apm.
Example: apm install northem-atom-syntax
Check out all commands & options by using apm --help

Thanks for the feedback -- there's already an issue for tracking that feature request: https://github.com/atom/command-palette/issues/53.


"Go to Definition" to wrong file

VSCode Version: 1.19.3 7c4205b5c6e52a53b81c69d2b2dc8a627abaa0ba
OS Version: Windows 10 Pro 10.0.16299 N/A Build 16299

Condition:

2 files with same functions, different some functions
Open 2 files at the same times

Steps to Reproduce:

Right-click and select "Go To Definition" in the 2nd file.
It goes to the 1st file's.
Other (following image attached)
Right-click and select "Go To Definition" in the 2nd file at the line "function execSearch()"
It goes to the 1st files's "function execSearch()"

If I switch the order of these files, then Restart, it still like above. The second's always link to the first one's.
Does this issue occur when all extensions are disabled?: Yes

Please provide a small, self contained code example or sample project

I hope can you can Reproduce this bug with: bug-folder.zip

Open it as the folder.
Open file main1.js (doubel-click), and scroll the end.
Then open file main2.js (double-click), and scroll the end.
Back to main1.js, at the function second1, right-click in first1 and choose 'Go To Definition'
It will go to first1 of main2.js.

Thanks @Onfealive!
Looks like you are running into this issue: https://github.com/Microsoft/TypeScript/issues/14279 By default, we treat all non-module js files as part of the global scope. This makes sense for the browser world where this model is more-or-less accurate, but it can also cause unexpected behavior like this.
My proposal upstream was to create a flag that would force each js file to be treated as a separate module, however we have not seen enough reports of the issue to prioritize implementing this yet. Please leave a comment on the upstream typescript issue if you feel strongly about this issue. Possible workarounds are wrapping your code in self-executing functions (which also prevents them from leaking globals at runtime) or making your files a module by using import or export somewhere in the file
Closing as upstream


Can't "require" with browserify.

Hi!
Good lib, thanks!
But after npm install --save sticky-sidebar and putting require('sticky-sidebar'); in my code, gulp (on building project) says: cannot find module 'sticky-sidebar'.
I think, you need to put main directive to your package.json file.

Yes, with webpack too. Thanks for the great plugin!


Create local setting that store current gate id

Models
Class Setting

GateId : int

Services
Class SettingService

getCurrent() : Setting //if not existed. create it new one

DataAccess
Class SettingRepository
Usage
App.Setting.Current.GateId

Closed #3


Integration Tests - Attempt to run the tests with custom "branch/repo" always defaults to the main branch/repo in docker

Steps taken/Steps to reproduce
Scenario:
Run the integration tests with custom GIT_REPO and GIT_BRANCH (anything else but "main'').
Problem: The docker image is ALWAYS created based on  https://github.com/pyrsia/pyrsia.git and main and the mentioned vars are ignored.
The mentioned variables are ignored in the docker images using the default Pyrsia repo and branch (repo: https://github.com/pyrsia/pyrsia.git, branch: main). This is very misleading since the developer has a wrong impression that the GIT_REPO and GIT_BRANCH are used in all aspects of testing and the tests are run against the indicated repo/branch.
Expected Behavior
Mitigation: The mentioned variables (source code/repo/branch) should be used to create the tests docker images.
Experienced Instance of the bug
N/A
All
latest

PR - https://github.com/pyrsia/pyrsia-integration-tests/pull/17


Performance issue in desktop Safari

Hello everyone,
In our project we have a lot of tethered elements (30+) and the goal is to make them visible when they're inside the parent element.
Everything work fine in Chrome, slow in FF and in Safari tethered elements move only after a delay during scroll.
Can someone explain the difference in behaviours?

+1

On latest Firefox I'm seeing this warning:
This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects for further details and to join the discussion on related tools and features!

Maybe it's related to this issue?


Add an atom-shell target named atom.

I can see that this is in master but not in any stable releases. Any particular reason? Also, any thought towards renaming this to "target: electron" given the rename?

#1106


Issue 134: Change pravega version to 0.8.0

Signed-off-by: Shivesh Ranjan<EMAIL_ADDRESS>Change log description
Changes pravega version to 0.8.0 in gradle.properties.
Purpose of the change
Fixes #134
What the code does
Changes pravega version to 0.8.0 in gradle.properties.
Also changes the compiled jar name's prefix from pravega to schemaregistry.
How to verify it
All tests should pass

Merging myself as the PR is approved


FuzzySharp for non-Latin languages

We would like to use FuzzySharp for string comparison in some non-Latin languages, including Greek and Russian.
Please can you confirm the best way to use FuzzySharp for this purpose is the Extract methods in the Process class, using the parameter (s) => s
Many thanks

That is certainly one way to do it. However, it will obviously depend on your use case. For example, you might want to ignore capitalization, so something like (s) => s.ToLower() might also be appropriate. The lambda you provide here is simply a pre-processing function that should be run on all strings before the comparison. The lambda (s) => s will perform no pre-processing to the strings. If that is what fits your use case, then by all means go for it.
Let me know if you have any further questions.


Move non-linux builds to github

This allows CI to still check windows/macos compile, but actually run in parallel rather than serializing on each platform and wasting valuable CI time

Have to defer @markmandel here, I think there might be some google policy here that prevents this, otherwise I'm all for it.

I had a refresh of our current policies - and GitHub Actions is now definitely on the table 🙌🏻!
I would limit it to anything that doesn't maintain an artifact of some kind / interact with the Google Cloud infrastructure though. Using Cloud Build where there is an artifact, means there's a direct path between the Google Cloud infra - where the artifact gets built - and where it ends up being hosted (even if it ends up being a download on GitHub, it's going through a Google laptop), so we can lean on Google as a whole for security pipeline -- but for just testing, this is totally fine.
The only thought I have is that the current build step via Cloud Build also tests that the cross platform build works at release time. It's probably going to be fine / can be fixed at release time if something does break, but just something to consider.   Also since we release every couple of months, and we run CI all the time, the benefit definitely outweighs any extra time we spend at release.
So I'm happy to merge unless that is a bigger concern for anyone else?


fix(binder): bind symbol for declare function

Fix #7278

Not that easy, convert to draft for first.
Need to consider about redeclaration(the term used in oxc now)
This should be valid:
declare class CCC { }

function CCC() { }


Add text-to-sql functionality to PopSQL

Pardon me for posting this here, but could not find a more suitable repo for it.
Right now, the workflow for developing complex queries involves asking e.g. ChatGPT, then pasting it into a new tab/query in PopSQL. It would be great if text-to-sql functionality was implemented directly to PopSQL, for instance via a new button/icon in the tab window (see screenshot below)

When the new button is clicked, it could bring up a prompt window where the user asks the question that is then translated into SQL.

@idclevxx we do have something like this in the works, which will be made generally available soon. If you'd like to share your PopSQL organization id, I can give you early access.
Thanks for the feedback!

@idclevxx we do have something like this in the works, which will be made generally available soon. If you'd like to share your PopSQL organization id, I can give you early access.
Thanks for the feedback!

Would love to, but would rather not paste it here, do you have an email/alias I can send it to?

@idclevxx you can send an email to<EMAIL_ADDRESS>and we'll get it sorted out.


Support elastalert2 2.5.0

https://github.com/Karql/elastalert2-server/issues/56

Thank you.
Relased: https://github.com/Karql/elastalert2-server/releases/tag/5.0.0-next.6
Images pushed to docker hub.


[Bug]: Header width tied to content width

Describe the bug
In the design system layout, the header wide and fullWidth parameters are determined by the corresponding pageConfig parameters, rather than by pageConfig.header parameters.
This results in a situation where the width of the header is coupled to the width of the page contents.
In some cases an application/site may have some pages that need to use a fullWidth or wide layout while other pages use a standard layout. When users switch between these pages they expect the header to remain unchanged, with for example, nav links remaining in the same position on the screen. Instead the changes in width of the header box cause the contents of the header to appear to move when switching from wide to standard pages.
Expected behaviour / outcome

When switching from a page with wide content to narrow content, the layout of the header is unchanged.
The width of the content can be configured independently from the width of the header.

List the steps necessary to reproduce the bug

Create two pages using the same header using the design system layout
Configure one page with fullWidth:True and one without.
Switch between the pages.
The header can be observed shifting leftwards when moving to the fullWidth page, as it no longer sits in a fixed width container.

Additional context
Where the onsHeader macro is called in the layout template, the lines:
    "wide": pageConfig.wide,
    "fullWidth": pageConfig.fullWidth,

Could instead be:
   "wide": pageConfig.header.wide | default(pageConfig.wide),
   "fullWidth": pageConfig.header.fullWidth  | default(pageConfig.fullWidth),

Allowing the header to be optionally set to a different width than the page contents.
What version of the ONS Design System are you using?
70.0.0
What device(s) are you using?
Desktop
What operating system(s) are you using?
Windows, macOS
What browser(s) are you using?
Firefox, Chrome, Microsoft Edge

Ive linked a PR with some changes on a branch that implements the changes requested and some test examples (albeit with improper names as they were just tests). They can be found in src/foundations/page-template/example-custom-test-two.njk and src/foundations/page-template/example-custom-test.njk and they talk about the request. In this circumstance, this is not a bug of the original feature, rather an enhancement and one that I'm not sure we want to properly implement.
We would have to look deeper into the use case for this request and whether it aligns with the rest of the examples:
It allows for situations like this:

where the header and the footer can be set independently to full-width and wide

Blocked waiting on discussion with designers

Hi @BenLatham can you give us some more information on why you need this? Having discussed this we think that the width of the content should match the width of the header and footer and this is therefore not a bug and is more a feature of the DS. In the case where you need full width content, we think the best experience for the users would be to either have all the pages full width rather than switching between the two or better still would be to display content that you need full width for in a different way so that the content fits the standard layout. However we don't have all the information on your use case.

@rmccar on our site we have several pages where there are quite large data tables (since it's an internal site used by RAP and BDOD the need to compare data quickly outweighed the need for simplicity). These pages need to be full width to avoid the need for horizontal scrolling. On most other pages within the site, however the standard width presentation is preferable, since it provides a cleaner view (such as user journeys where they select the survey and period to display, or search pages). All these pages have a common header and footer. When switching from the wide to the standard pages (and vice-versa) the nav links, page header and other header elements appear to jump from one location to another on the screen, giving a jarring user experience.

After having discussions with Ben we have decided that this isn't something that we can support on the DS so we are going to have to close this issue


'init_cfg and pretrained cannot be specified at the same time'

'init_cfg and pretrained cannot be specified at the same time' 想请问一下这个错误怎么解决，不太清楚怎么造成的

pretrained and init_cfg can not be set at the same time in your config.

I am getting the same error, how do I resolve this?


chore: update lerna to v6.0.3

Pre-flight checklist

[x] I have read the Contributing Guidelines on pull requests.
[ ] not a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.
[ ] not a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation
@juristr talked over upgrading lerna to v6 with @slorber and @yangshun. v6 includes local caching and faster task execution via Nx by default 🎉 .
Configuration Explanation
This PR adds some configuration in nx.json, as well as website/package.json. I've copied the relevant sections here, with some explanation.

nx.json

{
  "tasksRunnerOptions": {
    "default": {
    /**
      * This tells Nx to use its default task runner. In the future, to add remote caching, this would change.
      * We can enable cloud at any time with `npx nx connect-to-nx-cloud`. The current setup should still
      * work with the local cache, and is a good start.
      */
      "runner": "nx/tasks-runners/default",
      "options": {
        /**
          * This tells Nx which scripts should be cached. The array of cacheable scripts
          * is currently maintained only in Nx.json, so this should be updated if more tasks
          * (e.g. test, lint etc) were on the project level rather than at the workspace root.
          */
        "cacheableOperations": [
          "build", // Every project + website has a build task
          "build:fast", // website has this task
          "build:baseUrl", // website has this task
          "build:blogOnly" // website has this task
        ]
      }
    }
  },
  // Think of this as a dictionary of values to use later
  "namedInputs": {
    // The projects primarily rely on any file under their root (i.e. the location of the package.json file).
    // However, they build to the lib folder. We can exclude it here, s.t. it doesn't get calculated into the hash.
    "default": ["{projectRoot}/**/*", "!{projectRoot}/lib/**/*", "!{projectRoot}/.docusaurus/**/*"]
  },
  // This gives us a spot to define some options for **_every_** instance of a script.
  "targetDefaults": {
   // We define the common elements of our build scripts here.
    "build": {
      // Build should take into account the default fileset of the project that is executing it (`default`),
      // as well as, the default fileset for each project that it depends on.
      "inputs": ["default", "^default"],
      // Our builds output to the lib directory, so we tell Nx about it so it can be cached.
      "outputs": ["{projectRoot}/lib"],
      // Run build script from deps before this target.
      "dependsOn": ["^build"]
    }
  },
  "defaultBase": "main"
}

Test Plan
Played around a bit with this, running targets, deleting outputs, changing code and making sure it still worked etc. Here's some screenshots:

Test links

https://blog.nrwl.io/lerna-reborn-whats-new-in-v6-10aec6e9091c

Deploy preview: https://deploy-preview-8318--docusaurus-2.netlify.app/ -- note: no code changes, so this is not changed.
Related issues/PRs
#7333 -- Lerna 6 enables Nx for caching by default, so I think this would close out.

@slorber this PR should be in a good state now, apologies I meant to mark it as draft before commit 92c9e33. Let me know if there's anything else I can do on my side of things.

@slorber Those e2e test failures don't appear to be related to these changes. Are they something that you have seen before?

Hey @slorber! Thanks for the questions. Here are some answers 😄

You can definitely reach out if you have any issues on the Nx front pop up. I think @juristr has been in contact with folks already, feel free to reach out directly to him, or myself, or any other team member that you have contact info for. Additionally, there is a community slack that you can reach out for help on. Several of us keep an eye there, so you should receive an answer in a timely manner.
Yeah, you can revert to previous behavior at any time. IIRC the only step you'd need to take is setting useNx to false in lerna.json. It would then make sense to also delete the nx.json file

Regarding the changed output from yarn watch, you may need to set the output style for Nx to stream. You can set this via an environment variable (NX_STREAM_OUTPUT=true). If invoking Nx directly, rather than through lerna, you can also do it by passing --output-style=stream to the command. I'm checking with a team member if there is an equivalent CLI flag for lerna.

Following up on that last bit, you should be able to add --stream to the lerna commands to keep that output style.

One other thing that you may run into with watch, is that by default when using Nx the maximum number of tasks ran in parallel is a bit lower. This is normally ideal for build and similar tasks, but if you are running watch scripts its not ideal as it would limit the number of tasks ran at the same time. You can add --concurrency 999, or any other number that's big enough, to override this limit where it makes sense.

Thanks
I tried yarn watch --stream --concurrency 999 and indeed it prints the logs similar to what it was before.
There's also warning also displaying temporarily that we didn't have before, and I don't know what's the impact of it:
(node:49771) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [WriteStream]. Use emitter.setMaxListeners() to increase limit

Note: I'm not totally satisfied with our previous setup which consists of running each project independently in tsc watch mode. If you have better to suggest I'm open to change our maintainer workflow. I guess you have more experience on a TS repo build than me 😅
Using lerna + tsc --watch was just a quickfix I added 2 years ago, because at that time we only had full uncached (but incremental) tsc builds: not a great DX.

We have many e2e tests failing unfortunately.
That seems related to our tests that publish our packages to a local Verdaccio npm repository, using lerna publish
See yarn test:build:website, it runs /admin/scripts/test-release.sh
I don't know how lerna publish works with Nx and what makes it fail compared to before 😅

Hey @slorber! Sorry for the longer lapse of communication there. Holidays + Illness had me knocked out for a bit. I hadn't noticed that the failures were related to publishing, that part should not have been affected, but I'll spend some time seeing whats going on if for some reason that was the case.
I can definitely split this up into either 2 or 3 PR's if you'd like. The 3 would look like:

Bump to Lerna 6, Nx disabled
Enable Nx
Setup caching

If 2, the last 2 would be combined.

np, I'm also busy on my side ;)
The smaller the PRs, the more likely they are to pass PR and be merged asap 😄

I'm going to close this one out, split into smaller PRs.


Improve extensions telemetry API

In todays API there are some symbols that help extensions with telemetry, e.g machineId, sessionId, and most importantly isTelemetryEnabled. These are used by our telemetry module and by others.
The existing APIs help you to get the job done but offer little quality of life, aren't always easy to use, and lack hooks that we would like for transparency and cleansing. Our goal is to make it easy for extensions to do the right thing and to be transparent to our user what's happening.
Below is an alternative API that is around a TelemetryLogger and TelemetryAppender. The appender is what does the actual data collecting but it should be used through a logger. With that "indirection" we can do many nice things:

we can do extra PII cleansing for extensions, e.g remove everything that looks like path-name, URI, user-name etc
we can enable/disable telemetry per extension
we echo everything that is logged to the telemetry output channel
we check enablements: logger.logUsage() -> setting say NO ⛔ -> we don't call appender
we can call logError on provider-errors and unhandled extension errors (superseeding https://github.com/microsoft/vscode/issues/45264)

declare module 'vscode' {

	export interface TelemetryLogger {
		readonly onDidChangeEnableStates: Event<TelemetryLogger>;
		readonly isUsageEnabled: boolean;
		readonly isErrorsEnabled: boolean;

                // calls TelemetryAppender#logUsage iff usage telemetry is enabled, echos data to output channel
                // called by extension
		logUsage(...args: any[]): void;

                // calls TelemetryAppender#logError iff error telemetry is enabled, echos data to output channel
                // called by extension
                // ALSO called by VS Code when the owning extension throws, e.g provider or command errors
		logError(err: Error): void;
	}

	export interface TelemetryAppender {
		logUsage(...args: any[]): void;
		logError(err: Error): void;
	}

	export namespace env {
		// BYOTA
		export function createTelemetryLogger(appender: TelemetryAppender): TelemetryLogger;
	}
}

The vscode-extension-telemetry-module would become an instance of a telemetry appender.

Once we get this API in a good proposed state let me know and I can reach out to all extension authors that report telemetry so they slowly start transitioning to this API.

This API continues to look good and adapt. Hoping to have some in product testing  in for debt week. Just missed getting that in this week.

Is per-extension settings going to be part of the initial release?

Is per-extension settings going to be part of the initial release?

It is not. Just shared output channel, cleaning done by VS code core, and logging of ext host errors caused by your extension to your registered telemetry logger

As such, would it be possible to include a means of adding custom PII filtering logic? e.g. a method or list of methods to pass things through that input a string and output an amended string (or the same string if no changes are needed)?

I don't think there are any plans now for anything like this. What would you expect this to look like? Is it a regex that can be run on all the values and you pass a regex and a replacement value sort of similar to the ReplacementOptions of the current module? I think right now our story for these advanced cases is that your TelemetryAppender (names subject to change) which you contribute and received a TelemetryLogger back is called last and therefore you can technically intercept and do anything with the data payload after it is returned to you in order to be sent. The downside being we log what is being sent before it goes off to your TelemetryAppender meaning the specialty PII that you're not sending is being logged to the output channel.

A regex + replacement is one option but it might be more flexible to accept a function that does string in -> string out. I think the issue of it being logged before going to the TelemetryAppender is significant; what the user sees logged, they are going to think is uploaded--and that belief would be reinforced if some of the PII is masked (the stuff the core library knows about), but not the additional things supplied by the extension.

@bwateratmsft We discussed this today at the API sync and still haven't a bit of hard time understanding how this can help.
This would be the current flow. I don't see how moving the your cleaning piece into our portion of the flow helps at all. We don't clean common properties because they're static and therefore should always be void of PII. So therefore we would just be calling your function right after you call log anyways. This means it's better for you to just call your cleaning and then call log.
Your cleaning -> you call log -> our cleaning -> we mix-in common properties -> output channel -> logged to endpoint

Done!

@lramos15 @jrieken Please see https://github.com/microsoft/vscode/issues/171996#issuecomment-1400533930
Do extensions need to be fixed?


On network change (e.g. wifi -> cellular) okhttp on android fails to connect to a reachable endpoint

okhttp:3.12.1
okio:1.16.0

I wrote a simple loop that will synchronously execute "GET www.lookout.com" every 250 ms.
When I flip-flop between wifi and cellular network a couple of times, then the okhttp fails to connect to endpoint "wireless.cingular.com"; I am not sure what this endpoint is, my assumption is - its a DNS server for cellular network
If switch networks again or launch another similar loop (in-parallel - which shares the OkHttpClient), then it breaks out of these failures and starts working again

03-24 11:57:40.232 30296 12290 I AP-TESTHARNESS: [rest-client] [191 ms] responseBodyEnd: byteCount=129359
03-24 11:57:40.232 30296 12290 I AP-TESTHARNESS: [rest-client] [192 ms] connectionReleased
03-24 11:57:40.232 30296 12290 I AP-TESTHARNESS: [rest-client] [192 ms] callEnd

everything seem to be working fine, I just disabled wifi here, so underlying active network will be cellular network:
03-24 11:57:40.517 30296 12290 I AP-TESTHARNESS: [rest-client] [0 ms] callStart: Request{method=GET, url=https://www.lookout.com/, tags={}}
03-24 11:57:40.519 30296 12290 I AP-TESTHARNESS: [rest-client] [1 ms] connectionAcquired: Connection{www.lookout.com:443, proxy=DIRECT hostAddress=www.lookout.com/<IP_ADDRESS>:443 cipherSuite=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 protocol=http/1.1}
03-24 11:57:40.519 30296 12290 I AP-TESTHARNESS: [rest-client] [2 ms] requestHeadersStart
03-24 11:57:40.519 30296 12290 I AP-TESTHARNESS: [rest-client] [2 ms] requestHeadersEnd
03-24 11:57:40.519 30296 12290 I AP-TESTHARNESS: [rest-client] [2 ms] responseHeadersStart
03-24 11:57:40.589 30296 12290 I AP-TESTHARNESS: [rest-client] [72 ms] connectionReleased
03-24 11:57:40.591 30296 12290 I AP-TESTHARNESS: [rest-client] [73 ms] dnsStart: www.lookout.com
03-24 11:57:40.597 30296 12290 I AP-TESTHARNESS: [rest-client] [79 ms] callFailed: java.net.UnknownHostException: Unable to resolve host "www.lookout.com": No address associated with hostname

it failed here and keeps failing for a while
03-24 11:57:48.639 30296 12290 I AP-TESTHARNESS: [rest-client] [0 ms] callStart: Request{method=GET, url=https://www.lookout.com/, tags={}}
03-24 11:57:48.646 30296 12290 I AP-TESTHARNESS: [rest-client] [6 ms] dnsStart: wireless.cingular.com
03-24 11:57:48.652 30296 12290 I AP-TESTHARNESS: [rest-client] [12 ms] dnsEnd: [wireless.cingular.com/<IP_ADDRESS>]
03-24 11:57:48.654 30296 12290 I AP-TESTHARNESS: [rest-client] [14 ms] connectStart: wireless.cingular.com/<IP_ADDRESS>:80 HTTP @ wireless.cingular.com:80
03-24 11:57:49.674 30296 12290 I AP-TESTHARNESS: [rest-client] [1035 ms] connectFailed: null java.net.ConnectException: Failed to connect to wireless.cingular.com/<IP_ADDRESS>:80
03-24 11:57:49.678 30296 12290 I AP-TESTHARNESS: [rest-client] [1039 ms] callFailed: java.net.ConnectException: Failed to connect to wireless.cingular.com/<IP_ADDRESS>:80
03-24 11:57:49.950 30296 12290 I AP-TESTHARNESS: [rest-client] [0 ms] callStart: Request{method=GET, url=https://www.lookout.com/, tags={}}
03-24 11:57:49.954 30296 12290 I AP-TESTHARNESS: [rest-client] [3 ms] dnsStart: wireless.cingular.com
03-24 11:57:49.955 30296 12290 I AP-TESTHARNESS: [rest-client] [4 ms] dnsEnd: [wireless.cingular.com/<IP_ADDRESS>]
03-24 11:57:49.957 30296 12290 I AP-TESTHARNESS: [rest-client] [6 ms] connectStart: wireless.cingular.com/<IP_ADDRESS>:80 HTTP @ wireless.cingular.com:80
03-24 11:57:50.976 30296 12290 I AP-TESTHARNESS: [rest-client] [1025 ms] connectFailed: null java.net.ConnectException: Failed to connect to wireless.cingular.com/<IP_ADDRESS>:80
03-24 11:57:50.978 30296 12290 I AP-TESTHARNESS: [rest-client] [1027 ms] callFailed: java.net.ConnectException: Failed to connect to wireless.cingular.com/<IP_ADDRESS>:80
03-24 11:57:51.267 30296 12290 I AP-TESTHARNESS: [rest-client] [0 ms] callStart: Request{method=GET, url=https://www.lookout.com/, tags={}}
03-24 11:57:51.270 30296 12290 I AP-TESTHARNESS: [rest-client] [3 ms] dnsStart: wireless.cingular.com
03-24 11:57:51.274 30296 12290 I AP-TESTHARNESS: [rest-client] [7 ms] dnsEnd: [wireless.cingular.com/<IP_ADDRESS>]
03-24 11:57:51.275 30296 12290 I AP-TESTHARNESS: [rest-client] [8 ms] connectStart: wireless.cingular.com/<IP_ADDRESS>:80 HTTP @ wireless.cingular.com:80
03-24 11:57:52.284 30296 12290 I AP-TESTHARNESS: [rest-client] [1017 ms] connectFailed: null java.net.ConnectException: Failed to connect to wireless.cingular.com/<IP_ADDRESS>:80
03-24 11:57:52.287 30296 12290 I AP-TESTHARNESS: [rest-client] [1019 ms] callFailed: java.net.ConnectException: Failed to connect to wireless.cingular.com/<IP_ADDRESS>:80

Here is the fix part:
still failing
03-24 12:21:16.331 30296 12290 I AP-TESTHARNESS: [rest-client] [0 ms] callStart: Request{method=GET, url=https://www.lookout.com/, tags={}}
03-24 12:21:16.332 30296 12290 I AP-TESTHARNESS: [rest-client] [1 ms] dnsStart: wireless.cingular.com
03-24 12:21:16.333 30296 12290 I AP-TESTHARNESS: [rest-client] [2 ms] dnsEnd: [wireless.cingular.com/<IP_ADDRESS>]
03-24 12:21:16.333 30296 12290 I AP-TESTHARNESS: [rest-client] [2 ms] connectStart: wireless.cingular.com/<IP_ADDRESS>:80 HTTP @ wireless.cingular.com:80
03-24 12:21:17.348 30296 12290 I AP-TESTHARNESS: [rest-client] [1016 ms] connectFailed: null java.net.ConnectException: Failed to connect to wireless.cingular.com/<IP_ADDRESS>:80
03-24 12:21:17.348 30296 12290 I AP-TESTHARNESS: [rest-client] [1017 ms] callFailed: java.net.ConnectException: Failed to connect to wireless.cingular.com/<IP_ADDRESS>:80

I launched another thread 30296 20313, due to which last-but-one call on the extant thread works:
03-24 12:21:17.616 30296 12290 I AP-TESTHARNESS: [rest-client] [0 ms] callStart: Request{method=GET, url=https://www.lookout.com/, tags={}}
03-24 12:21:17.618 30296 12290 I AP-TESTHARNESS: [rest-client] [2 ms] dnsStart: wireless.cingular.com
03-24 12:21:17.618 30296 12290 I AP-TESTHARNESS: [rest-client] [2 ms] dnsEnd: [wireless.cingular.com/<IP_ADDRESS>]
03-24 12:21:17.618 30296 12290 I AP-TESTHARNESS: [rest-client] [2 ms] connectStart: wireless.cingular.com/<IP_ADDRESS>:80 HTTP @ wireless.cingular.com:80
03-24 12:21:18.917 30296 12290 I AP-TESTHARNESS: [rest-client] [1301 ms] secureConnectStart
03-24 12:21:19.023 30296 12290 I AP-TESTHARNESS: [rest-client] [1407 ms] secureConnectEnd
03-24 12:21:19.024 30296 12290 I AP-TESTHARNESS: [rest-client] [1408 ms] connectEnd: http/1.1
03-24 12:21:19.024 30296 12290 I AP-TESTHARNESS: [rest-client] [1408 ms] connectionAcquired: Connection{www.lookout.com:443, proxy=HTTP @ wireless.cingular.com:80 hostAddress=wireless.cingular.com/<IP_ADDRESS>:80 cipherSuite=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 protocol=http/1.1}
03-24 12:21:19.024 30296 12290 I AP-TESTHARNESS: [rest-client] [1408 ms] requestHeadersStart
03-24 12:21:19.024 30296 12290 I AP-TESTHARNESS: [rest-client] [1408 ms] requestHeadersEnd
03-24 12:21:19.024 30296 12290 I AP-TESTHARNESS: [rest-client] [1408 ms] responseHeadersStart
03-24 12:21:19.317 30296 12290 I AP-TESTHARNESS: [rest-client] [1701 ms] responseHeadersEnd: Response{protocol=http/1.1, code=200, message=OK, url=https://www.lookout.com/}
03-24 12:21:19.317 30296 12290 I AP-TESTHARNESS: [rest-client] [1701 ms] responseBodyStart
03-24 12:21:19.848 30296 12290 I AP-TESTHARNESS: [rest-client] [2232 ms] responseBodyEnd: byteCount=129359
03-24 12:21:19.849 30296 12290 I AP-TESTHARNESS: [rest-client] [2233 ms] connectionReleased
03-24 12:21:19.849 30296 12290 I AP-TESTHARNESS: [rest-client] [2233 ms] callEnd
03-24 12:21:20.111 30296 12290 I AP-TESTHARNESS: [rest-client] [0 ms] callStart: Request{method=GET, url=https://www.lookout.com/, tags={}}
03-24 12:21:20.112 30296 12290 I AP-TESTHARNESS: [rest-client] [0 ms] connectionAcquired: Connection{www.lookout.com:443, proxy=HTTP @ wireless.cingular.com:80 hostAddress=wireless.cingular.com/<IP_ADDRESS>:80 cipherSuite=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 protocol=http/1.1}
03-24 12:21:20.112 30296 12290 I AP-TESTHARNESS: [rest-client] [0 ms] requestHeadersStart
03-24 12:21:20.112 30296 12290 I AP-TESTHARNESS: [rest-client] [1 ms] requestHeadersEnd
03-24 12:21:20.112 30296 12290 I AP-TESTHARNESS: [rest-client] [1 ms] responseHeadersStart

this is the actual new thread (but as you can see from logs just above, things seem to have fixed
03-24 12:21:20.136 30296 20313 I AP-TESTHARNESS: [rest-client] [0 ms] callStart: Request{method=GET, url=https://www.lookout.com/, tags={}}
03-24 12:21:20.137 30296 20313 I AP-TESTHARNESS: [rest-client] [0 ms] dnsStart: wireless.cingular.com
03-24 12:21:20.140 30296 20313 I AP-TESTHARNESS: [rest-client] [3 ms] dnsEnd: [wireless.cingular.com/<IP_ADDRESS>]
03-24 12:21:20.140 30296 20313 I AP-TESTHARNESS: [rest-client] [3 ms] connectStart: wireless.cingular.com/<IP_ADDRESS>:80 HTTP @ wireless.cingular.com:80
03-24 12:21:20.413 30296 12290 I AP-TESTHARNESS: [rest-client] [301 ms] responseHeadersEnd: Response{protocol=http/1.1, code=200, message=OK, url=https://www.lookout.com/}
03-24 12:21:20.413 30296 12290 I AP-TESTHARNESS: [rest-client] [301 ms] responseBodyStart
03-24 12:21:20.616 30296 20313 I AP-TESTHARNESS: [rest-client] [479 ms] secureConnectStart
03-24 12:21:20.783 30296 12290 I AP-TESTHARNESS: [rest-client] [671 ms] responseBodyEnd: byteCount=129359
03-24 12:21:20.783 30296 12290 I AP-TESTHARNESS: [rest-client] [672 ms] connectionReleased
03-24 12:21:20.783 30296 12290 I AP-TESTHARNESS: [rest-client] [672 ms] callEnd
03-24 12:21:20.932 30296 20313 I AP-TESTHARNESS: [rest-client] [795 ms] secureConnectEnd
03-24 12:21:20.932 30296 20313 I AP-TESTHARNESS: [rest-client] [795 ms] connectEnd: http/1.1
03-24 12:21:20.932 30296 20313 I AP-TESTHARNESS: [rest-client] [795 ms] connectionAcquired: Connection{www.lookout.com:443, proxy=HTTP @ wireless.cingular.com:80 hostAddress=wireless.cingular.com/<IP_ADDRESS>:80 cipherSuite=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 protocol=http/1.1}
03-24 12:21:20.932 30296 20313 I AP-TESTHARNESS: [rest-client] [795 ms] requestHeadersStart
03-24 12:21:20.932 30296 20313 I AP-TESTHARNESS: [rest-client] [795 ms] requestHeadersEnd
03-24 12:21:20.932 30296 20313 I AP-TESTHARNESS: [rest-client] [795 ms] responseHeadersStart
03-24 12:21:21.054 30296 12290 I AP-TESTHARNESS: [rest-client] [0 ms] callStart: Request{method=GET, url=https://www.lookout.com/, tags={}}
03-24 12:21:21.056 30296 12290 I AP-TESTHARNESS: [rest-client] [2 ms] connectionAcquired: Connection{www.lookout.com:443, proxy=HTTP @ wireless.cingular.com:80 hostAddress=wireless.cingular.com/<IP_ADDRESS>:80 cipherSuite=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 protocol=http/1.1}
03-24 12:21:21.057 30296 12290 I AP-TESTHARNESS: [rest-client] [2 ms] requestHeadersStart
03-24 12:21:21.057 30296 12290 I AP-TESTHARNESS: [rest-client] [3 ms] requestHeadersEnd
03-24 12:21:21.057 30296 12290 I AP-TESTHARNESS: [rest-client] [3 ms] responseHeadersStart
03-24 12:21:21.168 30296 20313 I AP-TESTHARNESS: [rest-client] [1031 ms] responseHeadersEnd: Response{protocol=http/1.1, code=200, message=OK, url=https://www.lookout.com/}
03-24 12:21:21.168 30296 20313 I AP-TESTHARNESS: [rest-client] [1031 ms] responseBodyStart
03-24 12:21:21.379 30296 12290 I AP-TESTHARNESS: [rest-client] [324 ms] responseHeadersEnd: Response{protocol=http/1.1, code=200, message=OK, url=https://www.lookout.com/}
03-24 12:21:21.379 30296 12290 I AP-TESTHARNESS: [rest-client] [325 ms] responseBodyStart
03-24 12:21:21.651 30296 12290 I AP-TESTHARNESS: [rest-client] [597 ms] responseBodyEnd: byteCount=129359
03-24 12:21:21.652 30296 12290 I AP-TESTHARNESS: [rest-client] [597 ms] connectionReleased
03-24 12:21:21.652 30296 12290 I AP-TESTHARNESS: [rest-client] [597 ms] callEnd

Question/Notes:

How do I dump internal state of okhttp, to get more visibility into why does it fail to connect
I wonder for second thread, if we are instantiating some okhttp API call, which unravels everything
I also see newCall remains stuck ranging from 1 minute to 1 hour

Test Code:
A button in test app triggers this code
OkHttpClient okHttpClient = getSharedOkHttpClientInstance();
Request = <GET www.lookout.com>
for (int i = 1; i <= 10000; i++) {
    String tag = Thread.currentThread().getName() + "-" + i;
    Response response = null;
    long startMs = System.currentTimeMillis();
    try {
        response = okHttpClient.newCall(request).execute();
        long tookMs = System.currentTimeMillis() - startMs;
        if (response != null && isSuccess(response.getHttpStatusCode())) {
            sLogger.info("***{}: success: took={}, resp={}",
                tag, tookMs, response.toString().substring(0, 40));
        } else {
            sLogger.info("***{}: failed: took={}, respCode={}",
                tag, tookMs, response == null ? 0 : response.getHttpStatusCode());
        }
    } catch (Exception e) {
        long tookMs = System.currentTimeMillis() - startMs;
        sLogger.warn("***" + tag + ": failed: took=" + tookMs + ", exception=" +
            e.getMessage(), e);
    }
    Thread.sleep(250);
}

Our app has the same problem
Is there a solution?

wireless.cingular.com looks like MMS Proxy of APN Setiing in Mobile Phone.
Refer to Cingular APN Settings

parser gslb dns exception:java.net.UnknownHostException: Unable to resolve host

This issue is still present... Is there any workaround at least?

I suspect related to https://github.com/square/okhttp/issues/3278

We see this issue in our app too. Any solution or workaround for this ?

@sharun Do you have any updates here ? I see mainly in Android 13 Samsung/Huawei devices.

Based on the caching in Android, I'm going to close this.
https://cs.android.com/android/platform/superproject/main/+/main:libcore/ojluni/src/main/java/java/net/Inet6AddressImpl.java
which calls
https://cs.android.com/android/platform/superproject/main/+/main:libcore/luni/src/main/java/java/net/AddressCache.java;l=30?q=AddressCache&sq=
Results are cached for 2 seconds, and the DNS.System is network unaware. You can implement a custom DNS pinning to a network, but we haven't currently done that.
wireless.cingular.com is being configured as a proxy which is why you are seeing it in your results.


Jenkins:

I added plugin "Login with google plugin" post that login stop working and facing the below error:

That’s an error.

Error: invalid_request
device_id and device_name are required for private IP: http://<private_ip>:8080/securityRealm/finishLogin
Can you please provide a resolution.

Yes, already followed the steps described here "http://www.tothenew.com/blog/jenkins-google-authentication/".
Google plugin is required because of new implementation.
Actually, it's re-directing to private IP instead of public IP.

In that case use dns hostname mapping (rather than ip address)

for example jenkins.mydomain.com


Adding new value to Firestore database wrecks the item list in Google Map

Steps to Reproduce

...
...
...

Logs

To investigate we would need a minimal runnable reproduction
as a single file so that we can just copy your code into lib/main.dart of a new project and run to reproduce.
If you think this is actually a Flutter issue, please create a new issue with the issue template properly filled.


Inside if/else/end, rubocop complains about missing guard clause instead of extraneous return

Rubocop behaves oddly on:
def positive?(number)
  if number > 0
    return true
  else
    false
  end
end

Expected behavior
Rubocop complains about unnecessary return statement.
Actual behavior
Rubocop complains about missing guard clause.
Steps to reproduce the problem
Save the ruby snippet above in test.rb and run rubocop. You'll see:
$ rubocop test.rb
Inspecting 1 file
C

Offenses:

test.rb:2:3: C: Use a guard clause instead of wrapping the code inside a conditional expression.
  if number > 0
  ^^

1 file inspected, 1 offense detected

RuboCop version
Include the output of rubocop -V:
$ bundle exec rubocop -V
0.37.2 (using Parser <IP_ADDRESS>, running on ruby 2.3.0 x86_64-linux)

RuboCop wants:
def positive?(number)
  return true if number > 0
  false
end

This can be closed.

@segiddins That's exactly the problem. Please notice that rubocop is also fine after I remove the return statement.
What I'm saying is that I find it odd that
def positive?(number)
  return true if number > 0
  false
end

over
def positive?(number)
  if number > 0
   true
  else
    false
  end
end

Why don't you just write:
def positive?(number)
  number > 0
end

Numbers, comparison, true and false were just an example. Sorry for not making this clear.
In general, I think this:
def some_method(argument)
  if condition?(argument)
    return operation1(argument)
  else
    operation2(argument)
  end
end

should be turned into
def some_method(argument)
  if condition?(argument)
    operation1(argument)
  else
    operation2(argument)
  end
end

instead of
def some_method(argument)
  return operation1(argument) if condition?(argument)
  operation2(argument)
end

I think @gregnavis's point is valid. Using the default configuration, both of the above mentioned alternatives are equally good. It's just that Style/RedundantReturn doesn't currently look into if-branches. If it did, we'd have two offenses. I don't know which one of them would have precedence when auto-correcting, though.

Any thoughts? If you think that
def some_method(argument)
  if condition?(argument)
    operation1(argument)
  else
    operation2(argument)
  end
end

should be preferred then I might be able to spend time on contributing a patch.

If you think that [if/else/end] should be preferred then I might be able to spend time on contributing a patch.

No, disable the Style/GuardClause cop in your Rubocop config.

@mikegee, I'm sorry for not being clear. My point was being able to continue using Style/GuardClause as it's useful in many cases. It simply isn't too smart when it sees:
def some_method(argument)
  if condition?(argument)
    return operation1(argument)
  else
    operation2(argument)
  end
end


Feature request: build instructions for Linux

Hi,
This projects looks very interesting! As an old demoscener, I really appreciate the visuals.
I'm not sure if this project supports Linux, but I gave it a shot.
I tried msbuild. I assume that I'm running the wrong build command and/or that I am missing a dependency.
Here is the output I got from msbuild:
Microsoft (R) Build Engine version 16.10.1 for Mono
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "-m" switch.
Build started 13.06.2022 12.36.28.
Project "/home/afr/clones/t3/t3.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Debug|Any CPU".
/home/afr/clones/t3/t3.sln.metaproj : error MSB3202: The project file "/home/afr/clones/t3/t3/t3.csproj" was not found. [/home/afr/clones/t3/t3.sln]
Project "/home/afr/clones/t3/t3.sln" (1) is building "/home/afr/clones/t3/Core/Core.csproj" (2) on node 1 (default targets).
/usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(1191,3): error MSB4019: The imported project "/usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets" was not found. Confirm that the expression in the Import declaration ";/usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk/targets/../../Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets" is correct, and that the file exists on disk. [/home/afr/clones/t3/Core/Core.csproj]
Done Building Project "/home/afr/clones/t3/Core/Core.csproj" (default targets) -- FAILED.
Project "/home/afr/clones/t3/t3.sln" (1) is building "/home/afr/clones/t3/Operators/Operators.csproj" (3) on node 1 (default targets).
/usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(267,5): error NETSDK1004: Assets file '/home/afr/clones/t3/Operators/obj/project.assets.json' not found. Run a NuGet package restore to generate this file. [/home/afr/clones/t3/Operators/Operators.csproj]
Done Building Project "/home/afr/clones/t3/Operators/Operators.csproj" (default targets) -- FAILED.
Project "/home/afr/clones/t3/t3.sln" (1) is building "/home/afr/clones/t3/Player/Player.csproj" (4) on node 1 (default targets).
/usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(1191,3): error MSB4019: The imported project "/usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets" was not found. Confirm that the expression in the Import declaration ";/usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk/targets/../../Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets" is correct, and that the file exists on disk. [/home/afr/clones/t3/Player/Player.csproj]
Done Building Project "/home/afr/clones/t3/Player/Player.csproj" (default targets) -- FAILED.
Done Building Project "/home/afr/clones/t3/t3.sln" (default targets) -- FAILED.

Build FAILED.

"/home/afr/clones/t3/t3.sln" (default target) (1) ->
(Build target) ->
  /home/afr/clones/t3/t3.sln.metaproj : error MSB3202: The project file "/home/afr/clones/t3/t3/t3.csproj" was not found. [/home/afr/clones/t3/t3.sln]

"/home/afr/clones/t3/t3.sln" (default target) (1) ->
"/home/afr/clones/t3/Core/Core.csproj" (default target) (2) ->
  /usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(1191,3): error MSB4019: The imported project "/usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets" was not found. Confirm that the expression in the Import declaration ";/usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk/targets/../../Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets" is correct, and that the file exists on disk. [/home/afr/clones/t3/Core/Core.csproj]

"/home/afr/clones/t3/t3.sln" (default target) (1) ->
"/home/afr/clones/t3/Operators/Operators.csproj" (default target) (3) ->
(ResolvePackageAssets target) ->
  /usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(267,5): error NETSDK1004: Assets file '/home/afr/clones/t3/Operators/obj/project.assets.json' not found. Run a NuGet package restore to generate this file. [/home/afr/clones/t3/Operators/Operators.csproj]

"/home/afr/clones/t3/t3.sln" (default target) (1) ->
"/home/afr/clones/t3/Player/Player.csproj" (default target) (4) ->
  /usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(1191,3): error MSB4019: The imported project "/usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets" was not found. Confirm that the expression in the Import declaration ";/usr/share/dotnet/sdk/6.0.102/Sdks/Microsoft.NET.Sdk/targets/../../Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets" is correct, and that the file exists on disk. [/home/afr/clones/t3/Player/Player.csproj]

    0 Warning(s)
    4 Error(s)

Time Elapsed 00:00:00.84

This is a feature request for adding build instructions for Linux to the README.md file.
Best regards,
Alexander F. Rødseth

+1 ! that would be awesome indeed, this project looks highly interesting.
all the best.

T3 requires DirectX 11, which obviously is Windows-only.
However, I suppose it should be possible to utilize something like https://github.com/Joshua-Ashton/dxvk-native to make a Linux port.

Thanks for the answer.

Yes, I've read about the requirements .. thanks a lot for your answer anyway, much appreciated !

Closing this have a single issue at #77


3.2 Beta 1 new project wizard can't create directory

Godot version:
3.2 beta 1
OS/device including version:
Windows 10
Issue description:
The new project wizard can't seem to create a directory for the project.
Even creating a directory for the new project outside of the wizard, and then selecting it in the wizard has a problem. It supposedly creates the project, but then shows a broken icon in the project list and won't open it.
I'm running as a normal user. The Godot exe is on my desktop, and I'm trying to create the project in a directory that the user has full permissions to (in the desktop, dir)
Steps to reproduce:

Open Godot
Click "NewProject"
Click "Create Folder"

Minimal reproduction project:

I can't reproduce it. Does it work with earlier versions in the same directory?

Ha, I figured it out, maybe this will be helpful to someone else. Windows 10 has a (new?) feature:
"Controller Folder Access" under Settings -> Virus & threat protection -> Ransomware protection
It will block programs it finds suspicious from modifying files. You can allow individual folder/app access, but some times it doesn't notify you that it has blocked things apparently.
So you can just turn the feature off entirely if it's a problem for you.
Turning off Controller Folder Access fixed this problem for me.


run once gif issues

Hi. I have a problem on displaying gif image with "run once" option. Its a gif that is set to loop false.
The first render is good.
And by the time you change the state or remove and add the image. It will not continue playing. It pauses frame by frame.
Steps to Reproduce

Import gif asset that has option of run once.
render it
change state to toggle between gif and png

OS: Android

Hi @kimsean,
Please provide your flutter doctor -v  and a minimal complete reproducible code sample along with steps to reproduce so that we can investigate this issue.
Please provide any relevant assets as well. Any recordings that capture the issue would also be helpful.
Thank you

Hi, Kindly try this on dartpad. This is exactly the same with my issue.
import 'package:flutter/material.dart';

const Color darkBlue = Color.fromARGB(255, 18, 32, 47);

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(
        scaffoldBackgroundColor: darkBlue,
      ),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: TestStatefulWidget(),
        ),
      ),
    );
  }
}

class TestStatefulWidget extends StatefulWidget {
  const TestStatefulWidget({super.key});

  @override
  State<TestStatefulWidget    > createState() => _TestStatefulWidgetState();
}

class _TestStatefulWidgetState extends State<TestStatefulWidget> {

  var display = false;

  @override
  Widget build(BuildContext context) {
    return Container(
      width: 500,
      height: 500,
      color: Colors.red,
      child: Column(
        children: [
          Container(
            height: 150,
            width: 150,
            color: Colors.green,
            child: TextButton(
              onPressed: () {
                  setState(() {
                    display = display ? false : true;
                  });
              },
              child: Text('SHOW/HIDE '+ display.toString())
            )
          ),
          Container(
            height: 150,
            width: 150,
            color: Colors.blue,
            child: Image.network(
              display ?
              'https://i.ibb.co/BLFzkpH/output-onlinegiftools.gif'
              :
              'https://png.pngtree.com/element_our/20190528/ourmid/pngtree-2019-ppt-example-pencil-drawing-png-format-image_1139023.jpg'
            )
          ),
        ]
      )
    );
  }
}

Hi @kimsean,
Please provide your flutter doctor -v and a minimal complete reproducible code sample along with steps to reproduce so that we can investigate this issue.
Please provide any relevant assets as well. Any recordings that capture the issue would also be helpful.
Thank you

Hi @kimsean,
Please provide your flutter doctor -v and a minimal complete reproducible code sample along with steps to reproduce so that we can investigate this issue.
Please provide any relevant assets as well. Any recordings that capture the issue would also be helpful.
Thank you

Here is also my flutter doctor -v
➜  tactics_arena git:(test) ✗ flutter doctor -v
[!] Flutter (Channel stable, 3.7.7, on macOS 12.6 21G115 darwin-arm64 (Rosetta), locale en-PH)
    • Flutter version 3.7.7 on channel stable at /Users/devkim/Documents/flutter_environment/flutter
    ! Warning: `dart` on your path resolves to /opt/homebrew/Cellar/dart/2.18.6/libexec/bin/dart, which is not inside your current Flutter SDK checkout at
      /Users/devkim/Documents/flutter_environment/flutter. Consider adding /Users/devkim/Documents/flutter_environment/flutter/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2ad6cd72c0 (12 days ago), 2023-03-08 09:41:59 -0800
    • Engine revision 1837b5be5f
    • Dart version 2.19.4
    • DevTools version 2.20.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[!] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/devkim/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14B47b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

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

[✓] Connected device (6 available)
    • ASUS I005DA (mobile)       • M5AIGF00A30                         • android-arm64  • Android 12 (API 31) • com.apple.CoreSimulator.SimRuntime.iOS-16-1 (simulator)
    • macOS (desktop)            • macos                                    • darwin-arm64   • macOS 12.6 21G115 darwin-arm64 (Rosetta)
    • Chrome (web)               • chrome                                   • web-javascript • Google Chrome 111.0.5563.64

[✓] HTTP Host Availability
    • All required HTTP hosts are available
    ```

@kimsean
does the code below help?

code sample
import 'package:flutter/material.dart';

abstract class Images {
  static const pencil = 'https://png.pngtree.com/element_our/20190528/ourmid/'
      'pngtree-2019-ppt-example-pencil-drawing-png-format-image_1139023.jpg';
  static const monster = 'https://i.ibb.co/BLFzkpH/output-onlinegiftools.gif';
}

void main() => runApp(
      const MaterialApp(
        debugShowCheckedModeBanner: false,
        home: MyHomepage(),
      ),
    );

class MyHomepage extends StatefulWidget {
  const MyHomepage({super.key});

  @override
  State<MyHomepage> createState() => _MyHomepageState();
}

class _MyHomepageState extends State<MyHomepage> {
  late final ValueNotifier<bool> _notifier;

  @override
  void initState() {
    _notifier = ValueNotifier(false);
    super.initState();
  }

  @override
  void dispose() {
    _notifier.dispose();
    super.dispose();
  }

  @override
  Widget build(context) => Scaffold(
        body: Center(
          child: ValueListenableBuilder(
            valueListenable: _notifier,
            child: Image.network(Images.pencil),
            builder: (context, value, child) =>
                value ? const GifImage(url: Images.monster) : child!,
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () => _notifier.value = !_notifier.value,
          child: ValueListenableBuilder(
            valueListenable: _notifier,
            builder: (context, value, _) =>
                value ? const Icon(Icons.done) : const Icon(Icons.cancel),
          ),
        ),
      );
}

class GifImage extends StatefulWidget {
  final String url;
  const GifImage({super.key, required this.url});

  @override
  State<GifImage> createState() => _GifImageState();
}

class _GifImageState extends State<GifImage> {
  late final ImageProvider _imageProvider;

  @override
  void initState() {
    _imageProvider = NetworkImage(widget.url);
    super.initState();
  }

  @override
  void dispose() {
    _imageProvider.evict();
    super.dispose();
  }

  @override
  Widget build(context) => Image(
        image: _imageProvider,
      );
}

@kimsean
does the code below help?
code sample
import 'package:flutter/material.dart';

abstract class Images {
  static const pencil = 'https://png.pngtree.com/element_our/20190528/ourmid/'
      'pngtree-2019-ppt-example-pencil-drawing-png-format-image_1139023.jpg';
  static const monster = 'https://i.ibb.co/BLFzkpH/output-onlinegiftools.gif';
}

void main() => runApp(
      const MaterialApp(
        debugShowCheckedModeBanner: false,
        home: MyHomepage(),
      ),
    );

class MyHomepage extends StatefulWidget {
  const MyHomepage({super.key});

  @override
  State<MyHomepage> createState() => _MyHomepageState();
}

class _MyHomepageState extends State<MyHomepage> {
  late final ValueNotifier<bool> _notifier;

  @override
  void initState() {
    _notifier = ValueNotifier(false);
    super.initState();
  }

  @override
  void dispose() {
    _notifier.dispose();
    super.dispose();
  }

  @override
  Widget build(context) => Scaffold(
        body: Center(
          child: ValueListenableBuilder(
            valueListenable: _notifier,
            child: Image.network(Images.pencil),
            builder: (context, value, child) =>
                value ? const GifImage(url: Images.monster) : child!,
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () => _notifier.value = !_notifier.value,
          child: ValueListenableBuilder(
            valueListenable: _notifier,
            builder: (context, value, _) =>
                value ? const Icon(Icons.done) : const Icon(Icons.cancel),
          ),
        ),
      );
}

class GifImage extends StatefulWidget {
  final String url;
  const GifImage({super.key, required this.url});

  @override
  State<GifImage> createState() => _GifImageState();
}

class _GifImageState extends State<GifImage> {
  late final ImageProvider _imageProvider;

  @override
  void initState() {
    _imageProvider = NetworkImage(widget.url);
    super.initState();
  }

  @override
  void dispose() {
    _imageProvider.evict();
    super.dispose();
  }

  @override
  Widget build(context) => Image(
        image: _imageProvider,
      );
}

In your code there is a time gap between switching the image because it loads up.
I wanted one that can switch fast.

I solved my issue by making an animation builder with animation list int and loop through my gif frames. I will now close this issue, But hoping that this bug will be resolved soon by flutter developers. Thank you


code for the signed example should be included in the repository

this will assist in adjusting the example profile

open source governance project doesn't have signing in the client side. We need some simple JWT signing code for the example.


Hiding the book owner trough HTML header

Attempted Debugging

[X] I have read the debugging page

Searched GitHub Issues

[X] I have searched GitHub for the issue.

Describe the Scenario
Hi @ssddanbrown,
I'm hiding a few elements trough the HTML header editor in the Bookstack settings, for example:
<style>
.text-muted.break-text {
    display: none;
}
</style>

<style>
.active-restriction {
    display: none;
}
</style>

I'm trying to find the right piece for hiding the book owner under 'Details' on the right side. However, when i hide .entity-meta-item all detail items are gone instead of only the book owner.
To make this more clear, im trying to hide the crossed out text in red:

Exact BookStack Version
22.10.1
Log Content
No response
PHP Version
No response
Hosting Environment
Windows Server 2022

Hi @mschoon85,
Unfortunately I can't think of a reliable way to do this via a CSS tweak alone, at least without using very new features that wouldn't work for Firefox yet.
Alternatively, you can tweak any of our views using the visual theme system.  It'd be a case of overriding this view, and removing the highlighted lines.

Hi @ssddanbrown,
We are using Microsoft Edge within our company, our users cannot use other browsers. Would your very new feature work for me? I would be willing to try this out.

@mschoon85 In that case, you could use this tweak:
<style type="text/css">
	.entity-meta-item:has(svg[data-icon="user"]) {
		display: none;
	}
</style>

Just to confirm, this is a custom CSS tweak which is not officially supported, and may stop working on future updates, and the CSS used will only work in certain browsers supporting some of the modern CSS syntax used, and the content could still be visible/accessed to those that know how to work around the hiding of this content, the data is still sent to the browser.

@ssddanbrown , this works like a charm. Thanks!


v1: add support for fedora identities

/retest

/retest

Dunno how to test this, but looks sane and the fallback to RHID seems done well, so at minimum it should not break stage :)
I guess we could remove account IDs soon to simplify this :)

Eh i tihnk it's fine to have as many fallbacks as we need. maybe at some point we have a little library which can handle multiple identities, idk.


[CT-3004] Update GitHub Settings to use Rulesets

Housekeeping

[X] I am a maintainer of dbt-core

Short description
Update repo settings to use rulesets.
Acceptance criteria
Where possible, we have replaced branch protections with rulesets.
They are visible to all engineers.
Impact to Adapters
This does not directly affect adapters but they can adopt the same pattern.
Context

Rulesets can replace branch protection rules with with the biggest advantage being anyone with read access to the repo will be able to view the rulesets!
Rulesets can be enabled/disabled as opposed to having to fully delete them as with branch protections.
Rulesets can be layered
Rulesets can be used along with branch protections if you really want to.

Full docs: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets

duplicates #8691


iptables should be set to true when using calico

BUG REPORT:
In the same way it was done with #1137 for flannel, and #1277 for weave, dockerd should be run with --iptables=true in order to have a working cluster when calico is set as the network plugin.
Environment:

OS:
Linux 3.10.0-693.5.2.el7.x86_64 x86_64
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

Version of Ansible : <IP_ADDRESS>

Kubespray version (commit): c116b80
Network plugin used: calico

I am not sure if this is related, but I am using calico plugin as well. Running docker build commands on the cluster nodes is not possible because they can't access network without --iptables=true. The same problem appears when I run docker in the Kubernetes pod by mouting host's /var/run/docker.sock into the pod. Without iptables=true docker does not activate masquerading for docker0 network device, so docker build can't work properly when run in default network.
While checking iptables fix for flannel, I found that it was removed again in the commit a39e78d42d5bcb6893d0981fc478a3883364fdae.

I have encountered the same behaviour as described by dmrub.
Setting --iptables=true in DOCKER_OPTS in the file /etc/systemd/system/docker.service.d/docker-options.conf solved the issue.

The current version allows this to be done by setting docker_iptables_enabled to true.
https://github.com/kubernetes-incubator/kubespray/blob/master/roles/docker/templates/docker-options.conf.j2
This issue can be closed I think.


long words not wrap in ProgressIndicator

I use ProgressIndicator, when switch to some language other than English, the translated word are long, it cannot be wrap.
Here is the issue

Here is my sample code:
<ProgressIndicator
currentItemId={currentItemId}
isClickable
isVerticalMode
items={TAB_ITEMS.map((tab, idx) => {
const tabItem = {
id: tab,
label:
g.id === undefined && idx === 0
? intl.formatMessage({
id:
'ui_defineGroup_title',
})
: intl.formatMessage({
id: 'ui_group_'.concat(
tab,
'_title'
),
}),
};
if (idx === TAB_ITEMS.length - 1) {
tabItem.secondaryLabel = intl.formatMessage({
id: 'ui_optional_title',
});
}
return tabItem;
})}
onClickItem={this.onClickPageItem}
showLabels
/>

@sstone2423 @scottdickerson do you have follow up with this issue?

@yanzhe2017 It seems like the storybook is showing long titles being truncated with ellipsis. Can you verify that this is working for you?

Is this ellipsis introduced in latest build? which version I should use to test this?

I make sure I use latest version, but same issue, the translation message is truncated.
+--<EMAIL_ADDRESS>@davidicus where do you see the storybook of ellipsis effect?

Duplicate of #2605


ImageNet Classification Fine-tuning

Sorry to bother you. I met a mistake during fine-tuning on EVA-01.
RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates that your module has parameters that were not used in producing loss. You can enable unused parameter detection by passing the keyword argument find_unused_parameters=True to torch.nn.parallel.DistributedDataParallel, and by making sure all forward function outputs participate in calculating loss.
If you already have done the above, then the distributed data parallel module wasn't able to locate the output tensors in the return value of your module's forward function. Please include the loss function and the structure of the return value of forward of your module when reporting this issue (e.g. list, dict, iterable).
Parameter indices which did not receive grad for rank 1: 2 3

I added find_unused_parameters=True to model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.gpu], find_unused_parameters=True). And I found the  blocks.39.mlp.fc2.weigh has been marked as ready twice.
RuntimeError: Expected to mark a variable ready only once. This error is caused by one of the following reasons: 1) Use of a module parameter outside the forward function. Please make sure model parameters are not shared across multiple concurrent forward-backward passes. or try to use _set_static_graph() as a workaround if this module graph does not change during training loop.2) Reused parameters in multiple reentrant backward passes. For example, if you use multiple checkpoint functions to wrap the same part of your model, it would result in the same set of parameters been used by different reentrant backward passes multiple times, and hence marking a variable ready multiple times. DDP does not support such use cases in default. You can try to use _set_static_graph() as a workaround if your module graph does not change over iterations.
Parameter at index 522 with name blocks.39.mlp.fc2.weight has been marked as ready twice. This means that multiple autograd engine  hooks have fired for this particular parameter during this iteration.
torch.autograd.backward(outputs_with_grad, args_with_grad)

I added find_unused_parameters=True to model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.gpu], find_unused_parameters=True). And I found the blocks.39.mlp.fc2.weigh has been marked as ready twice.
RuntimeError: Expected to mark a variable ready only once. This error is caused by one of the following reasons: 1) Use of a module parameter outside the forward function. Please make sure model parameters are not shared across multiple concurrent forward-backward passes. or try to use _set_static_graph() as a workaround if this module graph does not change during training loop.2) Reused parameters in multiple reentrant backward passes. For example, if you use multiple checkpoint functions to wrap the same part of your model, it would result in the same set of parameters been used by different reentrant backward passes multiple times, and hence marking a variable ready multiple times. DDP does not support such use cases in default. You can try to use _set_static_graph() as a workaround if your module graph does not change over iterations. Parameter at index 522 with name blocks.39.mlp.fc2.weight has been marked as ready twice. This means that multiple autograd engine hooks have fired for this particular parameter during this iteration. torch.autograd.backward(outputs_with_grad, args_with_grad)

I have encountered the same problem, did you solve it, thank you!

same erro...

It seems that set "use_checkpoint" to False can solve the problem


What is the expected format for and img2img request?

Hey all trying to play with the api and assumed that it wanted a base 64 image for the img2img post request but that seems not to be the case? can anyone point me in the right direction?

its multipart/form-data. e.g curl request:
curl -X 'POST' \
  'http://<IP_ADDRESS>:8000/img2img?prompt=test&negative_prompt=negative%20test&scheduler=EulerAncestralDiscreteScheduler&strength=0.7&num_images=1&guidance_scale=7&steps=50&seed=42' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'image=@image.png;type=image/png'

you can also take a look at api docs and try the api on: host:port/docs

tysm for the super fast response