Update to version 74

Continuation of https://github.com/Eloston/ungoogled-chromium/issues/619 and https://github.com/Eloston/ungoogled-chromium/issues/675.
I have updated build.py and package.py for the new system (post-fragmentation refactor). The rest of the work should be updating GN flags and patches.

Reposting from old issue:
I tried latest master version (new build instructions) and result is still error:
INFO: Applying patches from patches
Traceback (most recent call last):
  File "C:\ungoogled-chromium\utils\patches.py", line 162, in <module>
    main()
  File "C:\ungoogled-chromium\utils\patches.py", line 158, in main
    args.callback(args)
  File "C:\ungoogled-chromium\utils\patches.py", line 116, in _apply_callback
    patch_bin_path=args.patch_bin)
  File "C:\ungoogled-chromium\utils\patches.py", line 35, in apply_patches
    raise ValueError('Could not find the patch binary')

It expects patch.exe available on disk but it is missing.
--
Also I tried to use py build.py command for windos repo but it also does not work:
C:\ungoogled-chromium-windows>py build.py
INFO: Downloading required files...
Traceback (most recent call last):
  File "build.py", line 209, in <module>
    main()
  File "build.py", line 141, in main
    downloads.retrieve_downloads(download_info, args.downloads_cache, True,
AttributeError: 'Namespace' object has no attribute 'downloads_cache'

I fixed the problem in build.py by adding args.downloads_cache = _ROOT_DIR / 'build' / 'downloads_cache' below line 122
after that many of the patches fail to apply and one can't find the file it's looking for.

@tonkku107 The patches will need to be updated for 73, which is why you're seeing that error with patches.

btw, adding list of files without substitutions:
INFO: Path has no substitutions: chrome/browser/plugins/plugins_resource_service.cc
INFO: Path has no substitutions: chrome/browser/safe_browsing/client_side_model_loader.cc
INFO: Path has no substitutions: chrome/common/google_url_loader_throttle.cc
INFO: Path has no substitutions: chrome/common/page_load_metrics/page_load_metrics_util.cc
INFO: Path has no substitutions: components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
INFO: Path has no substitutions: components/dom_distiller/core/html/preview.html
INFO: Path has no substitutions: components/domain_reliability/google_configs.cc
INFO: Path has no substitutions: components/google/core/browser/google_url_tracker.cc
INFO: Path has no substitutions: components/variations/net/variations_http_headers.cc
INFO: Path has no substitutions: net/tools/transport_security_state_generator/transport_security_state_generator.cc
INFO: Path has no substitutions: rlz/lib/lib_values.cc
INFO: Path has no substitutions: third_party/catapult/third_party/polymer/components/font-roboto/roboto.html
INFO: Path has no substitutions: third_party/catapult/tracing/third_party/gl-matrix/jsdoc-template/static/default.css
INFO: Path has no substitutions: third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css
INFO: Path has no substitutions: tools/md_browser/base.css```

@r4sas That's fine. Those files are probably patched or removed, so they show up as files without substitution. Domain substitution is computed based on the original Chromium source tree (i.e. without any modifications).

The gn bootstrap script expects to find ninja from the path. Maybe the build script should be updated to add the path of the downloaded ninja to path?
Then there's this error at the gn gen phase
ERROR at //chrome/browser/BUILD.gn:4090:5: Label not in deps.
    allow_circular_includes_from += [
    ^--------------------------------
The label "//chrome/browser/safe_browsing:safe_browsing"
was not in the deps of this target. allow_circular_includes_from only allows
targets present in the deps.
See //build/config/jumbo.gni:257:3: whence it was called.
  internal_jumbo_target(target_name) {
  ^-----------------------------------
See //chrome/browser/BUILD.gn:75:1: whence it was called.
jumbo_split_static_library("browser") {
^--------------------------------------
See //chrome/BUILD.gn:168:11: which caused the file to be included.
          "//chrome/browser:active_use_util",
          ^---------------------------------

The gn bootstrap script expects to find ninja from the path. Maybe the build script should be updated to add the path of the downloaded ninja to path?

Here problem not in ninja,
Remove line 1714 in chrome\browser\BUILD.gn:
    "//chrome/browser/safe_browsing",

That error was after adding the location of ninja.exe to path, if that was unclear.

Ah, I think that you said about ninja according to error =)

So, how is this going to progress? Chrome 74 was released to stable yesterday.

Yes, and ungoogled-chromium's been updated to 74 as well. Do you guys want to switch to 74?

I would switch to 74, yes.

The gn bootstrap script expects to find ninja from the path. Maybe the build script should be updated to add the path of the downloaded ninja to path?
Here problem not in ninja,
Remove line 1714 in chrome\browser\BUILD.gn:
"//chrome/browser/safe_browsing",
There is many changes needed to remove safe_browsing....

also need remove "//chrome/browser/safe_browsing" in "chrome\browser\extensions\BUILD.gn",  "chrome\browser\ui\BUILD.gn",
move '''source_set("binary_feature_extractor") {
sources = [
"pe_image_reader_win.cc",
"pe_image_reader_win.h",
]
}''' out side '''if (safe_browsing_mode == 1) {''' in "chrome\common\safe_browsing\BUILD.gn"
Then next step I meet:
'''FAILED: obj/chrome/elevation_service/elevation_service/elevation_service.res
E:/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py rc-wrapper environment.x64 rc.exe /nologo -DUSE_AURA=1 -DNO_TCMALLOC -DOFFICIAL_BUILD -DCHROMIUM_BUILD "-DCR_CLANG_REVISION="354873-1"" -D_HAS_NODISCARD -D_HAS_EXCEPTIONS=0 -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -D_USING_V110_SDK71_ -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DNTDDI_VERSION=NTDDI_WIN7 -D_WIN32_WINNT=_WIN32_WINNT_WIN7 -DWINVER=_WIN32_WINNT_WIN7 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -I../.. -Igen -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src /foobj/chrome/elevation_service/elevation_service/elevation_service.res ../../chrome/elevation_service/elevation_service.rc
../../chrome/elevation_service/elevation_service.rc(38) : error RC2135 : file not found: chrome/elevation_service/elevation_service_idl.tlb'''

Then I success build, but chrome.exe cannot run correctly. need fix later.

Create a PR with updated patches for your changes?

I'm sorry I can't confirm my patch is correct... @tonkku107

@Eloston or someone else will review the patches. If something's wrong you'll get feedback and you can update the patches again.

The patch still need to be fix for running. I'll try later.

So it's 21 days later, with the modifications it builds and just crashes at startup. The last build for windows is version 67. Anyone still working on this?

@evo744 I'm still finding the crash issue. But it seems that it beyonds my ability. 😂😂😂
Maybe you can help this project.

@PonyPC I'm trying, maybe I'll get lucky

I managed to fix the patches so they apply correctly this time. However, expect this error:
ERROR at //tools/grit/grit_rule.gni:101:3: Assertion failed.
  assert(
  ^-----
resource whitelist generation only works on non-component builds with debug info enabled.
See //tools/grit/grit_rule.gni:102:7:
      symbol_level > 0 && !strip_debug_info && !is_component_build,
      ^-----------------------------------------------------------
This is where it was set.
See //net/BUILD.gn:16:1: whence it was imported.
import("//tools/grit/grit_rule.gni")
^----------------------------------
See //BUILD.gn:69:5: which caused the file to be included.
    "//net:net_unittests",
    ^--------------------

I managed to fix the patches so they apply correctly this time. However, expect this error:
ERROR at //tools/grit/grit_rule.gni:101:3: Assertion failed.
  assert(
  ^-----
resource whitelist generation only works on non-component builds with debug info enabled.
See //tools/grit/grit_rule.gni:102:7:
      symbol_level > 0 && !strip_debug_info && !is_component_build,
     ...
See //BUILD.gn:69:5: which caused the file to be included.
    "//net:net_unittests",
    ^--------------------

I have a similar problem:
ERROR at //tools/grit/grit_rule.gni:101:3: Assertion failed.
assert(
^-----
resource whitelist generation only works on non-component builds with debug info enabled.
See //tools/grit/grit_rule.gni:102:7:
symbol_level > 0 && !strip_debug_info && !is_component_build,
^-----------------------------------------------------------
This is where it was set.
See //tools/grit/repack.gni:5:1: whence it was imported.
import("//tools/grit/grit_rule.gni")
^----------------------------------
See //components/BUILD.gn:15:1: whence it was imported.
import("//tools/grit/repack.gni")
^-------------------------------
See //BUILD.gn:87:7: which caused the file to be included.
"//components:components_unittests",
^----------------------------------

Added flag enable_resource_whitelist_generation=false and got an error similar to https://github.com/ungoogled-software/ungoogled-chromium-windows/issues/2#issuecomment-485256254 ahhh! I really want to try to use ungoogle-chromium-windows. Maybe there are suggestions on how to move the process forward.
ERROR at //chrome/browser/ui/BUILD.gn:3419:5: Label not in deps.
    allow_circular_includes_from += [
    ^--------------------------------
The label "//chrome/browser/safe_browsing:safe_browsing"
was not in the deps of this target. allow_circular_includes_from only allows
targets present in the deps.
See //build/config/jumbo.gni:279:3: whence it was called.
  internal_jumbo_target(target_name) {
  ^-----------------------------------
See //chrome/browser/ui/BUILD.gn:29:1: whence it was called.
jumbo_split_static_library("ui") {
^---------------------------------
See //chrome/browser/devtools/BUILD.gn:233:7: which caused the file to be included.
      "//chrome/browser/ui",
      ^--------------------

[175/175] LINK gn.exe
FAILED: gn.exe
ninja -t msvc -- link.exe /nologo /OUT:gn.exe /PDB:gn.exe.pdb @gn.exe.rsp
LINK : fatal error LNK1181: 'dbghelp.lib' can not open input file.
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "tools\gn\bootstrap\bootstrap.py", line 142, in <module>
    sys.exit(main(sys.argv[1:]))
  File "tools\gn\bootstrap\bootstrap.py", line 128, in main
    ['ninja', '-C', gn_build_dir, 'gn.exe', '-w', 'dupbuild=err'])
  File "C:\Users\cloud\depot_tools\win_tools-2_7_15_chromium14_bin\python\bin\lib\subprocess.py", line 186, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ninja', '-C', 'C:\\Users\\cloud\\work\\ungoogled-chromium-windows\\build\\src\\out\\Release\\gn_build', 'gn.exe', '-w', 'dupbuild=err']' returned non-zero exit status 1
C:\Users\cloud\work\ungoogled-chromium-windows\build\src>exit
Traceback (most recent call last):
  File "build.py", line 210, in <module>
    main()
  File "build.py", line 199, in main
    '--skip-generate-buildfiles')
  File "build.py", line 67, in _run_build_process
    **kwargs)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\subprocess.py", line 487, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '('cmd.exe', '/k')' returned non-zero exit status 1.

C:\Users\cloud\work\ungoogled-chromium-windows>

How to solve this?

OK, I solve dbghelp.lib not found bug.
However, there was an error presumed to be the source's own problem.
[175/175] LINK gn.exe
FAILED: gn.exe
ninja -t msvc -- link.exe /nologo /OUT:gn.exe /PDB:gn.exe.pdb @gn.exe.rsp
base.lib(command_line.obj) : error LNK2001: __imp_CommandLineToArgvW 외부 기호를 확인할 수 없습니다.
gn_lib.lib(command_args.obj) : error LNK2001: __imp_ShellExecuteExW 외부 기호를 확인할 수 없습니다.
gn.exe : fatal error LNK1120: 2개의 확인할 수 없는 외부 참조입니다.
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "tools\gn\bootstrap\bootstrap.py", line 142, in <module>
    sys.exit(main(sys.argv[1:]))
  File "tools\gn\bootstrap\bootstrap.py", line 128, in main
    ['ninja', '-C', gn_build_dir, 'gn.exe', '-w', 'dupbuild=err'])
  File "C:\Python27\lib\subprocess.py", line 190, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ninja', '-C', 'C:\\Users\\cloud\\work\\ungoogled-chromium-windows\\build\\src\\out\\Release\\gn_build', 'gn.exe', '-w', 'dupbuild=err']' returned non-zero exit status 1

C:\Users\cloud\work\ungoogled-chromium-windows\build\src>exit
Traceback (most recent call last):
  File "build.py", line 210, in <module>
    main()
  File "build.py", line 199, in main
    '--skip-generate-buildfiles')
  File "build.py", line 67, in _run_build_process
    **kwargs)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\subprocess.py", line 487, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '('cmd.exe', '/k')' returned non-zero exit status 1.

C:\Users\cloud\work\ungoogled-chromium-windows>

@Eloston After this error, I tried various means, including resetting the PATH and running it directly in Visual Studio, but they all arrived at this error, and I was convinced that this was a 100% source problem.
I want the above error to be the key to the solution.

Added flag enable_resource_whitelist_generation=false and got an error similar to #2 (comment) ahhh! I really want to try to use ungoogle-chromium-windows. Maybe there are suggestions on how to move the process forward.
ERROR at //chrome/browser/ui/BUILD.gn:3419:5: Label not in deps.
    allow_circular_includes_from += [
    ^--------------------------------
The label "//chrome/browser/safe_browsing:safe_browsing"
was not in the deps of this target. allow_circular_includes_from only allows
targets present in the deps.
See //build/config/jumbo.gni:279:3: whence it was called.
  internal_jumbo_target(target_name) {
  ^-----------------------------------
See //chrome/browser/ui/BUILD.gn:29:1: whence it was called.
jumbo_split_static_library("ui") {
^---------------------------------
See //chrome/browser/devtools/BUILD.gn:233:7: which caused the file to be included.
      "//chrome/browser/ui",
      ^--------------------

Added flag enable_resource_whitelist_generation=false and got an error similar to #2 (comment) ahhh! I really want to try to use ungoogle-chromium-windows. Maybe there are suggestions on how to move the process forward.
ERROR at //chrome/browser/ui/BUILD.gn:3419:5: Label not in deps.
    allow_circular_includes_from += [
    ^--------------------------------
The label "//chrome/browser/safe_browsing:safe_browsing"
was not in the deps of this target. allow_circular_includes_from only allows
targets present in the deps.
See //build/config/jumbo.gni:279:3: whence it was called.
  internal_jumbo_target(target_name) {
  ^-----------------------------------
See //chrome/browser/ui/BUILD.gn:29:1: whence it was called.
jumbo_split_static_library("ui") {
^---------------------------------
See //chrome/browser/devtools/BUILD.gn:233:7: which caused the file to be included.
      "//chrome/browser/ui",
      ^--------------------

I've had the same errors pop up, and the fix is to just remove the safe_browsing circular deps it fails on.
Currently I'm facing this error:
>"out\Default\gn.exe" "gen" "out\Default" "--fail-on-unused-args"
ERROR Unresolved dependencies.
//chrome/browser/conflicts:module_info(//build/toolchain/win:win_clang_x64)
  needs //chrome/common/safe_browsing:binary_feature_extractor(//build/toolchain/win:win_clang_x64)

It seems trivial, if you know the gn build system. As far as I can tell, safe_browsing cannot be imported, nor can the source/header pair it requires.
A naive approach would be copying the two over to //chrome/browser/conflicts(:module_info) and patching the namespace changes.

I managed getting through the meta-build system by copying the dependency source/header files to chrome\browser\conflicts as module_info_binary_feature_extractor.cc and .h.
I also changed the header guard to CHROME_COMMON_SAFE_BROWSING_BINARY_FEATURE_EXTRACTOR_H_A and the .cc include to #include "chrome/browser/conflicts/module_info_binary_feature_extractor.h",
as well as adding
"module_info_binary_feature_extractor.cc",
"module_info_binary_feature_extractor.h",

in chrome\browser\conflicts\BUILD.gn's sources
This got through to ninja target building (?)
This leads to:
In file included from ../../chrome/browser/conflicts/module_info_binary_feature_extractor.cc:5:
In file included from ../..\chrome/browser/conflicts/module_info_binary_feature_extractor.h:19:
In file included from ../..\third_party/protobuf/src/google/protobuf/repeated_field.h:60:
In file included from ../..\third_party/protobuf/src/google/protobuf/stubs/casts.h:36:
../..\third_party/protobuf/src/google/protobuf/stubs/common.h(46,10):  fatal error: 'google/protobuf/stubs/port.h' file not found
#include <google/protobuf/stubs/port.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The <> includes cannot seem to resolve third_party/protobuf/src/google... header includes, and replacing <google/etc/.../header.h> with "third_party/protobuf/src/google/etc/.../header.h" seems to suppress the errors.
The issue is that this needs to be regex automated since the entire protobuf folder has this issue, it would seem.

@diingus thank you for your continuous effort!

After having replaced the foul #includes, this shows up:
../../chrome/browser/conflicts/module_info_binary_feature_extractor.cc(13,10):  fatal error: 'components/safe_browsing/proto/csd.pb.h' file not found
#include "components/safe_browsing/proto/csd.pb.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

There exists a csd.proto file in that folder, it's just that it hasn't been generated. Any help with the issue of proto generation would be appreciated, as I've never touched the subsystem.

After having replaced the foul #includes, this shows up:
../../chrome/browser/conflicts/module_info_binary_feature_extractor.cc(13,10):  fatal error: 'components/safe_browsing/proto/csd.pb.h' file not found
#include "components/safe_browsing/proto/csd.pb.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

There exists a csd.proto file in that folder, it's just that it hasn't been generated. Any help with the issue of proto generation would be appreciated, as I've never touched the subsystem.

Adding
public_deps = [
  "//components/safe_browsing:csd_proto",
]

to chrome\browser\conflicts\BUILD.gn seems to have fixed the issue. Currently compiling.

Adding
public_deps = [
  "//components/safe_browsing:csd_proto",
]

to chrome\browser\conflicts\BUILD.gn seems to have fixed the issue. Currently compiling.

An error cropped up saying chrome\elevation_service\elevation_service_idl.idl hadn't been compiled into a .tlb, which I had to do manually with MIDL.
It seems to be a remnant from COM programming and one of Microsoft's many bodges with the Visual C toolkit(s). As such, very little can be found on MSDN about it. MIDL is installed alongisde the Windows SDK, and running vcvars64.bat will get everything you need on your PATH to do midl elevation_service_idl.idl.
After reaching the 9300 job mark, the following happened:
In file included from gen/content/browser/browser_jumbo_15.cc:53:
.\../../content/browser/tracing/tracing_controller_impl.cc(188,8):  error: use of undeclared identifier 'coordinator_'
  if (!coordinator_) {
       ^
.\../../content/browser/tracing/tracing_controller_impl.cc(190,40):  error: use of undeclared identifier 'coordinator_'
        tracing::mojom::kServiceName, &coordinator_);
                                       ^
.\../../content/browser/tracing/tracing_controller_impl.cc(195,3):  error: use of undeclared identifier 'coordinator_'
  coordinator_ = nullptr;
  ^
.\../../content/browser/tracing/tracing_controller_impl.cc(367,3):  error: use of undeclared identifier 'coordinator_'
  coordinator_->StartTracing(
  ^
.\../../content/browser/tracing/tracing_controller_impl.cc(405,5):  error: use of undeclared identifier 'coordinator_'
    coordinator_->StopAndFlush(
    ^
.\../../content/browser/tracing/tracing_controller_impl.cc(411,5):  error: use of undeclared identifier 'coordinator_'
    coordinator_->StopAndFlushAgent(
    ^
.\../../content/browser/tracing/tracing_controller_impl.cc(425,3):  error: use of undeclared identifier 'coordinator_'
  coordinator_->RequestBufferUsage(base::BindOnce(
  ^

Reading the code, coordinator_ appears only in class methods, suggesting it might be referencing this->coordinator_, but this causes
error: no member named 'coordinator_' in 'content::TracingControllerImpl'

safe_browsing seems to never be compiled, causing this:
LINK(DLL) chrome.dll chrome.dll.lib chrome.dll.pdb
FAILED: chrome.dll chrome.dll.lib chrome.dll.pdb
ninja -t msvc -e environment.x64 -- ../../third_party/llvm-build/Release+Asserts/bin/lld-link.exe /nologo /IMPLIB:./chrome.dll.lib /DLL /OUT:./chrome.dll /PDB:./chrome.dll.pdb @./chrome.dll.rsp
lld-link.exe: error: could not open obj/chrome/browser/safe_browsing/safe_browsing.lib: no such file or directory

Remember that removal of safe browsing is part of ungoogled-chromium

The issues I'm facing so far are that of removing safe browsing integration, it seems. If I were to guess, more was delegated to that module, which hasn't been properly dealt with yet.
I'd take a shot at removing references, but I don't feel confident enough or knowledgeable enough to deal with those kinds of edits, especially when it comes to privacy issues.
As it stands, this thread was enough to get me to here.

For those interested, I've gathered the undefined reference errors caused by placing a dummy safe_browsing.lib:

log.txt
mirror

I did some work on this in d2674a9204ba474b859fd2ddbcd820ad1455ea38. However, the Safe Browsing patch (and the few that follow) still need to be updated. #8 discusses what needs to be done with the Safe Browsing patch.

Also, make sure to re-read the README. The build requirements have changed, and I've added my workflow for updating patches. Most notably, I dropped Python 2 because Google's working on porting all the Python scripts to Python 3, and it seems the ones we're using might be usable in Python 3. If not, we can cherry-pick changes from upstream.

And so, the chaos in getting the latest version of Ungoogled Chromium built for Windows continues.
I've managed to get the build started, but expect an error like this:
ERROR at //third_party/protobuf/proto_library.gni:175:48: Array subscript out of range.
    proto_in_dir = get_path_info(proto_sources[0], "dir")
                                               ^
You gave me 0 but the array has no elements.
See //chrome/test/BUILD.gn:4976:3: whence it was called.
  proto_library("test_proto") {
  ^----------------------------
See //BUILD.gn:104:7: which caused the file to be included.
      "//chrome/test:browser_tests",
      ^----------------------------

This is triggered when gn gen is run.

For those who want the latest version of Ungoogled Chromium for Windows (and not version 67), just click here.
With this, the chaos should be over. At least for a while.

Thanks @tangalbert919! Since this issue is getting pretty long, please open a new issue if there are issues with the update.

Yeah, thanks, @tangalbert919 :tada:
But I want to ask: have anyone reproduced build and how result works for you?
I built with latest changes, but at the end I got that all pages is empty. Settings nor websites is not shown. Context menu (right mouse button) doesn't works too.

@r4sas https://github.com/ungoogled-software/ungoogled-chromium-windows/issues/2#issuecomment-538730326. But yes, this is a pretty serious issue.

For those who want the latest version of Ungoogled Chromium for Windows (and not version 67), just click here.
With this, the chaos should be over. At least for a while.

Unfortunately it crashes on some pages.


Refactor tasks and fix Draco 3 example

Fix Draco 3 example
Cost vector is now defined for all tasks
Levenberg-Marquardt damping is now defined for all tasks, with a default to zero

Thank you for checking :smiley:

I can do it if you think it is useful for readabillity of the code

Currently it's readable but a bit dumb :sweat_smile: It fits the fact that some child classes add their own attributes to the repr (e.g. frame task adding its target).
If auto repr generation is simple enough to maintain and reduces the amount of boilerplate code I'm all for it :+1:


SignInManager.PasswordSignInAsync will cause redirect (302) When 2FA is enabled.

Identity 2.1.3 & AspNetCore.App 2.1.3
I need to verify 2FA but signInManager.PasswordSignInAsync will cause Response.StatusCode = 302.
It will redirect to home index.
How can I prevent it to do this?
Now I added HttpContext.Response.StatusCode = (int)HttpStatusCode.OK  after PasswordSignInAsync to prevent it redirect.

Where do you want it to go? After PasswordSigninAsync you need the 2fa verification page as well.
You'd check via
                var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: true);
                if (result.Succeeded)
                {
                    _logger.LogInformation("User logged in.");
                    return LocalRedirect(Url.GetLocalUrl(returnUrl));
                }
                if (result.RequiresTwoFactor)
                {
                    return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe });
                }

And then in your 2fa page
            var user = await _signInManager.GetTwoFactorAuthenticationUserAsync();
            if (user == null)
            {
                throw new ApplicationException($"Unable to load two-factor authentication user.");
            }

            var authenticatorCode = Input.TwoFactorCode.Replace(" ", string.Empty).Replace("-", string.Empty);

            var result = await _signInManager.TwoFactorAuthenticatorSignInAsync(authenticatorCode, rememberMe, Input.RememberMachine);

            if (result.Succeeded)
            {
                _logger.LogInformation("User with ID '{UserId}' logged in with 2fa.", user.Id);
                return LocalRedirect(Url.GetLocalUrl(returnUrl));
            }
            else if (result.IsLockedOut)
            {
                _logger.LogWarning("User with ID '{UserId}' account locked out.", user.Id);
                return RedirectToPage("./Lockout");
            }
            else
            {
                _logger.LogWarning("Invalid authenticator code entered for user with ID '{UserId}'.", user.Id);
                ModelState.AddModelError(string.Empty, "Invalid authenticator code.");
                return Page();
            }

@blowdart
I have another issue to handle, so I need return "View" sometimes, not redirect. BTW, why can't keep 2fa in the same page? If I need to redirect, I also can use "RedirectToAction" or "Redirect" to do this, right? so I think "PasswordSignInAsync" should not to force to redirect.

https://github.com/aspnet/Identity/issues/1543
There is someone has the same issue with me.~

You generally don't return views after POSTs, Post/Redirect/Get (PRG) pattern is almost always used, because it stops duplication form submissions.
As for 2fa in the same page, well, what if the user doesn't have 2fa enabled, how do you know until you get a POST with the username?

I understand Post/Redirect/Get (PRG) pattern is always used, but it's "always", not "must", I don't  understand why it must require to redirect after post ? Redirect or not it's should depend on situation, If I don't want user to post again, there are many ways to do this thing, not just redirect.
I think every method should keep it to do a single thing or complete flow, after PasswordSignInAsync, there are always still something need to do.
Our user must to do something to active 2FA, and we require user must use 2FA, so after PasswordSignInAsync, if result is 2FA enabled but the other options are not active, I return a error message to tell user (so I don't want the page to redirect).
Or I need use PasswordSignInAsync on API, I need 200 not  302 as a result.
As many many something need to do, so I hope the PasswordSignInAsync not to cause 302.


Better handling of user input including BOMs and encoding; Better nav for OBS tN & tQ

Also updates packages

Pull Request Test Coverage Report for Build 258

20 of 62 (32.26%)  changed or added relevant lines in 6 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.3%) to 60.947%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

general_tools/file_utils.py
11
13
84.62%

door43_tools/project_deployer.py
0
3
0.0%

door43_tools/templaters.py
2
11
18.18%

preprocessors/preprocessors.py
5
33
15.15%

Files with Coverage Reduction
New Missed Lines
%

door43_tools/templaters.py
3
61.87%

Totals

Change from base Build 254:
0.3%

Covered Lines:
2959

Relevant Lines:
4855

💛  - Coveralls

Pull Request Test Coverage Report for Build 258

20 of 62 (32.26%)  changed or added relevant lines in 6 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.3%) to 60.947%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

general_tools/file_utils.py
11
13
84.62%

door43_tools/project_deployer.py
0
3
0.0%

door43_tools/templaters.py
2
11
18.18%

preprocessors/preprocessors.py
5
33
15.15%

Files with Coverage Reduction
New Missed Lines
%

door43_tools/templaters.py
3
61.87%

Totals

Change from base Build 254:
0.3%

Covered Lines:
2959

Relevant Lines:
4855

💛  - Coveralls


Design for the full ELR STLT HL7 v2 Enrichment

User Story:
As a developer, I want design how the STLT HL7 v2 Enrichment component of the FHIR Engine works, so I can make a plan for its implementation.
Description/Use Case
One data flow of data in the FHIR Engine is to convert internal FHIR bundles into HL7 v2 messages to be sent to a STLT.  These HL7 messages will need to be modified per STLT requirements.  For example, HCA data requires the suppression (removal of data) of certain HL7 fields.  Looking at the current COVID pipeline, there are other requirements like hardcoded values, derived values from other data fields, lookup of values in tables (e.g. LIVD or value sets), etc.  This issue is to design how this component will work in the FHIR engine to INITIALLY suppress the necessary fields to satisfy the requirements from HCA, but will need to the extensible for future features.
Risks/Impacts/Considerations
Dev Notes:

Reference the current COVID pipeline for what data manipulation is done today, specially for sending HL7 data to STLTs.
Where are we going to configure this?  Refer to the COVID pipeline for ideas
There is the potential to use the FHIR to HL7 conversion configuration as schemas, but does this make sense?
This needs to be maintainable, modifiable, readable so other teams like OO can onboard STLTs.

Acceptance Criteria

Document the design for the STLT HL7 Enrichment component.
Present this design to the Pipeline team and get buy-in for it.
Generate issues covering the first phase/steps for this component.

@clediggins-usds and @carlosfelix2 had a quick chat and it looks like the current FHIR to HL7 library schema can accommodate our needs for enrichment.  This approach has two advantages:

low amount of effort
If we find later on that we need something else then we don't really lose effort

Refer to the state requirements given to us by HCA (see SharePoint).   For using the same schema, we will need a mechanism to extend/inherit schemas and add or overwrite elements within it.  Note the need to suppress fields (we could just add condition: false to those fields).  We need a clear design on how the inheritance works.  Keep in mind the current validation of the schema as well.


Question: Which Android SDK is supported by which tracker version

Not an expert in android development.
Does the latest version of this tracker support any version of Android SDK or is there a minimum?
If there is, can you point me to where to find that information?

Hi @schafdog ,
thanks for raising this question.
The minimum Android SDK supported is the version 14.
It should correspond to the Android 4.0.2.
We are updating our documentation and we will add soon that missing information.
Meanwhile, you can also find this information in the gradle script of the library.

Hi @AlexBenny, I tried using Snowplow Tracker 1.4.1 and it causes the following error for devices with Android API level below 21:
java.lang.IllegalStateException: Expected Android API level 21+ but was 19        at okhttp3.internal.platform.AndroidPlatform.buildIfSupported(AndroidPlatform.java:238)        at okhttp3.internal.platform.Platform.findPlatform(Platform.java:202)        at okhttp3.internal.platform.Platform.<clinit>(Platform.java:79)        at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:263)        at okhttp3.OkHttpClient.<init>(OkHttpClient.java:229)        at okhttp3.OkHttpClient.<init>(OkHttpClient.java:202)        ...
It seems the dependency OkHttp 3.14.16, which requires Android API level 21+ (https://square.github.io/okhttp/#requirements), is causing this problem.
Can you verify this and, if ever, be reflected in the documentation?
Thank you so much :)

I've created a different issue about the OkHttp version and the minimum supported Android version.
The documentation has been updated with the current min supported version (I've written API 21+ for now). I'll update it there as soon as the OkHttp version is correctly set.


monitor the peers only

hi,
how i can modify the code to monitor the peers countries without download the actual movie video
i need it for educational things
thanks

Hi @alaa-a-ali ,
Have you managed to find out how to do that? Because I also need it for a university research.
Thank you very much for your attention :)

Hi,
You can reduce the download speed to a minimum. But you will need to download at least some portions of the file in order to see the peers.
Check out the  'download_rate_limit': 10000, variable

@CarlosLannister
I understand, it's a good feature too. As you said, we need to download some portions of the file but will also be possible to limit the download's percentage (%)?
Due to limited resources, it would be a huge help if I could download only, for example, 10% of a given file and monitor the peers at the same time.
Thank you very much your quick reply.

@CarlosLannister even when reducing the download_rate_limit the code still download the actuall video of the torrent and the code keep doing the seeding.
is there away to get the peers & ips only in quick way without download the actuall video of the torrent ?


No Icons, Text only

Hey,
I only see text, no icons in all menus...

Any idea?

Hi, thanks for reporting this issue. In the past this was caused by an unhandled exception.
So to help me narrow down the issue, can you please send me your Overwolf logs. See following topic on how to do so:
https://support.overwolf.com/support/solutions/articles/9000176827-how-to-get-your-overwolf-logs
Thanks!

OverwolfLogs_2020-08-02_21-31-52.zip
Hi,
Overwolf Logs are attached.
Thanks!

I also have this issue starting with the latest patch during heist league. Tried uninstalling + re-installing, no luck.
Uploading Overwolf logs.
OverwolfLogs_2020-11-08_21-17-48.zip


enable prebuilt model

Description
As we have published prebuilt models to OpeSearch repo, we can enable uploading prebuilt model function now.
Example:
POST /_plugins/_ml/models/_upload
{
  "name": "huggingface/sentence-transformers/paraphrase-MiniLM-L3-v2",
  "version": "1.0.1",
  "model_format": "TORCH_SCRIPT"
}

Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

I had another comment about testing. Don't we need any corresponding testing for this code?

I had another comment about testing. Don't we need any corresponding testing for this code?

This PR is to enable pre-built model feature.
The code was developed in this PR #655 , as we have no model published on model repo, we disabled in PR #682 before 2.5 release.
You can find testing code in PR #655. As the Github CI instance is not so powerful, we don't add IT for prebuilt model now. We have called out this issue to infra on 2.5 retro. Create an issue to track this

Codecov Report

Merging #729 (444228f) into 2.x (ffb8a4e) will increase coverage by 0.10%.
The diff coverage is 0.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff              @@
##                2.x     #729      +/-   ##
============================================
+ Coverage     84.95%   85.05%   +0.10%
- Complexity     1076     1078       +2
============================================
  Files           100      100
  Lines          3922     3922
  Branches        370      370
============================================
+ Hits           3332     3336       +4
+ Misses          433      430       -3
+ Partials        157      156       -1

Flag
Coverage Δ

ml-commons
85.05% <0.00%> (+0.10%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...n/java/org/opensearch/ml/model/MLModelManager.java
78.60% <0.00%> (ø)

.../cluster/MLCommonsClusterManagerEventListener.java
79.41% <0.00%> (+11.76%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Add directions for public clouds to Install Guide

The current Install Guide mostly assumes running on your own cloud and while some of the directions transfer over, it would be good to have the cloud-specific differences noted in the Install Guide (maybe in a new section on the Install Guide so it doesn't get unruly?) so people can get up and running on Azure, GCP, etc.
Cc'ing @jessfraz @jon @tallclair

I can pick this up for GCE by pulling apart the one-shot from https://github.com/jon/kubeadm-single-node-cluster/tree/kata into more general instructions.

I'll pick this up for vexxhost

Thank's @jon and @mnaser!

I've created #155 specifically for GCE.

I'm picking this up for Azure.

Thanks @scooley - feel free to raise a new issue for that and add a comment on it referencing this one.


Make lookbook components match the ones in production

Problem
In Lookbook some of the components styles doesn't match the ones in production:

Button: computed font-weight 500, but rendered 400
Text Input: box-shadow is not none
Select: in HTML and Pill selects component's height is different for several states (i.e. Local filled, Disabled, Readonly); check all sizes (Medium, Small, Tiny)

Solution
Lookbook components should match styles with production, any height differences in states should be fixed.

On Position page, in Info tab, in Pipeline card: inputs are disabled but text can be selected via mouse (in Lookbook it can’t be). Please investigate this as well.


cleanup: use header only b64 library

What type of PR is this?
/kind cleanup
Any specific area of the project related to this PR?
/area build
/area CI
Does this PR require a change in the driver versions?
No
What this PR does / why we need it:
This PR removes the usage of the libb64 library due to its incompatible license. From now on we will use a header-only implementation taken directly from:
https://raw.githubusercontent.com/istio/proxy/1.18.2/extensions/common/wasm/base64.h
Which issue(s) this PR fixes:
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 13b00cfaf16e1ee2b7428512d342558ac9d881ec

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP, leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP,leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


CodaLab is down - no test set evaluation possible.

Hello there,
I would like to kindly ask, is there another website currently enabling DanceTrack test set evaluations?
The website of Paris Saclay University, which was hosting the CodaLab, has unfortunately been hacked and thus is no longer available: https://codalab.lisn.upsaclay.fr/
The old website does not accept submissions anymore: https://competitions.codalab.org/ , https://competitions.codalab.org/competitions/35786#participate-submit_results
(The redirecting link does not work either: https://codalab.lisn.fr/).
Could you please provide a temporary alternative solution for DanceTrack test set evaluation?
It impacts many people and researchers as this is an important dataset often reported in the papers.
Thank you for your time.

I tried to upload the test results for evaluation, but still can't upload.

Hi, seems Codalab has resumed. Let me know if you still have question or problem for evaluation.

Hello, the website still doesn't support result submission; clicking the 'submit' button yields no response.

Hi, seems Codalab has resumed. Let me know if you still have question or problem for evaluation.

Hello, the website still doesn't support result submission; clicking the 'submit' button yields no response.
Could you please provide a temporary alternative solution for DanceTrack test set evaluation?
It impacts many people and researchers as this is an important dataset often reported in the papers.
Thank you for your time.


[Maestro Cloud] Error is incorrect, and leaks Cloud internals (security)

I submitted a workspace via the Github Action. The response was
Run<EMAIL_ADDRESS>Uploading to Maestro Cloud

Error: Error running Maestro Cloud Upload Action: Request to https://api.mobile.dev/v2/upload failed (500): org.postgresql.util.PSQLException: ERROR: unsupported Unicode escape sequence
  Detail: \u0000 cannot be converted to text.
  Where: JSON data, line 1: ..."ext":{}}}},{"runScriptCommand":{"script":"\u0000... [statement:"INSERT INTO <<redacted>>

It turns out that one of the files in the workspace was a git-crypt encrypted file containing credentials that I'd forgotten to decrypt.

This should be a 400-series error, not a 500
This error message shouldn't expose the Maestro Cloud internals (database engine, table name, column names)

Expected behavior
HTTP/400 The workspace contains unparseable files
Environment information (please complete the following information):

Flow with a runScript referencing a JS file
JS file encrypted using git-crypt

Workspace (if applicable)
n/a - it never reached the console :(

@Fishbowler this should be fixed. Let me know if you something weird


FIX(common) Cleanup of the object model

Since we have decided to not use the OM, I think we can remove it from the repository to keep it cleaner.
@andreaturli can you review this?

@szenzaro I think it is a good clean up. As travis is happy with this removal, so do I.
+1


check stderr has no errors

@ptnapoleon, for your review.
We first questioned the validity of the error message in line 405 during cstar-97. I am unable to find it in the cassandra source code. Now that stress should return the correct return code, this test will automatically fail if stress fails, but as an extra precaution, I've checked stderr is clean, and left in the original error message check.

I must be missing something, where do we fail if stress's rc != 0?

node.stress() returns handle_external_tool_process()
https://github.com/pcmanus/ccm/blob/master/ccmlib/node.py#L1972

Oh wow, that is a behavior I didn't realize was occurring inside ccm. +1


Bugfix: Enforce unique item id in workspace table

References

Fixes #9341

Description
We have observed some cases of item UUIDs occurring multiple times in the workspace item table. This causes for failures in the backend when we’re trying to retrieve the workspace item bound to a certain item as the backend doesn’t ever support retrieving two workspace items for one item.
Instructions for Reviewers
List of changes in this PR:

Modified WorkspaceItemServiceImpl#create method to explicitly check for duplicates (and throw an IllegalArgumentException if a duplicate is found).
Added SQL migration to add a uniqueness constraint to workspaceitem.item_id column.
Added a test in WorkspaceItemTest.

Reproducing the bug
Calling WorkspaceItemServiceImpl#create two times (or more) in succession for the same WorkflowItem results in multiple entries in the table referring to the same Item.
Testing the PR
Doing the same thing after applying the PR should result in exactly one extra entry in the table, and an exception thrown on the second and subsequent attempts.
Checklist

[x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon.
[x] My PR passes Checkstyle validation based on the Code Style Guide.
[x] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
[x] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
[x] If my PR includes new libraries/dependencies (in any pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
[x] If my PR modifies REST API endpoints, I've opened a separate REST Contract PR related to this change.
[x] If my PR includes new configurations, I've provided basic technical documentation in the PR itself.
[x] If my PR fixes an issue ticket, I've linked them together.

@KoenP : Friendly reminder that this PR needs minor updates if it is to be considered for 8.0.  Otherwise, we'll move it back to 9.0

Apologies @tdonohue, I forgot about this PR. I made the requested changes.


Build errors Windows 10

C:\Users\d7\atom-in-orbit>yarn build
yarn build v0.18.1
$ node ./scripts/build.js
C:\Users\d7\atom-in-orbit\scripts\config.js:17
throw e;
^
SyntaxError: Unexpected token U in JSON at position 21
at Object.parse (native)
at Object. (C:\Users\d7\atom-in-orbit\scripts\config.js:12:21)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object. (C:\Users\d7\atom-in-orbit\scripts\build.js:19:16)
error Command failed with exit code 1.

C:\Users\d7\atom-in-orbit\scripts\config.js:17
SyntaxError: Unexpected token U in JSON at position 21

At line 17 of config.js (the inside of the if statement):
// If the file does not exist, then that's fine, but if it contains malformed
// JSON, then the user should know.
if (e.code !== 'ENOENT') {
  throw e;
}

This is what the build instructions say:

First, you must create a config.local.json file in the root of your project with some configuration information. Specifically, it needs the location of a source checkout of Atom that has been built at the revision specified in the config.json file.

The error is caused not because of your platform or an incompatibility with Windows 10, but because it cannot parse the config.local.json configuration file you wrote, stating where you have the Atom source code. Please share the contents of this file, so we can determine where the process went wrong.
Thanks,
@EtherTyper


Option to store checkpoint on Ctrl+C interrupt

Sometimes, I need to interrupt training. And if you have a large model and checkpoint every 1000 iterations, as set by default, then you could lose a lot of progress, especially if you're halfway to the next checkpoint. Option to store checkpoint on interrupt would be useful for that case.

I am thinking about the same problem. However, you can set up an interrupt handler and call your own saving function inside the handler. (It's easy to do it in C, but I didn't find the equivalent function in Lua)


Nicely done! A few suggestions:

Nice and tidy. I like it more thna gotty or wetty, but please,
put some options for default font, background and font size.

Please read this comment: https://github.com/tsl0922/ttyd/issues/31#issuecomment-432901658 .


Skip to main link adds a focus ring to the H1

We've had a few services in for DAC audits and it's coming back with failures due to the focus ring that's applied around the H1 when a user hits the 'skip to main content' link. DAC auditors are reporting that they only expect focus on interactive elements and find the focus on the h1 to be confusing
It looks like the focus style is added with JS, would it be an easy fix to remove it? Or should the skip to main link just hit main rather than the H1?

We recently had some feedback from screen reader users that after hitting the skip link, they'd expect all the content in main to be announced unless they stopped it. Currently, as the focus jumps to the H1, the H1 is announced and then it stops, none of the other the content is read unless a user manually moves to the next part of the content.

@mcheung-nhs That's interesting and makes sense, thanks for the reply. The feedback we received from a few NVDA users was that they would expect the content to continue reading and that they found it was confusing to land directly on the H1.
If you use NVDA or JAWS on a GOV.UK service and skip to main does the content continue to announce for you? I just had a look and another difference with the GOV.UK skip link is when you click 'skip to main' a tabindex="-1" is added to the main tag.
Thanks for the help!


Plan for next release - v2.0

Opening this to think about/plan for the next release, which I propose should encompass:

The changes merged after v1.6.1 and up to when flask-admin was moved under pallets-eco

Plus these changes merged since:

https://github.com/pallets-eco/flask-admin/pull/2397
https://github.com/pallets-eco/flask-admin/pull/2265
https://github.com/pallets-eco/flask-admin/pull/2114
https://github.com/pallets-eco/flask-admin/pull/2416
https://github.com/pallets-eco/flask-admin/pull/2341
https://github.com/pallets-eco/flask-admin/pull/2407
https://github.com/pallets-eco/flask-admin/pull/2321
https://github.com/pallets-eco/flask-admin/pull/2464

Plus these target changes:

[x] Removing python 3.7 support and adding python 3.12: https://github.com/pallets-eco/flask-admin/pull/2453
[x] Removing Flask-BabelEx support and moving back to using Flask-Babel: https://github.com/pallets-eco/flask-admin/pull/2460
[x] Flask host_matching support: https://github.com/pallets-eco/flask-admin/pull/2461
[x] Allow configuring FLASK_ADMIN_SWATCH per admin instance: https://github.com/pallets-eco/flask-admin/pull/2462
[x] Standardise app.config names: https://github.com/pallets-eco/flask-admin/pull/2472
[x] SQLAlchemy 2 compatibility (@cjmayo): https://github.com/pallets-eco/flask-admin/pull/2483
[x] Flask 3 compatibility (@cjmayo)
[x] WTForms 3 compatibility (@cjmayo)
[x] Remove bs2 and bs3: https://github.com/pallets-eco/flask-admin/pull/2474
[x] More clearly define our dependencies/versions: https://github.com/pallets-eco/flask-admin/pull/2476
[x] Customise and prevent arbitrary user-overrides of page_size: https://github.com/pallets-eco/flask-admin/pull/2479
[x] Support CSP: https://github.com/pallets-eco/flask-admin/pull/2480
[x] https://github.com/pallets-eco/flask-admin/pull/2481
[ ] Remove any existing DeprecationWarnings
[x] Switch from boto to boto3 for S3FileAdmin: https://github.com/pallets-eco/flask-admin/pull/2552
[ ] Update azure-storage-blob from v3 to v12+

And potentially any other small PRs we think we can get in fairly easily.
When the changeset is locked

[x] review and update documentation for anything that's been missed
[x] write a changelog entry: https://github.com/pallets-eco/flask-admin/pull/2499/files

Because of those last target changes, we'd need to do this as a major version bump.
@aenglander @Abdur-rahmaanJ - thoughts?

@samuelhwilliams How about 1.7?

What makes you suggest 1.7?
I think standard practice would be to assume Semantic Versioning, which says breaking changes should be a major versioning bump (ie 1 to 2). Dropping python 3.7 and dropping flask-babelex are breaking changes, so I think V2 would be the logical step to me.
Happy to hear counter arguments though.

I believe #2407 is suitable for the next release.

Flask-Babel and host_matching PRs are up. Will leave open for feedback for a few days.
Aiming to do a 2.0.0rc0 release next week ish.

Right. We have a bunch of stuff merged - I'm thinking of doing a 2.0.0rc0 release, maybe tomorrow. That would mean (in my head) no more feature merges - only bug fix merges - until 2.0.0 proper is released.
Do we think we want to try to get anything else simple/quick in urgently before the rc0 release?

@cjmayo Have added SQLAlchemy 2/Flask 3/WTForms 3 as target changes for a 2.0.0 release, if you're happy with that? I'm happy to try to help where needed, although it looks like maybe you've got it covered.

There are more configuration changes too, like when creating Admin instance, so I guess it is fair to think about the next release tagging with 2.0.0 ?

Would you like to weigh in/mind weighing in on https://github.com/pallets-eco/flask-admin/pull/2476? It deals with dependencies too, specifically making it more explicit what dependencies are required for certain features and what versions we support. It doesn't do much work bumping dependencies, but should make it easier to test+validate dep bumps in the future.

About dropping bs3 support.
I don't see bugs or layout issues with the current bs3 theme, while I do on bs4. There are form layout implementations, checkbox positioning, navbar bugs those should have been fixed.
In my opinion, Bootstrap3 is good so far, considering Bootstrap4 fixed & redesigned, I think we should remove bs3 after that? Like later?
Because I also used and applied bs3 mostly, as its template design is implemented well, while bs4 has no a look like bs3's.

Ok - the target date is obviously slipping a bit, but I think it's useful to get a few more of these things in before doing some kind of pre-release.
Notably:

[ ] CSP support
[ ] Decide on whether we deprecate flask-mongoengine, or how we support it if we're keeping it

Can we have in the docs a suggested approach for considering client's timezone when submitting datetime fields? I am referring to    https://github.com/pallets-eco/flask-admin/issues/1892

@ElLorans would you like to put up a PR adding some information and/or an example?

@samuelhwilliams just opened https://github.com/pallets-eco/flask-admin/pull/2502

Since the changes merged so far for v2.0.0 include a lot of dependency bumps, I think it also makes sense to switch the S3 admin interface over from using boto to boto3, and the azure-blob-storage interface to using azure-storage-blob>=12. So will try to include those as well.

Thank you for all the hard work on the new release. I noticed that while there are many exciting updates mentioned, there hasn't been any discussion about the state of translations. There was an earlier issue (#1950) that raised concerns about updating translations, and I was wondering if this has been addressed in the latest release or if there are any plans to do so.

Going to publish v2.0.0a0 shortly - this is an pre-release so would be grateful to anyone able to test it out and see what bugs there may be 🙏
It's not feature-complete yet necessarily, and I still think it'd be nice to get updates to fileadmin for AWS and Azure in, but I just haven't had time yet. Anyone able to contribute those changes (essentially migrating fileadmin.s3 to use boto3, and updating fileadmin.azure to use azure-storage-blob>=12)

v2.0.0a0 is now published

Hey @pajusmar - it's a good question. I've asked it on the pallets-eco discord to work out what our plan is with translations... 👀

@samuelhwilliams, I saw on Discord that I should submit a pull request to modify translations. Will it make it to 2.0, or are we past the string freeze? I would really like to change one word.

Nope, by all means put up a PR please. Changes now would still go into V2.0.0 :)

Out of curiosity – is there any progress on #1974? (Or at least any information about its causes?)
It just seems kind of bizarre that "View record" & "Edit record" button tooltips are translated, but "Delete record" is not :sweat_smile:

Out of curiosity – is there any progress on #1974? (Or at least any information about its causes?)
It just seems kind of bizarre that "View record" & "Edit record" button tooltips are translated, but "Delete record" is not 😅

Yes that's annoying for sure

Out of curiosity – is there any progress on #1974? (Or at least any information about its causes?)
It just seems kind of bizarre that "View record" & "Edit record" button tooltips are translated, but "Delete record" is not 😅

This is fixed in https://github.com/pallets-eco/flask-admin/pull/2526#issuecomment-2395368678 . @samuelhwilliams can we release 2.0? Are there still DeprecationWarnings?

I will queue up a 2.0.0a1 soon. I think there's probably still more stuff that makes sense to do for an 'official' v2 release - updating both of the fileadmin implementations for a start.

I've done a v2.0.0a1 now that includes those changes and compatibility support for wtforms v3.2+

I do still think it would be good to get in updates for s3/ABS before doing an official release of v2.0.0, but I also am aware that it's taking quite a chunk of time for me to have time for that and there's maybe not a huge amount of appetite from anyone else to add it. :(

Ok I found time to do boto->boto3, so just azure blob storage to go really 🤞

that's now available as v2.0.0a2

@samuelhwilliams Is there an issue about azure blob storage? I can probably tackle that. Just wondering if there were known issues about upgrading, or just general SDK interface changes.

I'm not aware of any issues specifically - but that is mostly because I haven't looked closely yet. It may well just be SDK interface changes. Would be very grateful if you wanted to tackle it, it's really the last big blocker for an official v2 release, I think 👀
If there isn't an obvious issue open, please feel free to open one to track it 🙏

PR for Azure storage upgrade: https://github.com/pallets-eco/flask-admin/pull/2573/files


Plugin  not found

* Exception is:
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'com.cognifide.aem.package', artifact: 'com.cognifide.gradle:aem-plugin:4.1.1'] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'com.cognifide.gradle:aem-plugin:4.1.1')
  Searched in the following repositories:
    MavenLocal(file:/C:/Users/x/.m2/repository/)
    BintrayJCenter
    maven(https://plugins.gradle.org/m2/)
    maven2(http://dl.bintray.com/cognifide/maven-public)
    maven3(https://dl.bintray.com/neva-dev/maven-public)

Should I update plugin version to 5.0.0 in settings.gradle?
https://github.com/Cognifide/gradle-aem-multi/blob/master/settings.gradle#L14

yep it is unwanted change. thanks for reporting this, will be fixed within few minutes.
you could. rock solid is a 4.1.0, 5.0.0 is quite fresh.

fixed


[Simulator][Scheduler] Enable multiple parallel schedulers per simulator

Currently, it is not possible to generate multiple schedulers per simulator object. This feature might be required, when simulating multiple sites with different negotiation services.

This is already possible given the current implementation and is part of the concept of lapis but does not work out of the box with the standard provided simulator. Just go ahead and perform the adaptations that you need :)


Access nil value if file doesn't exist in needMOC

Hi,
I'm using premake-qt in my project and I've found a bug. If I try to add a file that doesn't yet exist to my current project (because it's going to be generated as part of the build process but I want it to appear in the file explorer in Visual Studio) the file goes through the needMOC function, which doesn't check whether a file exists and therefore project generation fails. My suggested fix is to wrap in an if file
local file = io.open(filename)
-- scan it to find 'Q_OBJECT' or 'Q_GADGET'
if file then
    for line in file:lines() do
        if line:find("Q_OBJECT") or line:find("Q_GADGET") then
            needmoc = true
            break
        end
    end
    io.close(file)
end

Hi, you're totally right, thanks for spotting this :)
I'll fix this as soon as I get my internet access back (I just moved, and am currently camping in my new flat without electricity nor internet until next friday :D)

That's cool I've got it modified locally until then. Good luck with the move!

Hi again ! Sorry for the delay : new flat, new job, new lots-of-things and this totally slipped out of my mind :D
Anyway, this issue should be fixed by commit e0b7cf62d1b1091c7c4ad0fe5ff1d891c1fd1f90
It also fixes 2 other potential bugs with non-existing files (one on the .qrc files where the addon checks for dependencies, and the other one in the part which tries to check the Qt version in the SDK)
Thanks again for reporting the issue, and sorry for the long wait :)

Cool don't worry about it, I hope the move went well ;) Thanks for looking into it, I'll update as soon as I get home.


SyntaxError: Unexpected token � in JSON at position 0

After Updating the Buanet Iobroker Image in the Docker to the latest Version (Node.js: v18.20.1 / NPM: 10.5.1 / IOB: v6.13.16) for the update of the ems-esp to Version 3.03 i get a red protocol response by using the km200 gateway:
km200 decrypt: http://<IP_ADDRESS> - SyntaxError: Unexpected token � in JSON at position 0
Excepting this entry the Adapter works fine an i get the data from the km100.
No additional entrys in the configuration excepting ip adress an password(s).
Is this a problem that I can fix by myself or is it a failure in the adapter?
Thank you.

The error indicates missing data for one field.
What has bee changed.
New docker Version. Does the previous adapter version giving the same error?
Is the error persistent for every adapter start?

the previous adapter does not come up with this error message.
it pops up every time you restart the adapter. also the iobroker was restarted - same thing.

I added a second error message identifying the get request which gives this error message.
Could you please install the adapter version from Github and restart the adapter?
Please post the error messages ...

Sure...

Thanks for your response. As far as I can see this http get request returns a trailing blank. I haven't seen this before.
I changed the code to remove this blank.
Could you give it a new try by installing again from Github?

I can reproduce now on my heating system for the /gateway/firmware field.
I have to check if I just skip this error or if I can find a solution.

The field /gateway/firmware contains binary data. All other fields a JSON data object.
I can not decode tis data - so I skip unreadable data now.
I hope it works with version 3.1.0. now.

Works fine, no unexpected protocol entry so far.
Thank you very much for the quick support!


Feature/centos72

CentOS 7.2 support.

Adds IUS package repository for PHP 7.0 packages.
Adds tests for both Ubuntu and Redhat OS families.

Changes made, I am looking at using some https://docs.chef.io/resource_yum_repository.html to address the package repo install in a future version.

Ping


Use sass-embedded instead of dart-sass.js

For a while now, there is a dart-sass-embedded that is, for the lack of a better word, faster, when compared to dart-sass.js. (I realize that at the start of the project, native dart binaries were not available and dart-sass.js was used for that reason.)
There is a node integration example that's actually the sass-embedded npm package. It should give an idea how the recommended way, using embedded sass protocol, should work... it node environment that is.

Hello, Ivan!
As far as I understand, there is already a libraries using this approach: Citizen17.DartSass and AspNetCore.SassCompiler.
I myself do not plan to use this approach, because I am interested in working with the JS version of Dart Sass.


Google reCAPTCHA v3 Support

Google reCAPTCHA v2 works fine, but generating v3 keys cause this to be displayed on the login page. https://i.imgur.com/0cVK19z.png

v2 is not v3. So this error Shows up ;)

This isn't going to get done.


GetDependencies API endpoint docs includes NUGET

I noticed the docs for the API mention that GetDependencies versionKey.system can be one of GO, NPM, CARGO, MAVEN, PYPI, NUGET
https://docs.deps.dev/api/v3alpha/#getdependencies
However, the docs mention that this endpoint is not available for nuget
GetDependencies returns a resolved dependency graph for the given package version. Dependencies are currently available for Go, npm, Cargo, Maven and PyPI.

The API gives a 404 for any nuget, so it's just the docs that need to be updated
404 -> https://api.deps.dev/v3alpha/systems/nuget/packages/azure.core/versions/1.25.0:dependencies

Any news on this? I'm getting exactly the same problem, I wonder if the problem it's the bad documentation or if the NuGet dependencies still doesn't work after nearly one year.


Test body not cloned in Test.prototype.clone

Prerequisites

[x] Checked that your issue hasn't already been filed by cross-referencing issues with the faq label
[ ] Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
[x] 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
[x] Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with: node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend that you not install Mocha globally.

Description
Test.prototype.clone() does not clone this.body. This results in unexpected code bodies being reported when using custom code bodies with the retries feature.
Steps to Reproduce
A simple way to reproduce this in CodeceptJS 3.x (which uses custom bodies in order to show the test body instead of its wrapper around the test) is to run the following test with the Mochawsome reporter:
Scenario('wrong code', ({I}) => {
  I.waitForText('nonexistent text');
}).retries(2);

Expected behavior:
The Mochawesome report shows the code of the test
Actual behavior:
The Mochawesome report shows the code of the wrapper.
Reproduces how often:
Every time.
Versions
CodeceptJS 3.2.3 uses 8.1.3, but the problem is present in mocha's master as well.

@rockwalrus could you post a standalone reproduction please? Most folks aren't familiar with any arbitrary framework such as CodeceptJS, and test.body isn't used often enough by consumers for this to be a commonly understood case.

Closing out old issues. If someone does have a repro, please do post back - we'd be happy to take a look! 🤎


ci: add workflow for pull request

Add nix code for generating NixOS FDB container image and github
action's workflow for pull request.

Codecov Report

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

@@           Coverage Diff           @@
##             main       #2   +/-   ##
=======================================
  Coverage        ?   89.66%
=======================================
  Files           ?       17
  Lines           ?     7545
  Branches        ?        0
=======================================
  Hits            ?     6765
  Misses          ?      780
  Partials        ?        0

Continue to review full report at Codecov.

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


Allow changing category emoji size independent of other emoji size

Given https://github.com/nolanlawson/emoji-picker-element/issues/10#issuecomment-849394245, this seems like a sensible feature.

Hello Nolan, it's great you've made plans to add this feature to this package.
While I was trying to adapt the --emoji-size to best fit my design I found this out:

Whenever you increase the size of the emoji (categories) the transform style on the indicator element miscalculates the currently selected category. In the above screenshot I have the ⛔   selected.
Thank you for dedicating your time to give us this simple and complete emoji-picker

@ericaig It appears that this only happens if the category emoji overflow horizontally (notice that the flag emoji is cut off).
Ideally with some way to control the emoji category size separately from the other ones, you should be able to have it not overflow. :slightly_smiling_face:

@nolanlawson Exactly. Leaving the categories size to it's default size solves both topics (categories dedicated size variable and horizontal scroll) 👌🏾

If you need help with this. I'll be glad to chip in. It would be my first time contributing to a public package (code-wise) but I know how it works 😊

Ah sorry, I got around to it. :) ^

Release in 1.5.0

Perfect... I'll update it on my project now.. Thank you very much :)


Issue with vec_push() and vec_insert() fixed

Discussion about the details of the issue can be found here: https://stackoverflow.com/questions/60643222/how-to-solve-right-hand-operand-has-no-effect-error

Had the same issue, did the same fix


siteID

Justification
Required for identifying a specific sampling site at or within a location. This allows distinction from locationID, which is an identifier for the sampling location itself. Especially useful for describing permanent sampling sites that haven’t been georeferenced. This also enables sampling sites to be referenced across datasets.
Definition
An identifier for the sampling site at or within the Location.
Comment
May be a global unique identifier or an identifier specific to the dataset. Example: “tr011-s1” identifies a sampling site within a location (locationID= “tr011”).
Term group
Location

It isn't clear to me how this is actually different than dwc:locationID.  The proposal seems to assume that the "site" is specified to a greater resolution than the "location".  But there doesn't seem to be any particular resolution assumed for a location, or to be any reason why a more precisely specified location could not be nested within a broader location.
Also, is it assumed that the things being sampled at the sampling site are organisms?  dwc:MaterialSample instances could include organisms as well as non-living materials.

Perhaps the issue addressed by siteID is more related to the problems of describing different types of locations with the commonly denormalised use of Darwin Core, e.g. with the core types in the GBIF IPT. Perhaps a better option might be to add a location extension to the IPT application profile registry, to allow for different types of locations to be described?

In quite a few of the event based datasets we have published or worked with, we are provided with "human readable" names for the sampling location, and it's easy for these to "get lost" in the move towards globally unique identifiers. So yes, while I quite like the idea of a siteID, I'd like it even better if it were paired with something like a siteCode (similar to the institutionCode/institutionID or collectionCode/collectionID).
(I suppose ideally the human readable names (the "codes") would be retrievable through resolvable ids, but we're not quite there yet)

I would also like to better understand why locationID and locality is not sufficient as these can be of any precision and have been used for a long time to identify collecting/sampling "sites". Is there an example that illustrates why locationID and siteID should exist side by side?

If there is a need to nest locations (or sites) with finer resolution within a location, there could obviously also be possible to imagine a need for nesting "sites" with yet finer resolutions within these "sites". Perhaps dwc:higherGeographyID could be used to nest locations - however, I believe that this term might have another meaning? Perhaps a new term "parentLocationID" might be useful?
For sampling data reported in Norway I second Christian that these are often assigned a human readable short code. We often map these location or plot codes that are reported with sampling data as dwc:fieldNumber - however, these named plots might actually more accurately be understood as a "locationCode" and not as a "eventCode" (the same plot codes are used again between multiple sampling events at different weeks, months or years).
It might thus be possible to argue for the following new location terms?
parentLocationID (for building a hierarchy of locations within locations)
locationCode (human readable location identifiers not intended to resolve)
locationType (to be recommended to follow a controlled value vocabulary)
And that the location terms be organized in a new extension and a new star-schema-"leaf" for the Darwin Core archives publishable in IPT.

Thanks to everyone for the feedback on this proposal.
I agree it will help to look at an example to illustrate the need for this term.
Consider the recent attempt to digitise legacy data from this study, which investigated the effects of grazing on vegetation using 6 paired 4 m2 monitoring plots of permanently-grazed versus ungrazed plots arranged in 3 random blocks.
All that is known about the location of each monitoring plot (site), is that it is within the following sampling location:
Game reserve ‘Wildgehege Glauer Tal’, which is located on a former military training area 45 km SW of Berlin, NE Germany (13 8'47–13 10'07 E, 52 13'10-52 13'59 N, altitude 37–51 m)
The resolution of this sampling location can be defined using footprintWKT and locality, but doing so reserves locationID for this sampling location, not for the monitoring plots of a greater resolution. siteID would allow identifying the finer resolution location of the monitoring plot where sampling actually took place. If the monitoring plot was georeferenced, siteID and locationID would be the same. From my interpretation it is fine to store a human readable code in locationID as long as it is an "identifier specific to the data set". Of course it would be preferable to have a resolvable GUID for locationIDs, but this is most often not the case.
Indeed it would be cleaner to list all locations in the dataset in an extension. This would allow a hierarchy of locations to be built and allow the type of each location to be defined. Based on my interpretation, dwc:higherGeographyID can only be used to store the broader "geographic region within which the Location occurred". Therefore I agree a new terms "parentLocationID" and "locationType" would be useful.

A siteID separate from the locationID is not necessary. In an Event Core, the study site are can have Events using the locationID and Location descriptors for the study site, while child Event records for each monitoring plot (site) can have their own locationIDs and refer to the study site through parentEventID.
I propose to close this request.

The capability sought by the addition of this term is already available. No further demand has been demonstrated. Closing.


Switch to a better license?

Hi! Any chance you could switch to some other license? MIT would give you what I assume you want[0], but has the benefit of being a reasonably respected license, whereas the WTFPL makes most lawyers nervous (see https://news.ycombinator.com/item?id=5733050#up_5733477 for some analysis if you're curious).
Thanks!
0: I'm assuming what you want is "go nuts, I don't care, don't sue me, thanks."

I would prefer not to.
I'm tired of the whole law industry parasiting the IT economy. I am convinced that WTFPL make my intentions perfectly clear.  Also, I did not have to consult a lawyer to explain the license to me, so double loss for them.
As a matter of fact, this wrapper generator is not in a very good shape anyway, so the WTFPL license feels kinda right. If somebody wants to do something serious with it, the license will probably be the least of the issue.
Finally, I'm a pragmatist. If somebody comes to me with an actual use case or some productive contribution to the code and is only stopped by my license choice, I'll reconsider this stance. There are indeed acceptable alternatives, MIT being probably at the top of the list.

Well, I was hoping to do some tinkering in Rust with OpenCV, and you've got the best-looking bindings, but I won't touch WTFPL because it's a bad license. I hope you reconsider some day.


[SPARK-25444][SQL] Refactor GenArrayData.genCodeToCreateArrayData method

What changes were proposed in this pull request?
This PR makes GenArrayData.genCodeToCreateArrayData method simple by using ArrayData.createArrayData method.
Before this PR, genCodeToCreateArrayData method was complicated

Generated a temporary Java array to create ArrayData
Had separate code generation path to assign values for GenericArrayData and UnsafeArrayData

After this PR, the method

Directly generates GenericArrayData or UnsafeArrayData without a temporary array
Has only code generation path to assign values

How was this patch tested?
Existing UTs

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3146/
Test PASSed.

Test build #96120 has started for PR 22439 at commit 24fbf74.

Test build #96120 has finished for PR 22439 at commit 24fbf74.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/96120/
Test FAILed.

Test build #96133 has started for PR 22439 at commit 2286b6e.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3157/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3163/
Test PASSed.

Test build #96144 has started for PR 22439 at commit fff3361.

Test build #96133 has finished for PR 22439 at commit 2286b6e.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/96133/
Test FAILed.

LGTM.

Test build #96144 has finished for PR 22439 at commit fff3361.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/96144/
Test PASSed.

Thanks! merging to master.


Failing e2e prow jobs for all controllers

Currently, all the e2e tests prow jobs are failing for all controllers: https://prow.ack.aws.dev/
Sample logs: https://prow.ack.aws.dev/view/s3/ack-prow-logs/pr-logs/pull/aws-controllers-k8s_lambda-controller/103/lambda-kind-e2e/1681363420122714112
/priority critical-urgent

My first impression is that this might be related to the python-pip version
/cc @RedbackThomson @jljaco

python-pip 23.2 was released 4 days ago - we started seeing failures since then. https://pypi.org/project/pip/23.2/

Instructions on how to fix this https://kubernetes.slack.com/archives/C0402D8JJS1/p1689795748826559?thread_ts=1689703915.721729&cid=C0402D8JJS1

@a-hilaly thanks, I updated my PR!


Clear Statement where we differ from drone

Add a statement to the FAQ in docks and Readme since this question is asked frequently ...

@laszlocph this also would be an oportunety to formulate communety roules, when simebody can become a maintainer and how things are govern here ...


simple todo App

First thing, PLEASE READ THIS: ReactPlay Code Review Checklist

Description
I make a new simple todo app.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
Checklist:

[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Screenshots or example output

Hi @Sandivsv Please add the issue this PR is related to.

@Sandivsv
Also the build fails due to lint errors:

Please follow the readme docs to fix the formatting and linting. Also, run the yarn start command without nolint in the development process.
We will take it up for review after the build errors are fixed. Please continue.


When an ActiveEffect is created for the purpose of tracking concentration, extend its description with details of the associated item

Related to #3028.
Being able to view directly on the effect what the associated spell (or other item) is that is being concentrated on would be a great benefit. It could

include a full description of the item
have its name modified to be, e.g., 'Concentration: Bless'.

Probably some consideration needed here for unidentified items (and whether to use description.chat over description.value).


Paid Apps handling and creation on the mobile side

[x] Add the paid/free and $ per month configuration to the app creator page and backend update
[x] Display $ per month instead of "Install App"
[x] Show $ per month in the app list
[x] Navigate to the Stripe payment link to make a payment. Automatically check the payment status every 3-5 seconds, only when the user clicks the Stripe link ($/month)

Part of #1404
https://github.com/user-attachments/assets/451832e9-35ca-48be-b836-39f31d1571a9

1/ a toggle to switch the app Free <> Paid and, only display payment plan, pricing with the paid app, what do you think man?
2/ you could use is_user_paid in the app model to determine if use paid the app successful or not. about the trigger 3-5s, don't wait for the payment_link, you could use a mock timer to implement it.
@mdmohsin7

3/ keep monthly recurring as the only option for now.
@mdmohsin7

1/ thought of it, but that would be an additional item in the ui so instead thought of just adding a single amount field, if it's empty then it will be considered free. But I guess I'll just add the paid/free dropdown
2/ Alright
3/ Alright
@beastoin

@mdmohsin7 the api is ready on the development env, please integrate it with your PR. 😌

@mdmohsin7 the api is ready on the development env, please integrate it with your PR. 😌

Alright let me
Also I like how you are using that image everywhere haha

lgtm @mdmohsin7 🥳


A given stylistic set should use the same feature (ss01 - ss20) in all files in a family

Like https://github.com/googlefonts/fontbakery/issues/3158 this should be differnet for roman and italic

Like https://github.com/googlefonts/fontbakery/issues/3158 this should be differnet for roman and italic


RFC: Template prefix shortcut

There's been a lot of discussion about namespaces in templates (https://github.com/silverstripe/silverstripe-framework/issues/5445, https://github.com/silverstripe/silverstripe-framework/issues/5952).
One goal is to retain ease of use for template developers who might not be as familiar with PHP namespaces, or the SilverStripe theme "cascade". @sminnee suggested namespacing mapping similar to PSR-4. I've discussed this with him, and we agreed that this might be overcomplicating for little gain.
As an alternative approach, we're suggesting a template control to avoid repeatedly writing a template "namespace" in <% include %> statements.
templates/
  Some/
    Namespace
      MyFile.ss

<% include Some/Namespace/MyFile %>

<% template_prefix Some/Namespace %>

<% include MyFile %>

It's specifically not called a namespace, since the mental model here should be the folder path. The theme "cascade" means there might be multiple versions of this file in different "base" folders. But you can add *.ss to any of these references and have the end of a file path.
This will only make code less verbose if you have multiple <% include %> statements in a single template, or if you create a template boilerplate to avoid mistakes by template developers

Would this logic flow down if template_prefix was called somewhere below? Or like namespacing it is only one per file?
If one per file, would the template_prefix have to be at the top of the Template file?
e.g.
<% template_prefix Some/Namespace %>

<% include MyFile %>

<% template_prefix Another/Namespace %>

<% include DifferentFile %>

I'd probably say that it is allowed once per file and applies globally. If you provide two it's a compile error.
If we wanted to use different prefixes in different parts of the file then I'd probably suggest a <with_template_prefix > ... < end_with_template_prefix > style block, but to be honest I think it's overkill.

If you want to ignore the prefix, start your template name with /

An alternative: <% prefix SilverStripe/Admin %> … <% end_prefix %>.

The use case that led to recommending this feature is where you have the classes & templates from your module or project all contained within a namespace, and you want to avoid listing that namespace on every <% include %> tag.
I'm can't think of a use case where you would be chopping and changing includes from different namespaces so much that multiple prefix entities are desirable.
Can anyone think of such a use-case?

The most common use case for changing Includes prefix would be trying to include an extended/parent Classes' Include template.
Where the desire is to only change one part of the entire template.

The use case that led to recommending this feature [snip]

In that case, my personal preference is not to be able to set it from within the template, but rather at a Controller/SS_Viewer level.

The problem with that is then you've have to open up the Controller to know how to interpret your template file. I'd rather be able to understand the meaning of the template file independently.

What about being able to define multiple short aliases at the top of the file as abbreviations for lengthy template paths?
<% template_prefix aliasA Some/Template/Path %>
<% template_prefix aliasB Another/Template/Path %>
...
<% include aliasA/SomeTemplateFile %>
...
<% include aliasB/AnotherTemplateFile %>

Simple, intuitive, all contained in the template file...One would have to make the aliases local to each file somehow to avoid clashes (ie: in case, say, the alias aliasA  is also defined in an included template) but this and the parsing of the argument shouldn't be too difficult.

We were trying to keep it simple, and recognise that the target audience of templates are HTML/CSS developers not PHP developers. Without a clear use-case for multiple aliases I'm disinclined to include it in the initial implementation.

I think even the "single alias" use case might only be applicable to maybe 10% of projects (where multiple include statements justify it). I can't think of a project I've worked on that would've benefitted from multiple aliases (e.g. including my own project templates and at least one other module template sources). Take silverstripe.org's forum module use for example: We would've overloaded pretty much any template from forum/templates anyway in themes/ssorg

The point about overloading templates from other modules is a good one, how do the template changes for SS4 affect that? Let’s say we include the blog module which has a template blog/templates/SilverStripe/Blog/BlogList.ss. If I want to override that template in my theme, do I have to create themes/mytheme/templates/SilverStripe/Blog/BlogList.ss? I don’t think it would be  any harder to learn & write “namespaced” includes than it would be to get used to that template structure.

From the looks of things, this can be implemented without breaking APIs. I'm downgrading to change/minor.

Bumping this to impact/high since "namespaced templates" seems to be the number one pain point from talking to a few devs at meetups.

Wow, it's been around for 18 months already.
As @chillu mentioned, it's a massive pain. We started organising our includes differently, not following the actual class names but rather more compartmentalising. For template overrides it needs to be namespaces.
Our main points:

We generally use multiple includes in templates, often 3-5, sometimes more on the higher levels. We tend to make every small bit a reusable include, if it makes sense.
We'd prefer a way to use multiple different prefixes, meaning a close tag would be required, similar as <% with %> and <% end_with %>
<% prefix %> and <% end_prefix %> is nice and short, I'd vote for that.
Both ways should still be supported.

On the other hand, opening and closing a prefix scope for two includes is roughly the same amount of writing, so not sure which way we'd go.
Potentially, it might be confusing for devs seeing two includes somewhere in the middle of the file, not noticing the prefix scope change, subsequently having troubles locating the files, until realising what's going on.

Instead of nested scopes you could also do aliasing:
<% prefix Some/Namespace %>
<% prefix Another/Namespace as B %> (or "<% alias Another/Namespace as B %>"?)

<% include MyFile %>
<% include B/OtherFile %>
<% include B %>

In the example above, it would be impossible to include Some/Namespace/B. Do do that you, you would need to choose a different alias.

Ok, with that, could we make it a yaml configured map so it doesn't need to be at the beginning of all template files, repeated possibly tens of times?

I don't think this is worth proceeding with, it would have made sense back when namespaces were introduced but they've been around for so long now that I think this doesn't provide enough value to outweigh the implementation and maintenance cost.
In addition to that, I agree with this statement:

Potentially, it might be confusing for devs seeing two includes somewhere in the middle of the file, not noticing the prefix scope change, subsequently having troubles locating the files, until realising what's going on.

Adds additional confusion, adds maintenance burden, and ultimately is only beneficial in a small handful of cases. I'm gonna close this, but if someone has a really good argument for it and is willing to put in the work to implement it, we can consider reopening.


Getting an error while running a task

I am getting following error while running HockeyApp task on x-plat agent -
Error:
Failed to extract zip:  /users/rmuser/Downloads/_package/vsoxplat/_work/tasks/HockeyApp/0.9.18.zip
Any clue why I am hitting this issue? Same task works well on windows agent.

This task is at collection level. When we make a call to download a task, from xplat agent, its at the account level. Maybe we should fix the task download logic here.

There’s a PR for that we need to get in.
From: Ankit Goyal<EMAIL_ADDRESS>Sent: Monday, November 9, 2015 4:47 AM
To: Microsoft/vso-agent<EMAIL_ADDRESS>Subject: Re: [vso-agent] Getting an error while running a task (#143)
This task is at collection level. When we make a call to download a task, from xplat agent, its at the account level. Maybe we should fix the task download logic here.
—
Reply to this email directly or view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvso-agent%2Fissues%2F143%23issuecomment-155013080&data=01|01|BRYANMAC%40exchange.microsoft.com|3aa1ea75295043ee1ef208d2e8eab84e|72f988bf86f141af91ab2d7cd011db47|1&sdata=bDJ1bbKu5cDniuG%2F0XGumwJ1xG8Hp1p0WpIFTZkG9RE%3D.

Thanks Ankit and Bryan for letting me know.
Bryan can u plz share the PR so that I can validate this app deployment?

Should be fixed in 0.3.13 and preview version of the agent


[REQ] Auto-rename for TV Episodes

Awhile back an option was added to auto-rename movies after scraping. (https://github.com/tinyMediaManager/tinyMediaManager/commit/78b14a30353a0557fa7744d74884ef57ea0048cb)
Can the same thing be added for TV episodes?

added to v3 with https://github.com/tinyMediaManager/tinyMediaManager/commit/a8cbf2e42f284f9ddf867dd734d431c0079dc785


unknown error at Testumgebung

Describe the Bug
Only in location "Testumgebung" selecting Imprint results in unknown error. (Only Malte app)
Steps to Reproduce

select Testumgebung
Click on Imprint
See error

Sadly not a duplicate of https://github.com/digitalfabrik/integreat-app/issues/2462

This error just happened because there was no disclaimer set in the cms. Closing.