Crash while showing picker

Describe the bug
I configured a photo picker latest version like this:
let config = YPImagePickerConfiguration()   // not configured
picker = YPImagePicker(configuration: config)
picker.didFinishPicking { (items, _) in
  // empty
}

and later call self.present(self.picker, animated: true, completion: nil), after that app crashed with stack:
2021-09-23 15:15:37.270287+0300 netto[4154:713451] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIView 0x1583251e0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key assetViewContainer.'
*** First throw call stack:
(
	0   CoreFoundation                      0x00000001803f7978 __exceptionPreprocess + 236
	1   libobjc.A.dylib                     0x0000000180188800 objc_exception_throw + 56
	2   CoreFoundation                      0x00000001803f7628 -[NSException init] + 0
	3   Foundation                          0x0000000180786904 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 312
	4   UIKitCore                           0x00000001848e4d68 -[UIView(CALayerDelegate) setValue:forKey:] + 180
	5   UIKitCore                           0x00000001840354d0 -[UIRuntimeOutletConnection connect] + 124
	6   CoreFoundation                      0x00000001803dfea4 -[NSArray makeObjectsPerformSelector:] + 232
	7   UIKitCore                           0x0000000184031634 -[UINib instantiateWithOwner:options:] + 1900
	8   xxxxx                               0x00000001038b7d00 $s13YPImagePicker13YPLibraryViewC03xibD0ACSgyFZ + 268
	9   xxxxx                               0x00000001038a7c8c $s13YPImagePicker11YPLibraryVCC8loadViewyyF + 48
	10  xxxxx                               0x00000001038a7d6c $s13YPImagePicker11YPLibraryVCC8loadViewyyFTo + 32
	11  UIKitCore                           0x0000000183d32ff8 -[UIViewController loadViewIfRequired] + 172
	12  UIKitCore                           0x0000000183d336b8 -[UIViewController view] + 28
	13  xxxxx                               0x0000000103880d0c $s13YPImagePicker13YPBottomPagerC6reloadyyF + 760
	14  xxxxx                               0x000000010387f6e4 $s13YPImagePicker13YPBottomPagerC11controllersSaySo16UIViewControllerCGvW + 48
	15  xxxxx                               0x000000010387f7f0 $s13YPImagePicker13YPBottomPagerC11controllersSaySo16UIViewControllerCGvs + 136
	16  xxxxx                               0x00000001038e4c08 $s13YPImagePicker10YPPickerVCC11viewDidLoadyyF + 2844
	17  xxxxx                               0x00000001038e5468 $s13YPImagePicker10YPPickerVCC11viewDidLoadyyFTo + 32
	18  UIKitCore                           0x0000000183d2ed5c -[UIViewController _sendViewDidLoadWithAppearanceProxyObjectTaggingEnabled] + 104
	19  UIKitCore                           0x0000000183d332ec -[UIViewController loadViewIfRequired] + 928
	20  UIKitCore                           0x0000000183d336b8 -[UIViewController view] + 28
	21  UIKitCore                           0x0000000183c87074 -[UINavigationController _preferredContentSizeForcingLoad:] + 184
	22  UIKitCore                           0x0000000183c2a874 -[UIPresentationController preferredContentSizeDidChangeForChildContentContainer:] + 68
	23  UIKitCore                           0x0000000183c26ad8 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke.466 + 196
	24  UIKitCore                           0x0000000184887504 -[_UIAfterCACommitBlock run] + 64
	25  UIKitCore                           0x00000001843feea0 _runAfterCACommitDeferredBlocks + 296
	26  UIKitCore                           0x00000001843eeffc _cleanUpAfterCAFlushAndRunDeferredBlocks + 200
	27  UIKitCore                           0x000000018441f14c _afterCACommitHandler + 76
	28  CoreFoundation                      0x0000000180364fc4 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
	29  CoreFoundation                      0x000000018035f73c __CFRunLoopDoObservers + 556
	30  CoreFoundation                      0x000000018035fc9c __CFRunLoopRun + 976
	31  CoreFoundation                      0x000000018035f3bc CFRunLoopRunSpecific + 572
	32  GraphicsServices                    0x000000018afdd70c GSEventRunModal + 160
	33  UIKitCore                           0x00000001843f03d0 -[UIApplication _run] + 964
	34  UIKitCore                           0x00000001843f51ac UIApplicationMain + 112
	35  xxxxx                               0x000000010246b7c4 main + 84
	36  libdyld.dylib                       0x0000000180224554 start + 4
)
libc++abi: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIView 0x1583251e0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key assetViewContainer.'

Expected behaviour
A clear and concise description of what you expected to happen.
Environment (please complete the following information):

Device: iPhone12 Pro (Simulator / Device)
OS: iOS14.5
Xcode Version  12.5.1
Swift Version 5.5

Installation Type

SPM

@snowtema it seems, that the problem with bundle dispatch. If anyone can help with that it would be appriciated!

Error is happening because of missing link to assetViewContainer. However in project everything looks okay; link, class name. Checked SPM & looks like YPLibraryView.xib file is missing.

looks like SPM only issue
[Storyboard] Unknown class _TtC27YPImagePicker_YPImagePicker13YPLibraryView in Interface Builder file.
[Storyboard] Unknown class _TtC27YPImagePicker_YPImagePicker20YPAssetViewContainer in Interface Builder file.
[Storyboard] Unknown class _TtC27YPImagePicker_YPImagePicker19YPAssetZoomableView in Interface Builder file.
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIView 0x7fd14c215300> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key assetViewContainer.'

Able to reproduce on 5.0.0 on my end. Looking at it

@snowtema ca you try the package on the spm_fix branch and let me know if that works ?

I tried, works perfectly

Awesome! Will try to update the official release tomorrow 👍

same on mine

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIView 0x7f9459121a30> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key assetViewContainer.'

I had the same issue in xcode 13
with spm_fix branch

@s4cha Any update regarding a new release with that fix ?

@tsahi-deri @SaidAlSouti @okiookio
Please try this https://github.com/Yummypets/YPImagePicker/pull/702. If it works correctly, I would make an update.

Crashing on Xcode 13 - version 5.0.0 Installed via SPM

@superdev89 Check https://github.com/Yummypets/YPImagePicker/issues/699#issuecomment-933544570

Ran into same issue confirmed spm_fix branch is working

Try https://github.com/Yummypets/YPImagePicker/releases/tag/5.1.1 it should fix the crash. If found - open the new issue.


Badge Icons on macOS

The macOS platform provides an API for displaying the sync status of files and folders as a badge icon:
https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/Finder.html
It looks like the implementation of the API would be quite trivial, but as Maestral seems to be pure python, I'm not sure if there is a way to support this without changing the whole build process, as the extension would have to be written in swift/obj-c and included in the app bundle.

Just found the maestral-cocoa repo. This is probably the wrong place for this issue...

No worries, I still tend to address all issues here.
I'm aware of Finder extensions but am somewhat reluctant to take this on. The long term plan is to have a unified GUI for macOS and Gnome (using native widgets but abstracting over platform differences using the beeware project's tools). Introducing Finder integration, especially when it needs to live in a separate extension bundled with the app, adds platform-dependent packaging steps beyond what beeware provides out of the box.

Does Maestral provide a local API where an external app could tap to add the badges instead of having Maestral do it?


More card effects

[ ] Destroy entity
[ ] Discard a card
[ ] Copy an existing card
[ ] Take control of creature
[ ] Take control of creature temporarily
[ ] Transform a card into something else
[ ] 'Silence'/'Revert' a card (restore it to its original state)
[ ] Until your next turn...
[ ] Move a card from one zone to another
[ ] Give a creature a triggered ability
[ ] Draw card and do something that depends on the card that was drawn

More more or less random abilities from various ideas: (more or less structured, some might be duplicates)

[ ] Perform a regular effect (see #237 for example) to targeted card(s)
[ ] Take n card(s) from opponent hand / draw pile / discard pile
[ ] Restore n card(s) of type X from own discard pile
[ ] Remove n / all enchantment(s) from card X
[ ] Gain resources this turn only (scrap, attack, health, mana...)
[ ] Destroy all bots, players gain their scrap value
[ ] (Player) cannot perform action X on cards that matches filter Y (next turn, or while in play)
[ ] Steal X resources from one entity and move to another
[ ] Your Bots gain X health next turn
[ ] Buff a Bio unit X/X for a cost in mana (no scrap cost)
[ ] Buff a Bot by X/X costing all of your scrap
[ ] The next enchant you play this turn costs 0 scrap
[ ] Opponent cannot play enchantments next turn
[ ] You may only play X number of Y-cards per turn
[ ] Enchanted creature can only attack each 2nd turn.
[ ] Your enchantments costs twice as much scrap.
[ ] All your creatures have maximum 5 attack
[ ] Your opponent can only attack with one creature each turn


create and register DID controller

Signed-off-by: annelein<EMAIL_ADDRESS>

Codecov Report

Merging #107 (217a93e) into main (9a99f36) will decrease coverage by 29.24%.
The diff coverage is 73.07%.

@@             Coverage Diff             @@
##             main     #107       +/-   ##
===========================================
- Coverage   87.22%   57.98%   -29.25%
===========================================
  Files          37       40        +3
  Lines         587      614       +27
  Branches       75       76        +1
===========================================
- Hits          512      356      -156
- Misses         75      258      +183

Impacted Files
Coverage Δ

packages/rest/src/controllers/did/DidController.ts
61.11% <61.11%> (ø)

...ackages/rest/src/schemas/CreateDidSchemaRequest.ts
100.00% <100.00%> (ø)

...kages/rest/src/schemas/RegisterDidSchemaRequest.ts
100.00% <100.00%> (ø)

...rc/controllers/connections/ConnectionController.ts
28.78% <0.00%> (-51.52%)
:arrow_down:

...ges/rest/src/controllers/proofs/ProofController.ts
30.37% <0.00%> (-50.64%)
:arrow_down:

...rc/controllers/credentials/CredentialController.ts
31.32% <0.00%> (-50.61%)
:arrow_down:

packages/rest/src/events/BasicMessageEvents.ts
50.00% <0.00%> (-50.00%)
:arrow_down:

packages/rest/src/events/ProofEvents.ts
57.14% <0.00%> (-42.86%)
:arrow_down:

packages/rest/src/events/ConnectionEvents.ts
57.14% <0.00%> (-42.86%)
:arrow_down:

packages/rest/src/events/CredentialEvents.ts
57.14% <0.00%> (-42.86%)
:arrow_down:

... and 13 more

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 9a99f36...217a93e. Read the comment docs.


Fix internal link to Schema docs

The current link leads to a "Not found" page. This PR changes the target to what I'm guessing is the intended location.

🙏 Thank you sir!


Bug: sunburst chart highlight not working

Version
4.4.0
Reproduction link
https://echarts.apache.org/examples/zh/editor.html?c=sunburst-monochrome
Steps to reproduce
Hover on one node, it's ancestor nodes should be highlighted and others downplayed.
It had worked at first release, but not working now.
What is expected?
Hover on one node, it's ancestor nodes should be highlighted and others downplayed.
What is actually happening?
Nothing.

Any luck on this, my version of ecart is 4.04

Any luck on this, my version of ecart is 4.04

Checked with 5.3.2 and there seems to be no bug now.


CCDB AU/009 - Section 6.7.2

FPT_MOD_EXT.1
Comment:
Debug modes are very useful in many situations when system integration does not work as it should.  Not allowing debug is only suitable in use-cases where the DSC is embedded in a larger system also developed by the DSC vendor.  In cases where a DSC is used as a component in some other vendors product a debug mode would be very useful,
Proposal:
Consider making FPT_MOD_EXT.1 optional.
Priority: 2

This should be a v1.1 issue. This is not required for the current evaluation to be changed, and the implications are not clear enough to push for it to be done right now.

Discussion: shouldn't be optional.

could be made to include options to what it has, and then have a second SFR that forces vendor to show how alternate modes are blocked in production
could also just have additional text either in the intro or the app note that explains that debug may be available in some circumstances but isn't in production

The pull request I created for this just added a sentence to the app note that some versions of the DSC may have debug, just not the production one.
While I can agree with the point being made, I think that at this point, until we run into a specific product that has a problem with it, we should maintain the requirement the way it is, and if it actually comes up from a vendor, we can address it at that point in a manner that will best resolve the situation that we need to have as well as what the vendor needs are. This is speculative, and not clear that someone will actually have a problem with this in production anyway.


withCollection method gives bad json output. I can't convert it to array.

Steps to reproduce
$this->response->withCollection(
$users,
new UserTransformer
);
$array = json_decode($adminUserList);
Expected behavior
It should return an array
Actual behavior
It shows blank. I tested with json_last_error and showing error 4 which means bad syntax.
Server configuration
Ubuntu
Apache
Mysql
PHP 7.0
Client configuration
Chrome

What's $adminUserList in your example?

It is output of below code :
$this->response->withCollection(
$users,
new UserTransformer
);

Hi I have tried other way to achieve this as below and it is working fine:
$adminUserList = $this->response->withCollection(
$users,
new UserTransformer
);
$userCollection = json_decode(json_encode($adminUserList));
$userarray = $userCollection->original->data;

@nileshlets Do you use this package in laravel ? If so, the method withCollection will return a instance of Illuminate\Contracts\Routing\ResponseFactory. See EllipseSynergie\ApiResponse\Laravel::withArray(). The purpose of this package is to simplify the way we transform and return the data in the response.


Enhance ability to link with C++

This is a work in progress and is NOT ready to be merged.  I've opened this at Walter's request.
Windows only.
@braddr: I'm not sure how to go about adding test cases for this.  Any suggestions?
Currently, the following are supported in dmd:

c++ 'class' virtual functions

c++ free functions

c++ global variables

This patch adds/changes following:

extern(C++) classes are un-disabled

Correct mangling for static and non-virtual member functions for classes, structs and interfaces

Correct mangling for static and non-static member variables of structs and classes

Constructors and destructors of c++ classes and interfaces are mangled correctly

final can be used on c++ member functions to force non-virtual

c++ dtors are not automatically non-virtual (and are no longer disabled)

Template structs and classes are mangled correctly when used as a return type, a parameter type, or parent of a function/variable

C++ mangled names are not compressed (this was causing what looked like corruption, I have no idea why) or hashed

Basically, things link now.  And when I say link, I mean LINK.  Not much beyond that has been tested yet.
extern(C++)
struct Struct
{
  int member;
  static extern int staticmember;
  void memberfunc();
  static void staticfun();

  this();
  ~this();
}

extern(C++)
class Class
{
  int member;
  static extern int staticmember;
  void virtualfun();
  final void memberfunc();
  static void staticfun();

  this();
  ~this(); // virtual dtor, use final to force non-virtual
}

extern(C++)
interface I
{
  static extern int staticmember;
  void virtualfun();
  static void staticfun();
}

extern(C++)
class CT(T)
{
  int member;
  static extern int staticmember;
  void virtualfun();
  final void memberfunc();
  static void staticfun();
}

alias CT!int TT;

extern(C++)
extern int global;

extern(C++)
void globalfun();

extern(C++)
TT templatefun(TT, TT);

struct Struct
{
  int member;
  static int staticmember;
  void memberfunc() {}
  static void staticfun() {}

  Struct() {}
  ~Struct() {}
};

class Class
{
  int member;
  static int staticmember;
  virtual void virtualfun() {}
  void memberfunc() {}
  static void staticfun() {}

  Class();
  virtual ~Class();
};

class I
{
  static int staticmember;
  virtual void virtualfun() {}
  static void staticfun() {}
};

template<typename T>
class CT
{
  int member;
  static int staticmember;
  virtual void virtualfun() {}
  void memberfunc() {}
  static void staticfun() {}
};

typedef CT<int> TT;

int global;

void globalfun() {}

TT templatefun(TT, TT) {}

Things missing:

variables in template struct/classes
variables that are template struct/classes
template non-type parameters
mangling of special functions other than ctor and dtor
mangling global special functions
a way to support c++ value type classes embedded in other classes / as globals
mangling of struct vs class and int vs long and d keywords
debug information - dmd just crashes at the moment
non-windows support - I don't have a linux box set up to test on at the moment

Test cases, patches and advice welcome (especially advice on the backend and mangling voodoo)
Edit: variables inside templates are now supported

Some suggestions:

You should split this into multiple pull requests.

I'm uneasy about C++ struct value construction, this will only work if copy/assignment semantics can be fully mapped to D structs.

Templates also have several mapping issues, how will you handle them.

Please add test cases for the new abilites. You can use "static assert(sym.mangleof == "bla")" to test mangling. If it's needed for testing than d_do_test.d could be extended to compile/link C++ code declared as EXTRA_SOURCES.

Thanks for taking a look.  I will clean it up, split it up and add test cases when it's more complete.  I'll look into modifying d_do_test.d.
Mapping structs correctly in all cases is of course not possible, unless the c++ semantics are added to D, which I have no intention of doing.  There are going to be some large limitations where the features don't overlap.  Maybe construction needs to be limited to classes only, where the semantics are closer.
What template mapping issues are you referring to?  It's been a while since I've used templates extensively in C++.

Mapping structs correctly in all cases is of course not possible, unless the c++ semantics are added to D, which I >have no intention of doing. There are going to be some large limitations where the features don't overlap. Maybe >construction needs to be limited to classes only, where the semantics are closer.
Maybe one can model it using postblit or opAssign.

What template mapping issues are you referring to? It's been a while since I've used templates extensively in C++.
That C++ templates can't have aliases, floats...

Maybe one can model it using postblit or opAssign.

Maybe.  We'll see.

That C++ templates can't have aliases, floats...

Oh, that.  Currently only template type parameters are allowed, and I think it should just generate an error when anything not supported is used.  I should be able to do some mapping of alias parameters to template template parameters though.

Great ! This looks very promising and seems to be a real plus for D.
I have a question. Your exemple doesn't show anything about interface destructor. Even if this doesn't make a lot of sense in D, this does in C++.
We need a way to specify a destructor in extern(C++) interfaces, and additionnaly to be able to tell if that destructor is virtual or not (or final or not in D). If we don't, we risk to call the wrong destructor on C++ side.

Destructors are supported by extern(C++) classes, but not interfaces.  I think I'm going to turn C++ interfaces into abstract C++ classes, which will allow them.

dawgfoto > It is, at the current state of D, impossible to map copy constructor without modifying the language. I did work on that quite a lot and it always have been a problem.


lnwallet+rpcserver: fix weight calculation for taproot channels

Fix the weight calculation found in multiple places.
Fix #8036

To answer the question above re why this results in a lower fee rate in the sanity check instead of a higher one:

We use the correct weight values everywhere else up to this point, so we estimate against a "fully loaded" commitment tx (witness, etc).
When we get down to this check, we actually over estimate the weight since we use the segwit v0 witness value. For the musig2 channels, the witness is ~4x smaller, so by using the old constant we over estimate the weight for the sanity check, which leads to a lower fee rate.


17.03 CE mac2 hotfix release notes, improvements on notes and x-refs

What changed

added release notes for 17.03 CE-MAC-2 hotfixes
made headings formats for stable and edge releases more consistent in release notes
more updates for beta to edge terminology in release notes intro
improved notes on install pages for Mac and Windows to send users to release notes and Getting Started, more clearly

FYI
@ebriney, @friism, @jeanlaurent
Signed-off-by: Victoria Bialas<EMAIL_ADDRESS>

LGTM


dmabuf-capture - wl_output can't find display modes

Having an issue trying to get the dmabuf-capture example working.
Looks like it's not being able to pass the right screen geometry to libav and not quite sure how to debug this one.
Here's a few command outputs showcasing the problem.

❯ WAYLAND_DEBUG=1 ./dmabuf-capture -o 36 test.mkv
[1307836.005]  -> wl_display@1.get_registry(new id wl_registry@2)
[1307836.034]  -> wl_display@1.sync(new id wl_callback@3)
[1307836.146] wl_display@1.delete_id(3)
[1307836.162] wl_registry@2.global(1, "wl_shm", 1)
[1307836.174] wl_registry@2.global(2, "wl_drm", 2)
[1307836.191] wl_registry@2.global(3, "zwp_linux_dmabuf_v1", 3)
[1307836.200] wl_registry@2.global(4, "wl_compositor", 4)
[1307836.208] wl_registry@2.global(5, "wl_subcompositor", 1)
[1307836.222] wl_registry@2.global(6, "wl_data_device_manager", 3)
[1307836.232] wl_registry@2.global(7, "zwlr_gamma_control_manager_v1", 1)
[1307836.240] wl_registry@2.global(8, "gtk_primary_selection_device_manager", 1)
[1307836.251] wl_registry@2.global(9, "zxdg_output_manager_v1", 3)
[1307836.263] wl_registry@2.global(10, "org_kde_kwin_idle", 1)
[1307836.274] wl_registry@2.global(11, "zwp_idle_inhibit_manager_v1", 1)
[1307836.284] wl_registry@2.global(12, "zwlr_layer_shell_v1", 2)
[1307836.299] wl_registry@2.global(13, "xdg_wm_base", 2)
[1307836.316] wl_registry@2.global(14, "zwp_tablet_manager_v2", 1)
[1307836.335] wl_registry@2.global(15, "org_kde_kwin_server_decoration_manager", 1)
[1307836.349] wl_registry@2.global(16, "zxdg_decoration_manager_v1", 1)
[1307836.361] wl_registry@2.global(17, "zwp_relative_pointer_manager_v1", 1)
[1307836.372] wl_registry@2.global(18, "zwp_pointer_constraints_v1", 1)
[1307836.384] wl_registry@2.global(19, "wp_presentation", 1)
[1307836.395] wl_registry@2.global(20, "zwlr_output_manager_v1", 1)
[1307836.408] wl_registry@2.global(21, "zwlr_output_power_manager_v1", 1)
[1307836.417] wl_registry@2.global(22, "zwp_input_method_manager_v2", 1)
[1307836.432] wl_registry@2.global(23, "zwp_text_input_manager_v3", 1)
[1307836.443] wl_registry@2.global(24, "zwlr_foreign_toplevel_manager_v1", 2)
[1307836.456] wl_registry@2.global(25, "zwlr_export_dmabuf_manager_v1", 1)
[1307836.471]  -> wl_registry@2.bind(25, "zwlr_export_dmabuf_manager_v1", 1, new id [unknown]@4)
[1307836.489] wl_registry@2.global(26, "zwlr_screencopy_manager_v1", 3)
[1307836.504] wl_registry@2.global(27, "zwlr_data_control_manager_v1", 2)
[1307836.517] wl_registry@2.global(28, "zwp_primary_selection_device_manager_v1", 1)
[1307836.528] wl_registry@2.global(29, "wp_viewporter", 1)
[1307836.540] wl_registry@2.global(30, "zwp_virtual_keyboard_manager_v1", 1)
[1307836.554] wl_registry@2.global(31, "zwlr_virtual_pointer_manager_v1", 2)
[1307836.567] wl_registry@2.global(32, "zwlr_input_inhibit_manager_v1", 1)
[1307836.579] wl_registry@2.global(33, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1)
[1307836.594] wl_registry@2.global(34, "wl_seat", 7)
[1307836.607] wl_registry@2.global(35, "zwp_pointer_gestures_v1", 1)
[1307836.621] wl_registry@2.global(36, "wl_output", 3)
[1307836.639]  -> wl_registry@2.bind(36, "wl_output", 1, new id [unknown]@5)
[1307836.659] wl_callback@3.done(8821)
Capturable output: (null) Model: (null): ID: 36
[AVHWFramesContext @ 0x5595fd9edd00] [IMGUTILS @ 0x7ffd978348d0] Picture size 0x0 is invalid
[dmabuf-capture @ 0x7ffd97834ba0] Failed to initialize hw frame context: Invalid argument!
[1307839.194]  -> zwlr_export_dmabuf_manager_v1@4.destroy()

❯ vainfo
vainfo: VA-API version: 1.8 (libva 2.8.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 20.2.0 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileNone                   : VAEntrypointStats
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointFEI
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointFEI
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointFEI
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointFEI
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD

❯ swaymsg -t get_outputs
Output eDP-1 'Unknown 0x282B 0x00000000' (focused)
  Current mode: 3840x2160 @ 60.001999 Hz
  Position: 0,0
  Scale factor: 2.000000
  Scale filter: nearest
  Subpixel hinting: unknown
  Transform: normal
  Workspace: 1
  Max render time: off
  Adaptive sync: disabled
  Available modes:
    3840x2160 @ 60.001999 Hz

Its because wlroots picked a compressed layout with a second plane, and VAAPI doesn't support those yet. To fix this, either disable modifiers or patch wlroots to not pick them.
Some patches were sent to FFmpeg for VAAPI but they don't help yet as VAAPI itself is lagging.

WLR_DRM_NO_MODIFIERS=1 WAYLAND_DEBUG=1 ./dmabuf-capture -o 36 -r 12 recording.mkv
produced the same output.
I'll have a look at the codebase and see where that flag is being checked and go from there.

WLR_DRM_NO_MODIFIERS is read by wlroots, not by the example client.

exported the env var in my profile before starting sway. Running into the same error.

Can you try https://github.com/swaywm/wlroots/pull/2387?


Nu osc

Master can be updated with basic oscillation code.

Just a warning for @sgriswol and @nuberoi: it's been a while since the master branch has been updated with the oscillation code, so I'm merging the two.


chore: wireup model schema_version usage metrics

Description
Introduce a new metric model_schema_version_counter which tracks a count of the various schema_version values that we encounter when resolving an authorization model, and wire it up by making use of the TypesystemResolverFunc at the top-level in the server.
We'll be able to use this metric and take the rate(model_schema_version_counter{"schema_version": "1.0"})[1m] to see the rate of traffic for 1.0 models increase/decrease, and likewise we'll be able to track the model_schema_version_counter{"schema_version": "1.1"} metric to see increase in adoption as well.
References

Review Checklist

[x] I have clicked on "allow edits by maintainers".
[ ] I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
[x] The correct base branch is being used, if not main
[x] I have added tests to validate that the change in functionality is working as expected

This PR is too big, and it's doing two things: introducing the typeResolver object, and introducing the new metric. Can we split into two?

another PR introducing the metric in the TypesystemResolverFunc (which would be like a 1 line change).

you can make this change right now in the existing model cache and it would likely get approved immediately. With this PR, you are asking us to approve a big change before we can get that metric in


WIP: build: iso: allow overlay to replace files

Adding the overlay during makefs fails if we're trying to replace files.
This prepares the $BASEBITSDIR instead by rsyncing over it. There may be a
better way to do this without rsync.
WIP: because it requires rsync

rsync isn't included in the base, suggest you use the following:
tar cf - -C$OVERLAY_DIR . | tar xf - -C$BASEBITSDIR
Tar should overwrite files properly like rsync as well.

Good idea
I'll try that once my current poudriere build is done and update the commit

I've updated the commit to use tar


Parameterize redis server IP

Q
A

Version
2.5.14

My php server has the redis extension loaded, but my redis server instance are in another server. So, when I run my app is displayed the RedisException below:
Fatal error: Uncaught exception 'RedisException' with message 'Connection refused' in /var/www/middlewares/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Setup.php:200
Below the code regarding this exception:
if (extension_loaded('redis')) {
    $redis = new \Redis();
    $redis->connect('<IP_ADDRESS>');   <------ Server IP

    $cache = new \Doctrine\Common\Cache\RedisCache();
    $cache->setRedis($redis);

    return $cache;
}

So, basically it was good if the redis server IP was parameterized in Doctrine config options.

Sorry, incorrectly moved this issue. I think the entire Doctrine\ORM\Tools\Setup is kinda foobar'd. Probably a better idea to leave this to PSR-11 providers like https://github.com/DASPRiD/container-interop-doctrine, in future.
Thoughts, @doctrine/doctrinecore?

So, basically it was good if the redis server IP was parameterized in Doctrine config options.

I'm excluding this upfront. The if (extension_loaded('redis')) { block should rather disappear, but the setup utilities are in place to aid in getting started there, they are surely not meant to be highly configurable.

I think the entire Doctrine\ORM\Tools\Setup is kinda foobar'd.

As discussed with @lcobucci some time ago, we should either drop the Setup class altogether in 3.0 or at least drop the magic around caching configuration - it makes a lot of naive assumptions, especially when creating the cache instance.

As discussed

https://github.com/doctrine/doctrine2/pull/6777#discussion_r159183945
https://github.com/doctrine/doctrine2/pull/6905#pullrequestreview-84359484


Double roulette messages in nymn

This might be something more file related or something..not sure but I've seen it happening for a while.

will probably be fixed by #959


Bump qiskit-aqua version and prepare for release

Summary
This commit bumps the qiskit-aqua version to the latest release and
prepares for pushing a new patch version release, 0.11.2.
Details and comments
Fixes #443

@SooluThomas could you work with @mtreinish to accept this pr.

@SooluThomas could you work with @mtreinish to accept this pr.

Sure! Let me know what I've to do.

If this looks good we just need to approve and merge this PR. Once it's on master I'll push that as a 0.11.2 tag (which is the release process).


[🐛 Bug]: The error "The following routes were not configured to run with the Edge Runtime" appears even when I have configured runtime

next-on-pages environment related information
System:
Platform: darwin
Arch: arm64
Version: Darwin Kernel Version 23.1.0: Mon Oct  9 21:27:24 PDT 2023; root:xnu-10002.41.9~6/RELEASE_ARM64_T6000
CPU: (8) arm64 Apple M1 Pro
Memory: 16 GB
Shell: /bin/zsh
Package Manager Used: npm (8.15.0)
Relevant Packages:
@cloudflare/next-on-pages: 1.7.2
vercel: N/A
next: 13.5.4
Description
I'm trying to deploy my Next.js app on Cloudflare pages. Since it has several API routes, it needs the runtime configured, so I added the following to all my route.ts files.
export const runtime = process.env.NEXT_PUBLIC_API_RUNTIME as "nodejs" | "experimental-edge" | "edge" | undefined;

Note:: To run the app locally, I need the nodejs runtime, therefore I have configured an environment variable to handle this.
In the Cloudflare dashboard, I have configured this env var for both preview and production environments as well.

But still, when I trigger a cloudflare build, the build fails with the following error.
⚡ Completed `npx vercel build`.
--
14:44:31.209 |
14:44:31.209 | ⚡ ERROR: Failed to produce a Cloudflare Pages build from the project.
14:44:31.209 | ⚡
14:44:31.210 | ⚡ 	The following routes were not configured to run with the Edge Runtime:
14:44:31.210 | ⚡ 	  - /api/projects/[projectId]
14:44:31.210 | ⚡ 	  - /api/projects
14:44:31.210 | ⚡ 	  - /api/user
14:44:31.210 | ⚡ 	  - /auth/[authFunction]
14:44:31.210 | ⚡ 	  - /projects/[projectId]
14:44:31.211 | ⚡
14:44:31.211 | ⚡ 	Please make sure that all your non-static routes export the following edge runtime route segment config:
14:44:31.211 | ⚡ 	  export const runtime = 'edge';
14:44:31.211 | ⚡
14:44:31.211 | ⚡ 	You can read more about the Edge Runtime on the Next.js documentation:
14:44:31.211 | ⚡ 	  https://nextjs.org/docs/app/building-your-application/rendering/edge-and-nodejs-runtimes
14:44:31.211 |
14:44:31.231 | Failed: Error while executing user command. Exited with error code: 1
14:44:31.242 | Failed: build command exited with code: 1
14:44:32.081 | Failed: error occurred while running build command

Reproduction
No response
Pages Deployment Method
Pages CI (GitHub/GitLab integration)
Pages Deployment ID
No response
Additional Information
No response
Would you like to help?

[ ] Would you like to help fixing this bug?

@pavinduLakshan Hi, have you succesfully fixed this issue? (especially for the   - /projects/[projectId] page?

@pavinduLakshan It's weird that If I add the export const runtime = 'edge', it will complain about the 'experimental-edge'. If I switch to 'experimental-edge' it will complain about webpack config.resolve.alias was incorrectly overridden. https://nextjs.org/docs/messages/invalid-resolve-alias and cannot build it succesfully.

@pavinduLakshan It's weird that If I add the export const runtime = 'edge', it will complain about the 'experimental-edge'. If I switch to 'experimental-edge' it will complain about webpack config.resolve.alias was incorrectly overridden. https://nextjs.org/docs/messages/invalid-resolve-alias and cannot build it succesfully. May I know your next.js version and next-on-page versoin?

In my case also, environment variables should be working as expected, but they aren't. I'm curre tly afk, will get back to you as soon as I'm available.

Any updates here?

Running into this as well. Should this issue be re-opened?

That was my error:
ERROR: Failed to produce a Cloudflare Pages build from the project.
The following routes were not configured to run with the Edge Runtime:

/[lang]/confirm
/[lang]/confirmations
...
becose I'm using cloud-flare to deploy my project, but I think that's the same error.

My error was solved just with this line export const runtime = 'edge'; on each non-static routes, You can read more about the Edge Runtime on the Next.js documentation: https://nextjs.org/docs/app/building-your-application/rendering/edge-and-nodejs-runtimes

Can I set the runtime via environment variables?
like:
export const runtime = process.env.NEXT_PUBLIC_RUNTIME ||  'edge';

Can I set the runtime via environment variables?
like:
export const runtime = process.env.NEXT_PUBLIC_RUNTIME ||  'edge';

The last time I checked, it wasn't possible. Only manually specifying the runtime works. This was very frustrating to me as I have to manually edit the runtime everytime I switch between local dev and pushing changes.
Also, cloudflare sites append / to the end of the URLs, which impacts negatively for SEO and algolia crawlers. Unfortunately cloudflare pages doesn't have an option to switch this off, but Netlify has.
Due to these reasons, I'm no longer using cloudflare pages. The unlimited bandwidth and other perks are very attractive, but was not enough to make up my mind/convince my team mates to keep using Pages.

Thank you. This is a new option for me.

adding this worked for me
//  app/layout.js   export const runtime = "edge";

@pavinduLakshan why do you need to use the nodejs runtime during local development?

I'm facing a similar issue to the one I mentioned earlier. After encountering the problem, I decided to switch all my API route implementations to serverActions, as recommended in the Next.js documentation. However, I ran into another issue with a "Not Allowed Request" error because I was using formActions for my requests, which turned out to be caused by a bug discussed on the Cloudflare forum.
It feels like a dead end. If I add the "edge" extension, the build fails. On the other hand, if I revert to using API routes, the build might fail on Cloudflare Pages. It's frustrating that these approaches don't fully support each other.


Standalone combos not working

Since patch day individual combo chains have not been working. The examples I've come across are Gnashing Fang being relegated to its own button and the entirety of SAM. Combos refuse to start with Hakaze/Gyofu but then continue correctly if that skill is manually inputted from a seperate button. This does not affect the Auto-Mode.

duplicate of #130
fixed in #112

ah my mistake, thanks chief


IDs?

@jklmnn suggested that we remove city IDs alltogether and reference them by their real name only. Not quite sure how we'd deal with duplicates, but due to the current metadata format we'd run into this problem anyways. But otherwise it would make things much easier.
Any suggestions?

:+1:

I know we've scrapped this idea since, but didn't we agree to switch things around? I remember @sibbl having some valid input on this, probably in our slack, so I don't remember much :D
Anybody remember what we wanted to do here?

We first had a dict [{"somename": "id"}, {"somename2": "id2"}, ... ] which is now a more complex object like [{"id": {"name": "somename", ...}, "id2": { "name": "somename2"}, ...]. In the first version, the name would have to be unique as it was the key of the dict, but now this is already fixed in my eyes, isn't it? There's a unique ID for each city (which can equal to the name) and a name inside the value of each dict row.

👍: Thanks!


Add a link to a wiki page with app screenshots

This would help someone new get an idea about the app. This could also include info on things like how to join the beta program. Later when the app is published publicly, it can include links to the play and app store links.

It would also be nice to have some gif which show app workflows

Create a centralized folder to create public wikis. Then I can add a wiki there.

Will add wiki to this area
https://github.com/bigpanther/shipanther/wiki

will write wiki on this tmrw.

Will add wiki to this area
https://github.com/bigpanther/shipanther/wiki

done at https://github.com/bigpanther/shipanther/wiki/Shipanther-iOS-mobile-application

Perfect. Thanks


Migrate to the new Dev UI

see https://github.com/quarkusio/quarkus/issues/31315

Thanks for the link, @phillip-kruger executed together with the Quarkus 3.0 upgrade in 80ed9816b2defa1129fba4f34eb07a89a6da4046

Hi @michael-simons , I had a quick look, I don't think this is done yet. This ticket is to migrate to the new Dev UI, as the old one will be removed in future releases

So it’s basically just deleting the html file isn’t it?

Lol.
➜  integration-tests git:(main) git stash pop
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   ../deployment/src/main/java/io/quarkus/neo4j/deployment/Neo4jDevUiConsoleProcessor.java

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   ../deployment/src/main/java/io/quarkus/neo4j/deployment/Neo4jDevServicesProcessor.java

I should go back to bed.

Thanks!! LGTM


build(dep): set ui-toolkit to v1.4.1

Codecov Report

Merging #292 (2e4e02e) into master (e303ddb) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #292   +/-   ##
=======================================
  Coverage   49.58%   49.58%
=======================================
  Files          33       33
  Lines         851      851
  Branches       89       89
=======================================
  Hits          422      422
  Misses        395      395
  Partials       34       34

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 e303ddb...2e4e02e. Read the comment docs.


Logging and Monitoring

Write an extension for basic logging and monitoring

I think this is already covered by the console monitor. This output can be piped directly from a deployed container to logging infrastructures such as DataDog or LogStash or stated.
Is there an additional requirement?

logging: maybe users want ways to format log lines in a unique way (add fields dynamically, json format, ...); maybe System.out
monitoring: offer endpoints for tools like prometheus etc.
 Moritz Keppler<EMAIL_ADDRESS>Daimler TSS GmbH, legal info/Impressum

I think it would make sense to define different extensions for logging and monitoring and use/integrate - if possible - already existing implementations (e.g. logging -> slf4j).
The console monitor as currently defined provides basic logging functionality but does not provide interfaces for monitoring the performance and health of the system.
 Helmut Pfister<EMAIL_ADDRESS>Daimler TSS GmbH, legal info/Impressum

A JDK logging extension has been created and it is possible to change the console monitor implementation so I'm going to close this issue out.


High CPU usage with cgo based project

I'm experiencing High CPU usage only with a project that uses cgo:
GOARCH="amd64"
GOBIN="/Users/tristian/go/bin"
GOCACHE="/Users/tristian/Library/Caches/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/tristian/go"
GORACE=""
<EMAIL_ADDRESS>GOTMPDIR=""
<EMAIL_ADDRESS>GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/g1/v3hz1sm92nv7wbzpg3dx_h_h0000gp/T/go-build244207331=/tmp/go-build -gno-record-gcc-switches -fno-common"

VSCode Version:
Version 1.28.2 (1.28.2)

Go Extension Version:
0.7.0 - 6th November, 2018

go-langserver version:
go-langserver --version
v3-dev

Showing top 10 nodes out of 35
      flat  flat%   sum%        cum   cum%
     9.91s 72.65% 72.65%     13.10s 96.04%  runtime.scanobject
     1.39s 10.19% 82.84%      1.39s 10.19%  runtime.heapBits.bits (inline)
     1.32s  9.68% 92.52%      1.32s  9.68%  runtime.(*mspan).base (inline)
     0.22s  1.61% 94.13%      0.22s  1.61%  runtime.kevent
     0.19s  1.39% 95.53%      0.19s  1.39%  runtime.markBits.isMarked (inline)
     0.16s  1.17% 96.70%      1.49s 10.92%  runtime.heapBitsForObject
     0.11s  0.81% 97.51%      0.11s  0.81%  runtime.duffcopy
     0.09s  0.66% 98.17%      0.29s  2.13%  runtime.greyobject
     0.09s  0.66% 98.83%      0.09s  0.66%  syscall.Syscall
     0.03s  0.22% 99.05%      0.24s  1.76%  runtime.netpoll

ID    COMMAND      %CPU  TIME     #TH    #WQ  #PORT MEM    PURG   CMPRS  PGRP  PPID  STATE    BOOSTS         %CPU_ME %CPU_OTHRS UID  FAULTS    COW     MSGSENT    MSGRECV    SYSBSD    SYSMACH
47838  go-langserve 113.6 31:48.92 25     0    91    890M+  0B     33G-   1540  39379 stuck    *0[1]          0.00000 0.00000<PHONE_NUMBER>3+ 637400  130        44         30701229+ 384024+
311    iTerm2       39.8  40:52.78 15     9    379+  88M+   72K-   87M-   311   1     sleeping *0[1105]       0.10889 0.77489<PHONE_NUMBER>+  15294+  3266461+   435294+    6365659+  6989728+
0      kernel_task  38.1  02:31:45 140/8  0    2     9797M- 0B     0B     0     0     running   0[0]          0.00000 0.00000    0    135514    0       101816739+ 85572233+  0         0
10310  iTunes       31.7  03:07:27 24/1   4    551   2780K  0B     46M    10310 1     running  *0[284]        0.00000 0.00000    502  177719    1649    594750809+ 198272062+ 185

I don't think this is due to cgo, we have issues around high cpu usage in general.
Duplicate of https://github.com/sourcegraph/go-langserver/issues/209

Thanks!, it only happens when I work on a project that uses a cgo lib and when the code has errors (as a type the code and it's incomplete); it will start having really high cpu usage.


Tree broken after node delete/change/add

Summary
When the admin tries (for example) to delete a placeholder the delete fails with an error 500 saying MultipleObjectsReturned: get() returned more than one CMSPlugin -- it returned 36.
Traceback (most recent call last):
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
    response = self.process_exception_by_middleware(e, request)
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 244, in inner
    return view(request, *args, **kwargs)
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/django/views/decorators/clickjacking.py", line 39, in wrapped_view
    resp = view_func(*args, **kwargs)
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/cms/admin/placeholderadmin.py", line 678, in delete_plugin
    plugin.delete()
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/cms/models/pluginmodel.py", line 483, in delete
    super(CMSPlugin, self).delete(*args, **kwargs)
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/treebeard/models.py", line 506, in delete
    self.__class__.objects.filter(pk=self.pk).delete()
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/treebeard/mp_tree.py", line 112, in delete
    parents[parentpath] = node.get_parent(True)
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/treebeard/mp_tree.py", line 1072, in get_parent
    self.__class__).objects.get(path=parentpath)
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/django/db/models/manager.py", line 122, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/Users/marco/.virtualenvs/rollsite-2/lib/python2.7/site-packages/django/db/models/query.py", line 391, in get
    (self.model._meta.object_name, num)
MultipleObjectsReturned: get() returned more than one CMSPlugin -- it returned 35!

The error happens in MP_NodeQuerySet#delete (of django-treebeard) when the code tries to get a node parent with node.get_parent(True).
Looking at the database I can see that I have multiple plugins with the same path value (https://marcoacierno.space/xQzR3Qogo4.png) so I'm not sure but it might be the reason...
The "same path value for multiple plugins" also causes another bug in the delete code: when the deleted node is not a leaf node, most of the content in the website is deleted (because toremove.append(Q(path__startswith=node.path)) is used, which basically selects all my plugins in the database, even if in a different post)
Any suggestion how to debug the issue? Is normal that multiple plugins in the database have the same node path even when in different posts?
Commands run to fix/check what is happing:

cms fix-tree fails with treebeard.exceptions.NodeAlreadySaved: Attempted to add a tree node that is already in the database
cms check: https://pastebin.com/rYGWxmhq

The django-treebeard code:
# ok, got the minimal list of nodes to remove...
# we must also remove their children
# and update every parent node's numchild attribute
# LOTS OF FUN HERE!
for path, node in removed.items():
    parentpath = node._get_basepath(node.path, node.depth - 1)
    if parentpath:
        if parentpath not in parents:
            parents[parentpath] = node.get_parent(True)
        parent = parents[parentpath]
        if parent and parent.numchild > 0:
            parent.numchild -= 1
            parent.save()
    if node.is_leaf():
        toremove.append(Q(path=node.path))
    else:
        toremove.append(Q(path__startswith=node.path))

Expected behaviour
The plugin is correctly deleted and the site does not lose content.
Actual behaviour
When the admin tries to add/remove content there is a possibility that most of it gets deleted
Environment

Python version: 2.7
Django version: 1.9.5
django CMS version: 3.2.5

Hello @marcoacierno,
Thanks for reporting this.
Which database are you using?
The path field is a unique field, which means that your database is not handling constraints properly.
Also you're using a really old django CMS version, please upgrade to the latest django CMS 3.4.x

Hello!
I'm using MySQL and, for some reason, in my database path is not unique.
I need to check if I can upgrade to 3.4.x, as it requires a new version of Django and I have a few libraries that are not compatible (so it might require a bit of time)

@marcoacierno I see you're using django 1.9 which is compatible with django cms 3.4.x

@czpython Do you happen to know if cms fix-tree should fix the issue (the not unique path) I'm having or it's for something totally different? I upgraded to 3.4 but I can't test before I fix other issue (for some reason Django CMS can't find my Apphook (or so it seems) anymore so it doesn't register the namespace)
So I will let you know as soon as possibile

@marcoacierno rename any cms_app file to cms_apps.
fix-tree won't fix the path issue, that said cms 3.4.x fixed a lot of tree corruptions.
can you check if any unique constraint is enforced on your db?

Done, but now my entire site is blank.  Is there any other compatibility change to do that is not specified in the changelogs?
I'm checking the changelogs of all the versions, all my custom plugins already use 'render' so I think the 'Manual plugin rendering' section does not apply to me. I'm having a look at the other external plugins I use and check if I need to update them.
I also tried to recreate from 0 the database and reapply the migrations without importing the dump from the site, and I can see that path is still not unique. About your question with a quick look there isn't any field with the unique on it (can't confirm for sure for now, I need to do a migration that applies an unique to test or check what the migration says with what is in the database.)
I will write again soon with a better answer for the 'unique constraint' question

can you check if any unique constraint is enforced on your db?

The other unique constraints seems to work fine. Only path, for some reason, isn't...

Was this project recently upgraded from a django version lower than 1.7?

Hello, sorry for the silence.
It's not confirmed yet, but I think I fixed the issue by changing how django-treebeard selects the last root node.
What happened was:
When django-treebeard called get_last_root_node in (for example) https://github.com/django-treebeard/django-treebeard/blob/2a7db13fc1d0738ab72bc2c28de1913727eecd47/treebeard/mp_tree.py#L315 to get the last root node path created, my database always returned 999 as latest root path (the function basically does a order_by('path') and reverse to get the last node), even if 099A was present.
I fixed it by ordering the roots using the id instead of the path https://github.com/rollstudio/django-treebeard/commit/00e4fe93afc14274c625b648945f31b5b0fec9ac
Basically, this means that ALL the root nodes created since 999 became the last root path, shared the same root path as the code always thought that 099A was the next "unique" path.
Then, I created this command to fix my broken paths in the database. I don't think this command will help someone else because it's very specific to my problem (and I'm pretty sure, if you database is in healthy state (I mean, path is marked as unique), you don't have duplicate paths or similar, as the creation of the plugin will very likely just fail with 'integrity error, path is not unique')
The data corruption doesn't seem to happen anymore, but we need to do more tests.
I also haven't upgraded Django/django-cms as it caused too many problems and fixing this issue was more important.
I'm closing this issue as it doesn't seem to be related to django-cms. Thank you for your help @czpython !

Thanks for the update @marcoacierno.
I suggest to have a look at the collation used on your database.
Ordering by id will likely break your tree.

It orders by id only the root nodes (so depth=1) not the entire tree
Will have a look when I arrive at the office

I encountered the same problems when I tried to publish my edit. Quite annoying.

I encountered the same problems when I tried to publish my edit. Quite annoying.

apache2.4, mod_wsgi 4.8, django 3.1.7, djangocms 3.8.0, ubuntu 20.04

I have this problem as soon as I fill placeholders with plugins:
Attempted to add a tree node that is already in the database
Pages without plugins can be published, only with plugins produces the error, no matter which plugins.
django_cms==3.8.0, django-treebeard==4.5.1, Python==3.6.9, django==3.1.8

While I don't work at the company where I had this issue anymore and I also know they stopped using django-cms due this problem (which was: every time they tried to change something it would delete everything, making updating the site impossible) and many other problems, as other people are reporting that they have the same issue I think reopening this issue might be helpful
Feel free to close it again

For me, this problem occurs in general, after fresh installation on the first page.
Attempted to add a tree node that is already in the database
Request Method: POST
Request URL: XXX
Django Version: 3.1.8
Exception Type: NodeAlreadySaved
Exception Value: Attempted to add a tree node that is already in the database
Exception Location: /python-app-venv/lib/python3.6/site-packages/treebeard/mp_tree.py, line 326, in process
Python Executable: /python-app-venv/bin/python
Python Version: 3.6.9
I have already tried different django_treebeard versions and also python manage.py cms check does not return any error.

@preinhart Please check this thread, https://django-cmsworkspace.slack.com/archives/CQ97U91UM/p1613655590140300. The gist is that you need to pin django-treebeard to a version less than v4.5.0. Please read this thread for more details.

Unfortunately no improvement with django_treebeard==4.4
DATABASES = {
  'default': {
       'CONN_MAX_AGE': 0,
       'ENGINE': 'django.db.backends.mysql',
       'OPTIONS': {
           'sql_mode': 'traditional',
       },
       'HOST': '',
       'NAME': '',
       'PASSWORD': '',
       'PORT': '',
       'USER': ''
   }
}

I am trying to configure two sites with one database, the first settings.py with SITE_ID = 1 and the second settings.py with SITE_ID = 2.

Unfortunately no improvement with django_treebeard==4.4
DATABASES = {
  'default': {
       'CONN_MAX_AGE': 0,
       'ENGINE': 'django.db.backends.mysql',
       'OPTIONS': {
           'sql_mode': 'traditional',
       },
       'HOST': '',
       'NAME': '',
       'PASSWORD': '',
       'PORT': '',
       'USER': ''
   }
}

I am trying to configure two sites with one database, the first settings.py with SITE_ID = 1 and the second settings.py with SITE_ID = 2.

That's weird. Could you please post the output for your pip freeze?

@preinhart

I have this problem as soon as I fill placeholders with plugins:
Attempted to add a tree node that is already in the database
Pages without plugins can be published, only with plugins produces the error, no matter which plugins.
django_cms==3.8.0, django-treebeard==4.5.1, Python==3.6.9, django==3.1.8

I can spot the problem right here. You are using django-treebeard==4.5.1. This is a buggy version.
Switch to a version below 4.5 like this: django-treebeard==4.4
And you will not face these issues anymore.

Both environments (SITE_ID = 1 and SITE_ID = 2) are equal, but not the same.
asgiref==3.3.4
dj-database-url==0.5.0
Django==3.1.8
django-classy-tags==2.0.0
django-cms==3.8.0
django-filer==2.0.2
django-formtools==2.2
django-js-asset==1.2.2
django-mptt==0.12.0
django-polymorphic==3.0.0
django-sekizai==2.0.0
django-treebeard==4.4
djangocms-admin-style==2.0.2
djangocms-attributes-field==2.0.0
djangocms-bootstrap4==2.0.0
djangocms-file==3.0.0
djangocms-googlemap==2.0.0
djangocms-icon==2.0.0
djangocms-installer==2.0.0
djangocms-link==3.0.0
djangocms-picture==3.0.0
djangocms-style==3.0.0
djangocms-text-ckeditor==4.0.0
djangocms-video==3.0.0
easy-thumbnails==2.7.1
html5lib==1.1
mysqlclient==2.0.3
Pillow==8.2.0
pytz==2021.1
six==1.15.0
sqlparse==0.4.1
typing-extensions==<IP_ADDRESS>
tzlocal==2.1
Unidecode==1.1.2
webencodings==0.5.1

Using django-treebeard==4.4 in both environments resulted in SITE_ID = 1 working, SITE_ID = 2 unfortunately still not.
I double checked that both environments use django-treebeard==4.4 :-)
Thanks for the help!

My tests have shown that the problem:
Attempted to add a tree node that is already in the database
occurs regularly in a multisite setup. With one site SITE_ID = 1 it works without error, the error occurs as soon as a second environment with a new settings.py (SITE_ID = 2) uses the same database.
Maybe there is a way to set the SITE_ID in the settings.py dynamically? I tried something like this in my passenger_wsgi.py:
if os.getenv('SSL_TLS_SNI') == 'XY':
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', ApplicationName + '.settings_XY')
else:
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', ApplicationName + '.settings_AB')

Does anyone knows a best practice to setup django_cms for multisites?

@preinhart We use this at work. https://github.com/nephila/djangocms-multisite. This might solve your issues.

@vinitkumar @preinhart On that note, I have a fork to fix migration from an empty database on the underlying library for that package;
https://github.com/shestera/django-multisite/compare/master...marksweb:master
I think I recall getting a Site does not exist type error when starting a new project with multisite support.

Hi @preinhart,
we need the code where we can reproduce the error and then try to fix it.
Thanks for your cooperation.
greengoaxe


Cannot find old initiatives data

I upgraded from Suma 2.0 to the newest version which supports php 8.1.  Mainly because I had to migrate from Centos 8 to Oracle Linux 9. I setup Suma (again, have done this multiple times now).
I cannot get any Reports to generate on previously created Initiatives with past data.  Get this though... if I submit new data on one of those old initiatives, it will generate a report on that new data just fine.  It just won't on older data.
Below is the error that appears.  It is odd because the initiative is in the drop down, I select it, it has all the location and activities loaded in.  It just won't run the report on old data.
Notice!
There was a problem generating the report. Please try again or contact your system administrator.
Error Code: 500
Error Message: No initiatives found. Please create an initiative in the Suma admin tools.

Also odd, looking at the raw sql data. The data is the same in every aspect from that new data to old data.
I have all the high level debug logs running. Nothing is being logged.
David

Just noticed another ticket with the same issue: https://github.com/suma-project/Suma/issues/143
No way... he was right... this fixed it... by changing the SUMA_DEBUG in service/web/config/config.yaml to SUMA_DEBUG: false
https://github.com/suma-project/Suma/issues/143#issuecomment-1168991861
There is definitely something odd going on there.  FYI.

Just noticed another ticket with the same issue: #143
No way... he was right... this fixed it... by changing the SUMA_DEBUG in service/web/config/config.yaml to SUMA_DEBUG: false #143 (comment)
There is definitely something odd going on there. FYI.

I just wanted to confirm that I had the same issue and resolution! Very strange indeed. Thanks for sharing.

Nice catch. I think there are some benign deprecation warnings that are throwing things off. We'll try to take a look at this.


Client sided routing only works once 0.13.x

I'm having an issue where after i call router.run on the client after the page loads, only the first click that changes the url will fire the callback, the subsequent clicks do not fire the callback.
//routes.jsx
<Route handler={App} path="/">
    <Route name="test" path="/test/:id" handler={Test} />
    <Route name="tests" path="/test" handler={Tests} />
    <DefaultRoute name="home" handler={Home} />
</Route>

I'm using fluxible as well so on the client I rehydrate my app first, app.getComponent() is the route object since I create it with the routes
var app = FluxibleApp( { component: routes } )
//client.js
    app.rehydrate(dehydratedState, function (err, context) {
		if (err) {
		}

		Router.run(app.getComponent(), Router.HistoryLocation, function (Root, state) {
			var RootComponent = fluxibleAddons.provideContext(Root,{
				getStore : React.PropTypes.func.isRequired,
				executeAction: React.PropTypes.func.isRequired
			});
			React.render(React.createElement(RootComponent, React.__spread({}, state, { context : context.getComponentContext()  })), document.getElementById(app.uid));
		});
	});

Never used fluxible, but I think your problem is that you're wrapping the router-provided Root component in a newly created HoC (RootComponent) each time the run callback fires. Due to React reconcilation, it'll re-mount the router component every time (and also re-create the whole DOM..). Since the router automatically stops when unmounted, this would explain why you're not getting any more calls. If I'm right, this line should be executed the second time you render.
Unfortunately, the 0.13 API doesn't really make it easy to fix this. Since the Root (component) argument is actually identical every time, one solution could be to create the HoC only on the first run.
var RootComponent = null;
Router.run(app.getComponent(), Router.HistoryLocation, function (Root, state) {
  if (!RootComponent) {
    RootComponent = fluxibleAddons.provideContext(Root, {
      getStore : React.PropTypes.func.isRequired,
      executeAction: React.PropTypes.func.isRequired
    });
  }
  React.render(React.createElement(RootComponent, ...), ...);
});

Thanks taurose, I will try this later and get back with results.

I figured it out. Thanks to taurose, the Root component must be persisted so the router won't be stopped. Instead of providing the context at the root route level, I provided it in my main app handler
//app.jsx
var App = React.createClass({
	render: function () {
				return (
						<div>
							<Navbar />
							<div id="mainContent" className="container" style={appCSS.mainContent}>
								<RouteHandler {...this.props}/>
							</div>
						</div>
					);
			}
});

App = fluxibleAddons.provideContext(App, {
        executeAction : React.PropTypes.func.isRequired,
        getStore : React.PropTypes.func.isRequired
    }
);

then in my route handlers, I define contextTypes to keep on grabbing the executeAction and getStore methods.


Deeplink in IOS

I need to implement deep linking with URL Scheme in iOS, but how can I connect that native Swift code to Voyager? The documentation suggests adding this function to the AppDelegate. How can I create this delegate class and connect it to other classes?
func application(_ app: UIApplication, open url: URL,
                 options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
    if let scheme = url.scheme,
        scheme.localizedCaseInsensitiveCompare("com.myApp") == .orderedSame,
        let view = url.host {

        var parameters: [String: String] = [:]
        URLComponents(url: url, resolvingAgainstBaseURL: false)?.queryItems?.forEach {
            parameters[$0.name] = $0.value
        }

        redirect(to: view, with: parameters) // this line how navigate with voyager??
    }
    return true
}

@main
struct iOSApp: App {
   var body: some Scene {
   	WindowGroup {
   		ContentView()
   	}
   }
}

struct ContentView: View {
   var body: some View {
       ComposeView()
               .ignoresSafeArea(.keyboard) // Compose has own keyboard handler
   }
}

```swift
struct ComposeView: UIViewControllerRepresentable {
   func makeUIViewController(context: Context) -> UIViewController {
       MainViewControllerKt.MainViewController()
   }

   func updateUIViewController(_ uiViewController: UIViewController, context: Context) {}
}

fun MainViewController() = ComposeUIViewController { App() }

@Composable
fun App () {
    Navigator(ListScreen()) { navigator ->
         CurrentScreen()
    }
}

@ghasemdev there is no currently built-in way of handling deeplink uris in voyager. The issue #387 has a example how you can handle this your self with replaceAll for example.
We plan to add better docs for deeplink examples.


[Task] <fix and pass the checkstyle error in common module code>

Description
Description
fix and pass the checkstyle error in common module code
module https://github.com/dromara/hertzbeat/tree/master/common
run mvn compile in common module, you will see the style error, fix it and pass the checkstyle

Task List
No response

I want to help


Fix extra events being emitted from the color slider

Resolves
What Github issue does this resolve (please include link)?
Related to LLK/scratch-vm#1695, we were getting echo events from setting the initial slider values.
Move the call to set those values above the callbacks being bound to avoid this.

Merging since I need these changes for the PR I am about to submit.


Error when trying to build sqlite "Could not build Objective-C module CSQlite"

I'm having problems adding sqlite to my proyect, my podfile looks like this:
platform :ios, '9.0'
workspace 'KnotioniOS.xcworkspace'
xcodeproj 'KnotioniOS.xcodeproj'
use_frameworks!

target 'KnotioniOS' do
    pod 'SwiftyJSON', '~> 3.1.4'
    pod 'Alamofire', '~> 4.3'
    pod 'Alamofire-Synchronous', '~> 4.0'
    pod 'AlamofireImage', '~> 3.1'
    pod 'CVCalendar', '~> 1.4.1'
    pod 'DKImagePickerController'
    pod 'ReachabilitySwift', '~> 3'
    pod 'SSZipArchive', '1.2'
	pod 'lottie-ios'
    pod 'SQLite.swift', '~> 0.11.2'
end

And the error looks like this:

I'm currently in the process to convert a project from swift 2.3 to 3.0, so i started updating the pods but this was the only one that i could't update, i tried to go back to prev version(0.10.1) but the error persists. I find THIS issue and i followed the response of ehsan-black, i changed my Xcode to applications, i tried deleting derived data and cleaning the proyect but nothing works. I also tried with a clean project just with this pod, but the result was the following:

ok, so the error apparently was that i had two different Xcodes, not open, just installed, when i uninstalled the older (7.3.1), and just leave the 8.2 it worked.

There is Close Issue button under the comment section for the author of the issue.

oh, thanks.


navigation.NavigationItemSupplier: items are sorted by type then by name

OUs are before Users, then each are sorted alphabetically.

Coverage increased (+0.05%) to 95.527% when pulling 23e8a9b9044b6deea7bb8b440a63ed784d5e3d9b on sortby-ous-then-users into 86fdf5d851b9b2bd990766a6f96a319edd5a4dee on develop.


fixing 2 issue with bucket polices

Signed-off-by: jackyalbo<EMAIL_ADDRESS>Explain the changes

fixed issue of when adding an allow statement in bucket policy denied already given access to the bucket - only deny should do it (BZ1891117)
fixed an issue where bucket_owner was allowed access even is specific deny access appeared
created a beginning of support to specific allow will allow access even if the bucket is not allowed in the account

Issues: Fixed #xxx / Gap #xxx

GAP #6251
Fixed BZ#1891117

Testing Instructions:

/retest all

/retest all

/retest all

/retest all

/retest all


[hotfix][mysql] Remove mysql-connector-java dependency from flink-sql-connector-mysql-cdc

This fixes #884
User should add this dependency by themselves.

We can't simply remove the mysql driver dependency, because the e2e test need the driver to pull mysql data.

We can't simply remove the mysql driver dependency, because the e2e test need the driver to pull mysql data.

Thanks for the information, I'll close this PR


feat: using rolldown vite

Test Status

Playground Name
Dev
Build
Resons

ssr-vue
✅
❌

tailwind
✅
-
-

vue
✅
✅
-

vue-asset-base
✅
✅
-

vue-jsx
✅
✅
-

vue-legacy
❌
❌
pending support system format

vue-lib
❌
❌
pending support umd format

vue-server-origin
✅
✅
-

vue-sourcemap
✅
✅
-

@hi-ogawa the ssr-vue test sometimes has unexpected IPC resolve at vitest, I'm not idea to resolve it, could you help me take a look :)

This looks like a revival of https://github.com/vitejs/vite/issues/17760. Since Vitest still uses Vite 5 and I can see<EMAIL_ADDRESS>in lockfile, so the issue came back. Either we manually set fs.cachedChecks: false like this:
// in vitest.config.e2e.ts
export default defineConfig({
  ...
  server: {
    fs: {
      cachedChecks: false,
    }
  },
})

or we should bump dep<EMAIL_ADDRESS>pnpm dedupe didn't work for me, but reinstalling by pnpm remove vitest && pnpm add -D -w vitest got a clean dep<EMAIL_ADDRESS>

Ok. Thank you a lot!


Update C-PartnerSystemhausGmbH.DocuToolbox: Changed Installer

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[x] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Unfortunately, I'm not able to find the PR that blocks this nor #184112

Close with reason: Merge Conflicts;


[BitSail][Feature] Support sample in PrintSink.

Is your feature request related to a problem? Please describe
Current PrintSink will output all received data, which may generate too much data in disk.
Describe the solution you'd like
We can support sample in PrintSink.

I'd like to try this, could u please assign it me? @BlockLiu

Sure, please take your time!

@BlockLiu seek guidance, I can't find the code to output the data in connector-print package
according to my understanding, connector-print would output the data as logs, but I can't find out any code to output data except PrintWriterCommitter, and since PrintSink haven't override createCommitter function, PrintWriterCommitter would never be called.

Sorry to reply so late. Have you solved the problem?

Look forward your PR :D

Look forward your PR :D

PR #309 resolved 2 issues, Include this one,
but I don'n known why PR #309 is not linked to this page
@BlockLiu

Look forward your PR :D

PR #309 resolved 2 issues, Include this one, but I don'n known why PR #309 is not linked to this page
@BlockLiu

According to github document (https://docs.github.com/zh/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue), I think you should use some keywords like "closes".

Look forward your PR :D

PR #309 resolved 2 issues, Include this one, but I don'n known why PR #309 is not linked to this page
@BlockLiu

If you want to link the issue in your PR, try to write the fixed issue number in the description of PR as follows:
- Fixes #253


Value too large for defined data type when cargo build on armv7 with qemu

Problem
Trying to build an app for armv7 in a docker container with qemu.
The current result is explained here with the steps to reproduce it : https://github.com/jdrouet/docker-bug-value-too-long
Steps

install docker
install docker-buildx
follow the steps here

Possible Solution(s)
No idea.
Notes
The guys from docker claim it's coming from cargo.
Output of cargo version:
The one from the docker image rust:1-slim-buster

Thanks for the report. I think this is a duplicate of #7451. There is some sort of strange interaction of Linux Large File Support with a 64-bit host and a 32-bit docker image running qemu.  There's some more discussion on that issue, but in particular see https://bugs.launchpad.net/qemu/+bug/1805913.  I'm not sure there is anything Cargo can do about this.  I suspect the underlying problem is that libgit2 uses size-agnostic functions like readdir instead of explicitly using readdir64.  It may be possible to build libgit2 with -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 (or getconf LFS_CFLAGS), but I have no idea if that will work or what the consequences would be (it seems like it could have portability issues).  This may also just be an issue with qemu.

Hello all,
I have a similar use case i.e. (Qemu userspace emulation for armv7 on x86_64 arch). After chrooting inside the image, i tried building my project repository using that and this was the output.
[root@mnt ~]# cargo build --target=armv7-unknown-linux-gnueabihf
    Updating crates.io index
warning: spurious network error (2 tries remaining): could not read directory '/root/.cargo/registry/index/github.com-1285ae84e5963aae/.git//refs': Value too large for defined data type; class=Os (2)
warning: spurious network error (1 tries remaining): could not read directory '/root/.cargo/registry/index/github.com-1285ae84e5963aae/.git//refs': Value too large for defined data type; class=Os (2)
error: failed to fetch `https://github.com/rust-lang/crates.io-index`

Caused by:
  could not read directory '/root/.cargo/registry/index/github.com-1285ae84e5963aae/.git//refs': Value too large for defined data type; class=Os (2)
[root@mnt ~]#

However, when fetching it manually using curl https://github.com/rust-lang/crates.io-index from chroot, this worked exactly as it should have. Because of that, I also tested this on qemu aarch64 image and there it worked perfectly.
As suggested earlier by @ehuss, it seems the issue is still persistent to this date with qemu emulation of armv7. The cargo binaries are definitely not the culprit here, and more likely libgit2 seems to be causing this issue.
Internally, there is some incompatiblity going on, even after following the suggestion for building the library with parameters provided by getconf LFS_CFLAGS, the issue remains the same.
Lastly, for this quick and simple test case, I would prefer to use command cargo install exa inside an emulated armv7 image already installled with Rust, for any future testing regarding to its compatiblity.

If someone is coming here and also needs a workaround for a docker build:
Put this in the beginning of the Dockerfile:
# syntax = docker/dockerfile:experimental
Then do something like this:
RUN --security=insecure mkdir -p /root/.cargo && chmod 777 /root/.cargo && mount -t tmpfs none /root/.cargo && some_command_that_uses_cargo

If you can't make the above Dockerfile-based workaround, what works as well is using tmpfs for the whole /var/lib/docker on the build host. For GitHub actions, I've done that here: https://github.com/WeblateOrg/docker/pull/1274

Very nice @nijel!
I used your example and made a reusable Action for those affected by this issue :)

If someone is coming here and also needs a workaround for a docker build:
Put this in the beginning of the Dockerfile:
# syntax = docker/dockerfile:experimental
Then do something like this:
RUN --security=insecure mkdir -p /root/.cargo && chmod 777 /root/.cargo && mount -t tmpfs none /root/.cargo && some_command_that_uses_cargo

If you are using buildx you also need to allow insecure-entitlement when creating the node:
docker buildx create --driver docker-container --name local --buildkitd-flags '--allow-insecure-entitlement security.insecure' --use
https://github.com/docker/buildx/issues/220#issuecomment-574377254
and allow insecure things in the docker daemon:
# cat /etc/docker/daemon.json
{ "builder": {"Entitlements": {"security-insecure": true }}}

https://github.com/docker/buildx/issues/559#issuecomment-796430825

If you are using buildkit, there is a much cleaner workaround than using the --insecureoption. Just use RUN --mount like this:
RUN --mount=type=tmpfs,target=/root/.cargo some_command_that_uses_cargo

If you are using buildkit, there is a much cleaner workaround than using the --security=insecureoption. Just use RUN --mount like this:
RUN --mount=type=tmpfs,target=/root/.cargo some_command_that_uses_cargo

For me this worked, but I had to install rust within the same RUN layer:
RUN --mount=type=tmpfs,target=/root/.cargo curl https://sh.rustup.rs -sSf | bash -s -- -y && pip install cryptography==38.0.1

also in the beginning of the Dockerfile had to add:
# syntax = docker/dockerfile:experimental

FROM ...

finally, to activate Buildkit, I had to run docker build as:
DOCKER_BUILDKIT=1 docker build .

If you are using buildkit, there is a much cleaner workaround than using the --security=insecureoption. Just use RUN --mount like this:
RUN --mount=type=tmpfs,target=/root/.cargo some_command_that_uses_cargo

I had to adapt this slightly to use a different directory for cargo to get it working with the rust base image to build a rust project.
RUN --mount=type=tmpfs,target=/.cargo CARGO_HOME=/.cargo cargo build --release

Doesn't the tmpfs workaround hurt caching a lot? Cargo has to download and build everything every time if CARGO_HOME is not stored on the filesystem.

Since cargo (stable) now supports the sparse registry protocol, the easiest workaround is to set the envinronment variable CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse. This avoids the problematic call to libgit2 altogether.
You have to make sure the git binary is installed though, but that shouldn't be a problem.

@flo-at
CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse works very well, many thanks. However, basically the same error happens on rustup self uninstall and when temporary directories are attempted to be removed during the process:
info: syncing channel updates for '1.73.0-armv7-unknown-linux-gnueabihf'
info: latest update on 2023-10-05, rust version 1.73.0 (cc66ad468 2023-10-03)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
warning: could not delete temp directory: /root/.rustup/tmp/dq_vgjwah9211lz1_dir
info: installing component 'clippy'
warning: could not delete temp directory: /root/.rustup/tmp/_42_3qtwdsd2gjit_dir
info: installing component 'rust-std'
warning: could not delete temp directory: /root/.rustup/tmp/hg7ojeltqnog7xdr_dir
info: installing component 'rustc'
warning: could not delete temp directory: /root/.rustup/tmp/a10n8s4a7catp38h_dir
info: installing component 'rustfmt'
warning: could not delete temp directory: /root/.rustup/tmp/8fbaomir76h2yb8j_dir
    Updating crates.io index
 Downloading crates ...
...
# rustup self uninstall -y
info: removing rustup home
error: could not remove 'rustup_home' directory: '/root/.rustup': Value too large for defined data type (os error 75)

Are there similar options for cargo and rustup past the installation? Otherwise to me the tmpfs workaround seems cleaner, to avoid possible surprises.

For anyone having this issue, in the end I went to the path of making a Dockerfile with multi-stage builds that will cross-compile for all the architectures I need on the architecture of the pipeline agent and scrapped using qemu for the cargo build, I only use it to run apt install and other small stuff at the end.
If you project allows for this route, you can follow my Dockerfile as guidance
https://github.com/madiele/vod2pod-rss/blob/cac3d27c415ed8341fa8da738e4604b7427c04ae/Dockerfile
I went form 2+ hours build times to 5-10 minutes build times, it was worth the effort.

docker run --privileged -itd --network host --mount type=tmpfs,target=/root/.cargo arm32v7/ubuntu
this way,
/root/.cargo/bin/cargo
bash: ./cargo: Permission denied


SRPMs and mock feature request

It'd be useful (to us) to generate the Source RPM (SRPM) with rpmbuild -bs separately to the binary RPM.
This would allow us to use mock as a wrapper around rpmbuild bb to build against several different chroots. mock only supports building an RPM with an SRPM.
This allows for us to build an RPM with the matching rpmbuild version for an OS that cannot run bazel itself.

Generally, SRPMs being built from rules_pkg is an aspirational thing due to lack of interest, but I've thought about it from time to time.I'm curious -- what do you imagine the spec file would look like for a bazel-built SRPM?
My understanding is that a "proper" source rpm would contain something that would require running Bazel, with pkg_install being used for staging purposes.

I experimented with this a while ago (outside of bazel, with buck actually).
TL;DR: Same spec file, but it includes %sources and %build stanzas.
At that time I was trying to build a .so and have it linked correctly for CentOS6/8 using mock's chroots.
Broadly the SRPM contained SPECS/* and SOURCES/* which comprised everything that mock would need to build.
In a bazel-like case, pkg_rpm would generate foo.srpm with rpmbuild -bs containing  SPECS/foo.spec and SOURCES/foo0.tar.gz, SOURCES/foo1.tar.gz or similar, where the SOURCES/* are everything from the srcs attribute.
The spec file is pretty much the same except it now needs a %build stanza, which would need to be "self-contained" as such to what tooling is available in the mock chroot (probably nothing to do with bazel!)
It's a bit unpleasant TBH.
I've also tested with a docker/container based approach, with a wrapper script that delegates to a docker container rpmbuild.

I think a fundamental problem with source RPMS is that they only make sense in the context of having an RPM based system, where the dependencies are all installed, rather than declared in the WORKSPACE. Another way to think about that is that if you can build from a source RPM, your system must be laid out in a very particular way so that things just build. But then why do you need Bazel?

A hermetic RPM is very difficult. It relies on macros and definitions in /usr/lib/rpm/macros.d for example.
I haven't figured out how to get a chroot for the right distributions working yet.

Yes, hermetic source RPM would be really difficult. I think it's a
fundamental problem of trying to know to build in either the source RPM way
or the source Debbie impacted way versus bazal. I mean RPM and Debian and
believe that you should use what's installed in the environment because we
fully control the environment and basal believes don't use what you find in
the environment because you don't control it. So I mean the two are just
philosophically at odds.
On Thu, Feb 16, 2023, 3:45 PM Nick Breen @.***> wrote:

A hermetic RPM is very difficult. It relies on macros and definitions in
/usr/lib/rpm/macros.d for example.
I haven't figured out how to get a chroot for the right distributions
working yet.
—
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_pkg/issues/673#issuecomment-1433621983,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXHHHH3P2WOLUF75NOQUOLWXZ7WZANCNFSM6AAAAAAU27SZAE
.
You are receiving this because you commented.Message ID:
@.***>


Multiple hostnames (domains) which shares the same patterns conflicts

I found out that I missed a very basic case like:
https://www.example.com/product/123
https://www.example2.com/product/123

This currently results in one URL instead of two:
https://www.example.com/product/123
```.

Fixed. Will be released as v0.9.2.


Account balance not displaying correctly

"Yo we just noticed a visualization bug inside BigDipper . For some moments, this account had 62 billions tokens as reward instead of 62 thousands.
https://morpheus.desmos.network/accounts/desmos1kmw9et4e99ascgdw0mmkt63mggjuu0xuqjx30w"
The data is correct in bdjuno but being displayed in correctly in big dipper
test cases: https://pastebin.com/zHRi3BQz

I was able to recreate the visual bug once in morpheus but not locally. Will push a new image and be on the look out for this bug in the coming days


Set default FLASK_UPLOAD_FOLDER

Otherwise, I have to set the upload folder manually when starting up ambuda for the first time --

I was worried that the make command could be run from any directory and might potentially create an upload folder somewhere the user doesn't intend ... but I guess make always runs wherever the Makefile is, yeah?
Thanks for the fix!

Thinking about it more, I think this could be unpredictable if someone runs the script directly (outside make) in some other directory, since pwd would be against wherever the user happens to be. If we can find some way to guard against that, I'm happy to merge this in.


TypeError: mix.extend is not a function

Laravel Mix Version: 2.0.0
Node Version: 9.8.0
NPM Version: 5.6.0
OS: Windows 10 Pro, build 1709

Description:
I'm trying to extend Laravel Mix's functionality as per the docs says. Unfortunately, when I call mix.extend() in my webpack.mix.js file, I get a TypeError while running Webpack, saying that the mix.extend() function does not exist. Every other method of the mix object works, but not this one.
Steps To Reproduce:
// my webpack.mix.js
const mix = require('laravel-mix');

mix.extend('images', () => {
  // ...
});

Any ideas why this does not work? Not sure if it's me doing something wrong. Thanks!

The mix.extend() functionality hasn't been tagged yet.


[kedro-datasets] fsspec mixin

Description and context
I am looking into integrating the relatively new azureml-fsspec bindings to allow loading (and potentially saving) of datasets directly from an azure machine learning studio datastore. This is slightly different to blob storage or adlfs and just got their 1.0.0 release recently. Due to their implementation of fsspec, when initialising the file system, one needs to pass the uri of the dataset that is to be read. This is not necessary in any other fsspec implementation and I'm unsure if it is a feature or a but, this I am still investigating.
However, as part of this I figured that changing something in the fsspec-filesystem initialisation, which is used in the majority of file-based datasets, would result in the need to copy and paste the changed code into all of the datasets that use that functionality. This is potentially error prone and could lead to accidental mistakes further down the line.
One solution I could come up with, and this certainly is not necessarily the right one, was providing a FileSystemMixin class. This could be used to provide the fsspec-filesystem capability in all datasets that need it while allowing for modifications if necessary. I guess one could use a function that returns the file system as well but I always liked the Mixin pattern for some reason. Also this would need further work in the datasets __init__ function that I have not thought through.
Happy to contribute a PR if this is of interest.
Possible Implementation
A minimal working example that I used to try out the azureml-fsspec. The if self._protocol == "azureml": ... can be ignored but would be necessary to support azureml-fsspec in their current implementation.
class FileSystemMixin:
    def __init__(self, protocol: str, filepath: str, credentials: dict = None, fs_args: dict = None):
        _fs_args = deepcopy(fs_args) or {}
        _credentials = deepcopy(credentials) or {}

        if protocol == "file":
            _fs_args.setdefault("auto_mkdir", True)

        self._protocol = protocol
        self._storage_options = {**_credentials, **_fs_args}
        if self._protocol == "azureml":
            self._fs = fsspec.filesystem(self._protocol, **self._storage_options, uri=filepath)
        else:
            self._fs = fsspec.filesystem(self._protocol, **self._storage_options)

    def exists(self, path):
        return self._fs.exists(path)

    def glob(self, path):
        return self._fs.glob(path)

Modified pandas.CSVDataset omitting docstrings for brevity.
class CSVDataSet(AbstractVersionedDataSet[pd.DataFrame, pd.DataFrame], FileSystemMixin):

    DEFAULT_LOAD_ARGS = {}  # type: Dict[str, Any]
    DEFAULT_SAVE_ARGS = {"index": False}  # type: Dict[str, Any]

    def __init__(
        self,
        filepath: str,
        load_args: Dict[str, Any] = None,
        save_args: Dict[str, Any] = None,
        version: Version = None,
        credentials: Dict[str, Any] = None,
        fs_args: Dict[str, Any] = None,
    ) -> None:
        protocol, path = get_protocol_and_path(filepath, version)
        FileSystemMixin.__init__(
            self,
            protocol,
            filepath,
            credentials,
            fs_args
        )
        AbstractVersionedDataSet.__init__(
            self,
            filepath=PurePosixPath(path),
            version=version,
            exists_function=self.exists,
            glob_function=self.glob,
        )

        # Handle default load and save arguments
        self._load_args = deepcopy(self.DEFAULT_LOAD_ARGS)
        if load_args is not None:
            self._load_args.update(load_args)
        self._save_args = deepcopy(self.DEFAULT_SAVE_ARGS)
        if save_args is not None:
            self._save_args.update(save_args)

        if "storage_options" in self._save_args or "storage_options" in self._load_args:
            logger.warning(
                "Dropping 'storage_options' for %s, "
                "please specify them under 'fs_args' or 'credentials'.",
                self._filepath,
            )
            self._save_args.pop("storage_options", None)
            self._load_args.pop("storage_options", None)

Possible Alternatives
Not tried but I guess something like this could work too, although I guess this would need some additional definitions in the Dataset __init__ such as : self._protocol etc for use in load or save etc.
def create_fs(protocol: str, filepath: str, credentials: dict = None, fs_args: dict = None):
        fs_args = deepcopy(fs_args) or {}
        credentials = deepcopy(credentials) or {}

        if protocol == "file":
            fs_args.setdefault("auto_mkdir", True)

        if protocol == "azureml":
            fs = fsspec.filesystem(protocol, **credentials, **fs_args, uri=filepath)
        else:
            fs = fsspec.filesystem(protocol, **credentials, **fs_args)
        return fs

Thanks @astrojuanlu, I was not aware of this major refactor. I guess this is some ways off though or do you have more details on the timeline?
In case there is no point in refactoring either through multiple inheritance or composition, maybe a PR to allow (at least read) functionality for azureml fsspec would be considered?

@fdroessler https://github.com/kedro-org/kedro/milestone/12
Can you see this? I believe we open access for everyone but let me know if this is not the case.
We are aware of the datasets problem, it's not quite flexible as you can see the fsspec wasn't part of the Abstract class contract, but we almost used it everywhere.
Can you show an example why you need to refactor all datasets? In the past we have added new protocol and it's usually quite straight forward to do so, let's see if we can do something about it as this refactoring is not likely happen very soon.

@noklam Yes I can see that, thanks for pointing that out. The problem with azureml-fsspec is that they did not implement it similar to adfs or adl ... but such that you have to provide the url to the storage when instantiating the fs. Might be a bug but not sure tbh.
This leads to the following modifications on my side:
Also note that azureml-fsspec just supports reading at this point, they have an option to "upload" but that has to go through a separate method on the fs instance.
add azureml to cloud protocols:
CLOUD_PROTOCOLS = ("s3", "s3n", "s3a", "gcs", "gs", "adl", "abfs", "abfss", "gdrive", "azureml")
and then:
        if self._protocol == "azureml":
            self._fs = fsspec.filesystem(self._protocol, **self._storage_options, uri=filepath)
        else:
            self._fs = fsspec.filesystem(self._protocol, **self._storage_options)

This is what I would have to add to all the datasets in order to support access to them for azureml. This got me thinking on how to simplify modifications like this and avoid code redundancy. However, at the time of first writing I was not aware of the major refactor of datasets.
Nonetheless it would be great to have something added to support azureml-fsspec if possible. This does not have to be multiple inheritance or composition at this stage, I'm happy to add the code snippet in all the relevant datasets if necessary.
Might also be that the read-only restriction is too limited for kedro 🤷  however I am working also to add some functionality to kedro-azureml plugin to better support remote and local execution.

@fdroessler Without thinking about it more, I generally like the idea of splitting some of these functionalities into mix-ins, as you propose. There's some precedent for that (see https://github.com/kedro-org/kedro/pull/15), even though the DefaultArgumentsMixIn specifically seems to have been disappeared in 0.16.0.
Haven't consider the adapters proposal from @astrojuanlu at all; need to learn design patterns again to give good insight into mix-in vs. adapter vs. something else. 😅

I think excessive copy-pasting in datasets is still an issue (see loooong discussion in https://github.com/kedro-org/kedro/issues/1936)
And yet, I stand by what I said in other places: I think inheritance is mostly bad, and multiple inheritance is borderline evil and difficult to reason about.
For now, I'm moving this to Discussions.


Remaster lighting on bronco stadium day

Closes #335
Remastered the stadium day map's lighting to reflect the quality and feel of the stadium night map.

Amazing work! I did notice the game ran a bit slower for the night map on my ol' PC. Is there a way to adjust graphic settings when I build the game for myself?

Hmm I was worried about that.  It's something I'll have to look into, but my guess is your performance loss is mostly from the volumetric fog that I added to the night map. I'll see if i can optimize it a bit in general. Otherwise you can just manually disable it in the exponential fog actor component, but hopefully I'll be able to optimize it better


Add Odin balance to Portfolio page

Self explanatory.

So- i actually have a dev on this project who's been working on this feature- adding support for all liquid staking tokens.
and yes ODIN is probably the most important one we don't have currently on here.

hell yeah!
So- i actually have a dev on this project who's been working on this feature- adding support for all liquid staking tokens.
and yes ODIN is probably the most important one we don't have currently on here.

Ah damn I was about to put up another PR adding $NOT support lol

Thanks for this! its in main now. :100:


HTML is escaped in form.as_table descriptions

Thought this would be a quick fix but I'm kind of stuck, so I'm paging @tymees for this one. An example can be seen ProposalUpdate:

Zijn er nog andere onderzoekers bij deze studie betrokken die niet geaffilieerd zijn aan een van de onderzoeksinstituten van de Faculteit Geestwetenschappen van de UU? :

The text itself is defined in the model, where Django.utils.safestring.mark_safe() has no effect on it, either inside or outside of the translation hook. Using the safe filter in the template also has no effect, meaning this string is explicitly escaped somewhere inbetween. Any ideas?
Update: tried mark_safe_lazy() as well to no avail

These things can be very annoying to fix....
From what I recall, when using Forms the mark_safe in models when also using gettext_lazy (which we need to use there) simply doesn't work.
What does work, is using mark_safe in the form's __init__. For example: https://github.com/UiL-OTS-labs/ethics/blob/2f7e6c45238219487fe916bc756bb68555192ebe/proposals/forms.py#L545
It's ugly AF, but at least it works.

It appears the above method no longer works in combination with SoftValidationMixin. Because the escaped HTML is rather jarring and needs fixing, I've now hard-coded form labels with HTML in the Meta class (which still works) but which is arguably even more ugly. This method was already selectively applied elsewhere. I added comments in the relevant model fields for reference.