Error when catkin_make

Hi, @MingshanHe
When I catkin_make, an error came out.  I do not know if it is my ROS problem or?
"In file included from /home/walter/catkin_ws/src/Compliant-Control-and-Application/control_strategy/src/control_strategy/control_strategy.cpp:1:
/home/walter/catkin_ws/src/Compliant-Control-and-Application/control_strategy/include/control_strategy/control_strategy.h:11:10: fatal error: cartesian_state_msgs/PoseTwist.h: No such file or directory
11 | #include "cartesian_state_msgs/PoseTwist.h"
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [Compliant-Control-and-Application/control_strategy/CMakeFiles/control_strategy.dir/build.make:63: Compliant-Control-and-Application/control_strategy/CMakeFiles/control_strategy.dir/src/control_strategy/control_strategy.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:9283: Compliant-Control-and-Application/control_strategy/CMakeFiles/control_strategy.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
In file included from /home/walter/catkin_ws/src/Compliant-Control-and-Application/control_algorithms/admittance/src/Admittance/Admittance.cpp:8:
/home/walter/catkin_ws/src/Compliant-Control-and-Application/control_algorithms/admittance/include/admittance/Admittance.h:14:10: fatal error: cartesian_state_msgs/PoseTwist.h: No such file or directory
14 | #include "cartesian_state_msgs/PoseTwist.h"
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [Compliant-Control-and-Application/control_algorithms/admittance/CMakeFiles/admittance.dir/build.make:63: Compliant-Control-and-Application/control_algorithms/admittance/CMakeFiles/admittance.dir/src/Admittance/Admittance.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:11586: Compliant-Control-and-Application/control_algorithms/admittance/CMakeFiles/admittance.dir/all] Error 2
In file included from /home/walter/catkin_ws/src/Compliant-Control-and-Application/control_algorithms/admittance/src/HybridAdmittance/HybridAdmittance.cpp:1:
/home/walter/catkin_ws/src/Compliant-Control-and-Application/control_algorithms/admittance/include/hybridadmittance/HybridAdmittance.h:6:10: fatal error: cartesian_state_msgs/PoseTwist.h: No such file or directory
6 | #include "cartesian_state_msgs/PoseTwist.h"
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [Compliant-Control-and-Application/control_algorithms/admittance/CMakeFiles/hybridadmittance.dir/build.make:63: Compliant-Control-and-Application/control_algorithms/admittance/CMakeFiles/hybridadmittance.dir/src/HybridAdmittance/HybridAdmittance.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:11559: Compliant-Control-and-Application/control_algorithms/admittance/CMakeFiles/hybridadmittance.dir/all] Error 2
"
Thank you very much!

Hello, This is not a serious error. It happens in the previous issues. #6
I think that issue can answer your problem.

Thanks, I am using ROS Noetic, and follow #6 , I used "catkin build", but came another error:
"rrors     << impedance:make /home/walter/catkin_ws/logs/impedance/build.make.002.log
In file included from /home/walter/catkin_ws/src/Compliant-Control-and-Application/control_algorithms/impedance/src/Impedance.cpp:1:
/home/walter/catkin_ws/src/Compliant-Control-and-Application/control_algorithms/impedance/include/impedance/Impedance.h:30:9: error: ‘Matrix’ does not name a type
30 | typedef Matrix<double, 6, 6> Matrix6d;
|         ^~~~~~
In file included from /opt/ros/noetic/include/ros/assert.h:35,
from /opt/ros/noetic/include/ros/common.h:36,
from /opt/ros/noetic/include/ros/publisher.h:32,
from /opt/ros/noetic/include/ros/node_handle.h:32,
from /home/walter/catkin_ws/src/Compliant-Control-and-Application/control_algorithms/impedance/include/impedance/Impedance.h:4,
from /home/walter/catkin_ws/src/Compliant-Control-and-Application/control_algorithms/impedance/src/Impedance.cpp:1:
/home/walter/catkin_ws/src/Compliant-Control-and-Application/control_algorithms/impedance/src/Impedance.cpp: In member function ‘void Impedance::command(const ConstPtr&)’:
/home/walter/catkin_ws/src/Compliant-Control-and-Application/control_algorithms/impedance/src/Impedance.cpp:227:18: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 8 has type ‘unsigned int’ [-Wformat=]
"
i have no idea.

Did you clean the files which are generated by catkin make? I hope you can run catkin clean if you have not cleaned it yet.

Did you clean the files which are generated by catkin make? I hope you can run catkin clean if you have not cleaned it yet.

I used catkin clean and re-do the catkin_make. the error is still there: "
0%] Building CXX object robotiq_85_gripper/robotiq_85_simulation/roboticsgroup_gazebo_plugins/CMakeFiles/roboticsgroup_gazebo_disable_link_plugin.dir/src/disable_link_plugin.cpp.o
In file included from /home/walter/catkin_ws/src/Compliant-Control-and-Application/control_strategy/src/control_strategy/control_strategy.cpp:1:
/home/walter/catkin_ws/src/Compliant-Control-and-Application/control_strategy/include/control_strategy/control_strategy.h:11:10: fatal error: cartesian_state_msgs/PoseTwist.h: No such file or directory
11 | #include "cartesian_state_msgs/PoseTwist.h"
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [Compliant-Control-and-Application/control_strategy/CMakeFiles/control_strategy.dir/build.make:63: Compliant-Control-and-Application/control_strategy/CMakeFiles/control_strategy.dir/src/control_strategy/control_strategy.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:9283: Compliant-Control-and-Application/control_strategy/CMakeFiles/control_strategy.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  0%] Linking CXX shared library /home/walter/catkin_ws/devel/lib/libfilter.so
[  0%] Built target filter
[  0%] Linking CXX shared library /home/walter/catkin_ws/devel/lib/liblogger.so
[  0%] Built target logger
[  0%] Linking CXX shared library /home/walter/catkin_ws/devel/lib/libroboticsgroup_gazebo_disable_link_plugin.so
[  0%] Built target roboticsgroup_gazebo_disable_link_plugin
make: *** [Makefile:141: all] Error 2
Invoking "make -j4 -l4" failed
"
and according to the #6  , i have created the PoseTwist.h file. But the error is still there.
should I move the file to somewhere or?
Thanks.

Actually, I don't know what's wrong with this. But you could strictly refer to that issue, who has successfully compiled

I am using ROS Noetic, and using the noetic devel, used catkin build to compile, still errors. I am not sure how they did it..

sorry, i am using ROS NOETIC in VMWare and I tried noetic and sim-devel branch, but both failed when compiling. even with PoseTwist.h file. I tried both catkin_make and catkin build, but both failed. when catkin_make, there is no PoseTwist.h, even with the file in folder. When catkin build, it cannot recognise Matrix "‘Matrix’ does not name a type", I have upgraded eigen3 library, but error is still. I am not sure why. I do not want to reinstall Linux.  Sigh.

Actually, the error is not related to VMWare.
When I tried to develop this project in the kinetic, melodic, and noetic versions, I used VMWare.
I think this project needs someone who has experience with ROS and Ubuntu to cover the compiling error.
I hope you could get some help from your research members or others.

我已经在仿真环境下维护了导纳控制，请尝试运行，谢谢对本项目的关注
I have update this repo, please test in your environment if it is possible


Files not getting filtered by the include RegEx

Describe the bug
I used the Regex but it didn't filter the feature files
To Reproduce
Steps to reproduce the behavior:
Create a folder called FINAL inside /features
add few feature files with prefix a par_

Execute the command

Expected behavior
These files should have been executed. only 1 file would get skipped. but remaining two files matching the Regex should work
Screenshots
|--------------------| ------------------------------------------------------------|

ENV. VARIABLE
VALUE

HOME
/Users/qarampage

CONFIG
/Users/qarampage/venv/lib/python3.11/site-packages/behavex/conf_behavex.cfg

OUTPUT
/Users/qarampage/output

TAGS
None

PARALLEL_SCHEME
scenario

PARALLEL_PROCESSES
2

TEMP
/Users/qarampage/output/temp

LOGS
/Users/qarampage/output/outputs/logs

LOGGING_LEVEL
INFO

--------------------
------------------------------------------------------------

Running parallel scenarios

Total execution time:   0.2s
Exit code: 0
Also, I have tried this command , even these don't  work.
$ behavex -ip features-i ^par_L[\w-]+.feature$  --parallel-processes 2  --parallel-scheme scenario
$ behavex -ip features -i par_L[\w-]+.feature  --parallel-processes 2  --parallel-scheme scenario
Below command generated 0 Scenarios to execute
$ behavex -ip ./features -i ^par_L[\w-]+.feature$  --parallel-processes 2  --parallel-scheme scenario
Desktop (please complete the following information):

OS: Mac
Browser chrome
Version: 114

Smartphone (please complete the following information):
Not applicable

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
N/A

Hi @qarampage , it seems that you need to escape the square brackets. Otherwise, they will be considered as part of the feature filename:
behavex -ip features-i par_L[\w-]+.feature --parallel-processes 2 --parallel-scheme scenario


Sending correct otp throws 2fa_required error from backend for simple_auth

enabled 2fa for my account from admin console
try to login, receives 2fa_required error with devices
select a device to requestOtp via POST /api/v1/auth/otp/, a otp code shows in backend app's console
input the otp code and use POST /api/v1/auth/token/ endpoint

Payload:
{
  "otp": "663299",
  "password": "1234",
  "email"<EMAIL_ADDRESS>}

Expected:
get token
Actual:
again BE throws 2fa_required error with 401 status code

Closing this account was old. With newly created account it worked


Send history_instance in the pre_create_historical_record signal

This allows for better customization of historical records without
incurring extra database queries resulting from modifying the instance
after save in post_create_historical_record.
Description
This change modifies create_historical_record slightly by creating the historical instance in-memory before the pre-create hook so that it can pass the instance along before saving.
Related Issue
Closes #421
Motivation and Context
The issue above specifically notes the desire to store IP address information for auditing purposes. This implementation allows for greater extensibility by allowing the user to define extra fields that they can populate with whatever data they need.
How Has This Been Tested?
Unit tests
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Just want to tag #422 here since this will make that easily implemented. @mscansian we haven't forgotten about you

Also @kseever can you add this to the CHANGES.rst file?


[#2307] license: Add left jars with Apache license

What changes were proposed in this pull request?
Add left jars with Apache license
Why are the changes needed?
Fix #2307
Does this PR introduce any user-facing change?
No.
How was this patch tested?
No need.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 52.01%. Comparing base (44bfd0d) to head (9807049).
Report is 8 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #2310      +/-   ##
============================================
- Coverage     52.27%   52.01%   -0.26%
+ Complexity     3569     2937     -632
============================================
  Files           543      465      -78
  Lines         29797    22167    -7630
  Branches       2779     2041     -738
============================================
- Hits          15575    11530    -4045
+ Misses        13227     9920    -3307
+ Partials        995      717     -278

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

I don't think org.javassist:javassist is Apache licensed.
https://mvnrepository.com/artifact/javassist/javassist says it is LGPL and MPL licensed. LGPL is a problem but MPL is Category B and is ok. So we can use the jar.

I don't think org.javassist:javassist is Apache licensed.
https://mvnrepository.com/artifact/javassist/javassist says it is LGPL and MPL licensed. LGPL is a problem but MPL is Category B and is ok. So we can use the jar.

It actually looks like org.javassist:javassist is licensed under 3 licenses (the 2 above and Apache license too which is better).
https://repo1.maven.org/maven2/org/javassist/javassist/3.30.2-GA/javassist-3.30.2-GA.pom
Could we update the LICENSE-binary to name the 3 licenses instead of grouping it under Apache license alone?

I don't think org.javassist:javassist is Apache licensed.
https://mvnrepository.com/artifact/javassist/javassist says it is LGPL and MPL licensed. LGPL is a problem but MPL is Category B and is ok. So we can use the jar.

It actually looks like org.javassist:javassist is licensed under 3 licenses (the 2 above and Apache license too which is better).
https://repo1.maven.org/maven2/org/javassist/javassist/3.30.2-GA/javassist-3.30.2-GA.pom
Could we update the LICENSE-binary to name the 3 licenses instead of grouping it under Apache license alone?

OK.

LGPL

Added.

@pjfanning Do you have other suggestion?

@pjfanning Do you have any other suggestion?

@pjfanning Do you have any other suggestion?

seems ok to me


[examples] rlgl_compute_shader SSBO buffers not cleared

Issue description

Run the others/rlgl_compute_shader example.
Draw some lines so the screen is not empty (i.e. there are remaining white pixels on screen).
Exit.
Run again.

Often (personally >50% of the time), some or all of the white pixels on screen before are still present.
Environment
Compiled with GRAPHICS=GRAPHICS_API_OPENGL_43 and using USE_WAYLAND_DISPLAY=TRUE on Arch Linux 5.15.2-arch1-1. Relevant GL log from running the example below:
INFO: Initializing raylib 4.0
INFO: DISPLAY: Device initialized successfully
INFO:     > Display size: 1920 x 1080
INFO:     > Screen size:  768 x 768
INFO:     > Render size:  768 x 768
INFO:     > Viewport offsets: 0, 0
INFO: GLAD: OpenGL extensions loaded successfully
INFO: GL: Supported extensions count: 229
INFO: GL: OpenGL device information:
INFO:     > Vendor:   AMD
INFO:     > Renderer: AMD Radeon RX Vega (VEGA10, DRM 3.42.0, 5.15.2-arch1-1, LLVM 13.0.0)
INFO:     > Version:  4.6 (Core Profile) Mesa 21.2.5
INFO:     > GLSL:     4.60
INFO: GL: DXT compressed textures supported
INFO: GL: ETC2/EAC compressed textures supported
INFO: GL: Compute shaders supported
INFO: GL: Shader storage buffer objects supported

Cause & Solution
My guess is that the calls to rlLoadShaderBuffer return a buffer but do not clear it. Adding the line below (alongside an #include "glad.h") fixes the issue:
glClearNamedBufferData(ssboA, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, 0);

The parameters are taken from here, and effectively clear the buffer, but there may be more correct ones instead.
Edit: I'm also not sure whether it would be correct to clear both buffers or not (only ssboA seems to work). Feel free to suggest the correct one and I can make a PR.

Correction: it appears you do need to clear both the ssboA and ssboB buffers.

@fluix-dev It seems it could be a GPU driver-dependant issue, when a buffer is unloaded with rlUnloadShaderBuffer() it should probably be cleared... but I couldn't find that info on the OpenGL specs. The GPU driver takes that decision.
In any case, I'm reviewing rlLoadShaderBuffer() to clear the SSBO on creation. Just note that glClearNamedBufferData() can not be used, it was added on OpenGL 4.5 but raylib only supports up to OpenGL 4.3; glClearBufferData() must be used instead.

Understood. Thanks for the quick fix!


Remove vagrant triggers

In an effort to move away from provider specific features, we're removing vagrant triggers support. If this feature is needed or being used by anybody, we can implement it in a better way using playbooks.

Nice
👍


grt: first step to td-gr

This PR updates grt to have the capability to set layer ranges for timing-critical nets. At this stage, grt considers a net as "timing-critical" based on its negative slack values. A set of configuration options are added to the Tcl interface, and they are described in grt README.

@eder-matheus this seems to have gotten lost.  Is this still relevant?

@eder-matheus this seems to have gotten lost. Is this still relevant?

I will redo what I've tried here in another branch, following your comments. But I think this PR can be closed.


Smart rounding

@DavidWalz  cc @jkleinekorte and @bertiqwerty
I thought about rounding functionalities in bofire for example in the context of using continuous relaxations for NChooseK as described in https://github.com/experimental-design/bofire/issues/145 which could lead to subtle numeric violations of the original constraint. Ideally we would have a rounding function which takes as input the domain with all features and constraints in addition to the generated candidate and then rounds it to the closest feasible solution.
Another relevant example would be if would introduce something like precision or step size for the ContinuousInput, especially if it used in combination with some kind of linear constraint and a direct rounding to the next allowed level would lead to constraint violations.
Could one not describe this rounding problem as a mixed integer optimization problem where we want to minimize the (squared) distance between a rounded feasible solution and the actual proposed candidate under the provided constraints and discretization levels?
What do you think?

Yes, restoring feasibility for {NChooseK + linear constraints} with L2 distance to the orginal point as objective is an MIQP.
We can pull in an additional dependecy to do this. python-mip and cvxpy (with CBC as solver) are lightweight, but only support LPs, so the L2^2 function would need to be linearized. pyomo also allows for formulating QPs and apparently CBC can solve them, but pyomo might be a bit heavy.  Alternatively an L1 distance could be used which only involves max.
Restoring feasibility for nonlinear constraints wouldn't work.
Is that what you have in mind?
There are some space filling designs that can be formulated as MIPs and certain surrogates could be optimized globally (like is done in ENTMOOT), so in general I like the idea of extending bofire in that direction.

ping @R-M-Lee

Yes, I have a MIQP in mind and more specifically a function which gets as input a domain, and a candidate and returns the rounded solution ;) I am not an expert in this kind of optimization, but could we not use cvxpy in combination with pyscipopt, as described here?
We should then also add a preciscion attribute to the ContinuousInputFeauture.

Nice. A drawback is that pyscipopt does not provide wheels so it's again conda (at least for windows) or getting scip compiled in our containerized backends. Given that it's the same for ipopt that's ok. It just means that the smart rounding would be optional and can't be relied on to be present.

This would be fine for me ...

https://github.com/experimental-design/bofire/issues/166


Error on render if only 1 marker to display

Hello,
First off thanks for making this. I have been having some trouble with an error that seems to only present itself when there are no markers is only one marker to display. My app requests data from a backend based on a bounding box, so in the case when the bounding box returns no 1 marker, I receive this error:

invariant.js?4599:42 Uncaught Error: r.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.

Although it seems I have my code return null if there is no data. Here is my setup:
                <Map className="markercluster-map"
                     center={this.state.center}
                     zoom={this.state.zoom}
                     zoomControl={false}
                     onMoveEnd={this.onMoveEnd}
                     ref="map"
                >
                    <ZoomControl position="bottomright"/>

                    <MarkerClusterGroup
                            ref="MarkerClusterGroup"
                        >
                            {this.props.data.features.length ? this.props.data.features.map((item) => {
                                return (
                                    <Marker
                                        onClick={e => this.markerClick(e)}
                                        key={item.properties.id}
                                        title={item.properties.title}
                                        id={item.properties.id}
                                        position={[item.geometry.coordinates[1], item.geometry.coordinates[0]]}
                                      >
                                        <Tooltip label={item.properties.title} direction="top">
                                            {item.properties.title}
                                        </Tooltip>
                                    </Marker>
                                )
                            })
                                :
                                null
                            }
                        </MarkerClusterGroup>
</Map>

Any help or suggestions is greatly appreciated, thanks!

@ishiland are you sure that this.props.data.features is not corrupted and there are all keys like properties  or geometry.coordinates are available?

I am fairly certain the data is not corrupted and all the keys are available. When I remove MarkerClusterGroup the error does not happen. For example, this code works without issue:

                <Map className="markercluster-map"
                     center={this.state.center}
                     zoom={this.state.zoom}
                     zoomControl={false}
                     onMoveEnd={this.onMoveEnd}
                     ref="map"
                >
                    <ZoomControl position="bottomright"/>

                            {this.props.data.features.length ? this.props.data.features.map((item) => {
                                return (
                                    <Marker
                                        onClick={e => this.markerClick(e)}
                                        key={item.properties.id}
                                        title={item.properties.title}
                                        id={item.properties.id}
                                        position={[item.geometry.coordinates[1], item.geometry.coordinates[0]]}
                                      >
                                        <Tooltip label={item.properties.title} direction="top">
                                            {item.properties.title}
                                        </Tooltip>
                                    </Marker>
                                )
                            })
                                :
                                null
                            }
         </Map>

I should clarify that this error seems to appear when there is ONLY one item in this.props.data.features, and NOT when it is empty or has > 1 item.

Do you use the latest version of react-leaflet-markercluster => v1.1.8?

My solution for now is to render MarkerClusterGroup conditionally if this.props.data.features.length > 1. Otherwise I return a single Marker

The problem seems to be inside react-leaflet/MapLayer, as MarkerClusterGroup inherits it's render method, which is implemented as following:
  MapLayer.prototype.render = function render() {
    var children = this.props.children;

    if (Children.count(children) > 1) {
      return React.createElement(
        'div',
        { style: { display: 'none' } },
        children
      );
    }
    return children == null ? null : children;
  };

So obviously, when array with single element is passed as children, it all fails.

Adding {null} right next after markers array helped.

the v2.0.0 has been released...
Is this error present in the "stable" version?


Unable to delete job in validator

ENVIROMENT: validator UI
URL: https://peviitor.ro/
Company_careers_url: Astormueller
Desktop:
OS: Windows 11
Browser: Chrome
Version: 130.0.6723.70

STEPS TO REPRODUCE:

click on job card "Controller (f/m/d)"
click on "Sterge" icon

EXPECTED RESULTS:

job is deleted from the list and is not visibile on the page

ACTUAL RESULTS:

page returns an error
job is not deleted and the behavior remains unchanged compared to the original report  (Issue #576).

Screenshots

Fixed


Pkg/controller UpdateController may skip update

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
Despite the comments on UpdateController, this function is works in such a way that it never blocks on the update channel, meaning that if the specified controllers channel is busy it will skip the update/invocation of the controller DoFunc.
Although controller probably isn't intended to have queuing behaviour, the fact that updating parameters and triggering are handled by the same channel means that in some circumstances a controller will ignore parameter changes in UpdateController.
This is also complicated more by the comments on UpdateController:
https://github.com/cilium/cilium/blob/80d99a60f9e4021842001ea2711807982d9dca20/pkg/controller/manager.go#L49-L50
This can be illustrated by adding the following test case to pkg/controller/controller_test.go:
func TestController(t *testing.T) {
	mngr := NewManager()
	g := NewGroup("foo")
	g2 := NewGroup("bar")
	noop := func(ctx context.Context) error { return nil }
	p1 := ControllerParams{
		Group:  g,
		DoFunc: noop,
	}
	p2 := ControllerParams{
		Group:  g2,
		DoFunc: noop,
	}
	for i := 0; i < 10; i++ {
		if i > 5 {
			mngr.UpdateController("test1", p2)
		} else {
			mngr.updateController("test1", p1)
		}
	}
	// Last five updates should change group to "bar".
	assert.Equal(t, "bar", mngr.controllers["test1"].group.Name) // This will almost certainly fail!!!
}

The likely-hood of a update being skipped increases as the time spent in DoFunc for a controller increases.  So controllers handling things such as apiserver client requests etc may be especially prone to this.
At the moment I'm not aware of any specific bugs resulting from this behaviour.
Fixing this issue would be quite simple by simply removing the select default case.
This would be risky however, as there would be a broad change of behavior where UpdateController would now become blocking for up to as long as any DoFunc can run, this could also create potential deadlocks stemming from calls to UpdateController holding mutexes that are also used in the ControllerParams DoFunc function.
Cilium Version
main branch, all current releases.
Kernel Version
n/a
Kubernetes Version
n/a
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Honestly, I really dislike the expectation that UpdateController() is also used to trigger updates. I would personally rather see the parameters be immutable after creation, and only TriggerController() be allowed. Maybe changing timing parameters would be OK.
Anyways, this is totally a problem; kicking this over to our friendly local Foundations team.

Honestly, I really dislike the expectation that UpdateController() is also used to trigger updates. I would personally rather see the parameters be immutable after creation, and only TriggerController() be allowed.

The update basically functions as a update + trigger anyway so we really should just separate those concerns.  What's worrying is the expectation that people had when they where writing the UpdateController could be either a) there's no guarantee this will run (despite the comments 😄 ) or b) this will block on the first run (my initial assumption).
Might be hard to change to making controllers immutable since that would require rethinking a lot of uses (i.e. update returns an error if it already exists, and would require a draining before allowing update?).
In the future the intention is probably to use hive.Job where we can (although I'm not sure it's meant as a exact replacement for pkg/controller),  but with how much we rely on pkg/controller we should probably find some reasonable way to fix this.

It seems that https://github.com/cilium/cilium/pull/25579 introduced part of the regression mentioned here. Previously, we retrieved the parameters after the update was detected, hence ensuring that we always pulled in the latest version (although there could still be race conditions if either the trigger or interval channels unblocked at the same time). Now, instead, we will miss newer updates given that the parameters are propagated through the update channel, which may be full after the first update. One fix could be to always retrieve the parameters before a new iteration of the controller loop.
/cc @jrajahalme

I think there are different issues to be addressed.
The test above will always fail, since it is checking the group.Name field in the embedded controller, not the params.Group.Name into the managedController.
So, the first issue is the duplication of the Group in both controller and managedController. The first one is copied in createControllerLocked and never updated when UpdateController is called. This leads to the usage of the old Group in recordSuccess and recordError after UpdateController has been called and potentially changed it.
The second issue is that the update channel is buffered and it is signaled in updateController with a select and a default case. This means that if an update is still "in flight", the next ones won't be seen at all by the controller.
To prove this, we can use a modified version of the above test:
func TestController(t *testing.T) {
	mngr := NewManager()

	var foo, bar int

	p1 := ControllerParams{
		Group:  NewGroup("foo"),
		DoFunc: func(ctx context.Context) error { foo++; return nil },
	}
	for i := 0; i < 5; i++ {
		mngr.UpdateController("test1", p1)
	}

	p2 := ControllerParams{
		Group:  NewGroup("bar"),
		DoFunc: func(ctx context.Context) error { bar++; return nil },
	}
	for i := 0; i < 5; i++ {
		mngr.UpdateController("test1", p2)
	}

	// since the signal from "stop" is prioritized over the one from "update",
	// give the controller some additional time to complete all the expected
	// DoFunc runs.
	time.Sleep(50 * time.Millisecond)

	mngr.RemoveAllAndWait()

	assert.Equal(t, 5, foo)
	assert.Equal(t, 5, bar)
}

This will almost certainly fail if, as @tommyp1ckles suggested, we don't make the update channel unbuffered and we remove the default case in the select.
But this is actually a change to the UpdateController semantic if we consider the implementation before https://github.com/cilium/cilium/pull/25579: in that case, we considered only the latest update, while making the channel unbuffered forces the consumer to always wait for the current operation to complete.
If we want to keep the ability to "overwrite" the updates that have not been consumed by the controller yet, we should revert to the logic previous to https://github.com/cilium/cilium/pull/25579, as @giorio94 suggested.

@pippolo84 assigned it to you for now as you had the most context.


Optimizing a big edit view. Where is the code that fills a form on load?

Hello.
I am using flask admin with mongoengine.
I have a huge edit_view with many AjaxMultipleSelectField instances, referencing many objects.
By the amount of queries to db with only _id and _cls specified, its clear flask admin queries all referenced objects one-by-one on page load.
A db query for each of 300+ objects referenced on page, and its too slow.
I would like to optimize the queries that happen on page load. But I have trouble finding the code that makes all these db queries.
I have already switched all ajax lookup fields to a custom optimized field with a custom loader. Ajax lookup got sped up considerably, but edit_view still loads very slowly.
Could you pinpoint which code exactly fills the page with data upon load?

from flask_admin.contrib.mongoengine import ModelView
from flask_admin.model.fields import AjaxMultipleSelectField
from flask_admin.contrib.mongoengine.form import CustomModelConverter
from flask_admin.contrib.mongoengine.view import ModelView as CustomModelView

class OptimizedModelConverter(CustomModelConverter):
    def __init__(self, view, additional=None):
        super(OptimizedModelConverter, self).__init__(view, additional)

    def convert_ajax_multiple_select(self, field, model, converter, **kwargs):
        return AjaxMultipleSelectField(field.label, model=field.model, multiple=True, create_field=field.create_field, **kwargs)

class OptimizedModelView(CustomModelView):
    column_type_formatters = CustomModelView.column_type_formatters

    def __init__(self, *args, **kwargs):
        super(OptimizedModelView, self).__init__(*args, **kwargs)

    def get_query(self):
        return self.model.objects.only('id', '_cls')  # Adjust fields as per your model structure

    def get_count_query(self):
        return self.get_query()

    def get_list(self, *args, **kwargs):
        return super(OptimizedModelView, self).get_list(*args, **kwargs)

    def get_one(self, *args, **kwargs):
        return super(OptimizedModelView, self).get_one(*args, **kwargs)

# Usage
admin.add_view(OptimizedModelView(YourModel))

I am closing this issue as we're removing support for flask-mongoengine in the next release, because that library is no longer being maintained and is incompatible with recent versions of our core dependencies (eg flask, wtforms, etc).


a border does not resize when view resizes

NOTE: Other folks have already opened issues similar to this, please mark as duplicated if this one has same root.
I have used  UIView-Borders extension with UILabel. When the label does not have text it resizes to {0,0} size, but border has frames assigned to it at the point of creation.

WORKAROUND:
self.theLabel.clipsToBounds = YES;

added possible workaround

updated workaround

See https://github.com/aaronn/UIView-Borders/pull/11


fix(menu): allow text wrapping in menu items

Allows for the text inside menu items to wrap, instead of having it be truncated. The text was being truncated as a limitation on mat-select and mat-autocomplete, however we don't have the same limitation on mat-menu.
Note: this is a resubmit of #11430.

@crisbeto this is failing presubmit because .mat-menu-panel has height  declared multiple times in one definition (Google's CSS minifier errors on this)

@jelbourn working around that one would be slightly error prone since we use that mixin in a few places. I remember doing a PostCSS plugin for AngularJS Material where stripped these duplicate properties. Would it be worth porting it to the Material build?

That wouldn't work with the Google setup for Angular (vs. AngularJS). With Angular, all the Sass sources are compiled with Google's infrastructure (bazel) vs. AngularJS where we just copied in the CSS output.

I've reworked it to avoid the issue @jelbourn.

Closing since this is supported in the MDC version of the menu.


Make BQ import more reliable

BQ imports should load as WRITE_TRUNCATE into a date partition, to prevent duplicates in case a cron runs twice in the same day.
This cannot be easily done today with the single latest.json file, as entries can span multiple days (since the run can overlap between days).
For consistency of results within a partition, the "Date" should be consistent for all repo results for jobs started on the same day.

@azeemshaikh38 might something to consider in the design for the split workers / GCS output.

The date consistency problem should be easy to handle since the master (which publishes to PubSub topic) can provide the date to be used for all results.
However, the duplicate entries due to the BQ data transfer running twice might be tricky. BQ should delete source files after transfer, however it does not provide strong guarantees here. If the deletion does not happen and BQ runs again before the data is deleted, there is risk of duplication.

I think we can handle duplicate entries well if we load results by day with WRITE_TRUNCATE into a bigquery partition per https://cloud.google.com/bigquery/docs/creating-column-partitions.
If all input files have the same date, we can load and replace existing data into table$YYYYMMDD. The input files on GCS would just need to be structured in such a way to support this.

I'm skeptical of WRITE_TRUNCATE. (1) it is wasteful (2) only some GCS files maybe deleted and looks like WRITE_TRUNCATE overwrites the entire partition (3) if it only overwrites selected rows, that would be best-effort de-duping which only mitigates the problem but doesn't solve it.
One way would be - if BQ sends out notifications on delete failure, we can have a garbage collection job running which will process these notifications and retry deletes.

I think any additional cloud cost that incurs will be minimal, especially if it's avoiding maintenance costs. We can also just rely on GCS lifecycle policies (rather than a job we have to maintain).
One potential way to do this might look something like:
gs://bucket/YYYYMMDD/unique_run_id_0/*.json
gs://bucket/YYYYMMDD/unique_run_id_1/*.json
...

and the load job can load WRITE_TRUNCATE into YYYYMMDD partitions from a single run. This way every load is idempotent for the same unique_run_id, which further helps if a load job fails or needs to be retried, in addition to being resilient to handling multiple runs for the same day.

Discussed this with @azeemshaikh38. Another possible (and much simpler) approach here is to not care about historical date data at all, since that does not seem to be used anyway
I.e. each repo only ever has a single results.json file. The BQ transfer job will just WRITE_TRUNCATE every time using whatever is available at the time of writing. We would need to make sure that any races here (new/changed results.json while load job is happening) don't have any negative impacts though.

So researched more, turns out BQ allows for runtime parameterized URIs - https://cloud.google.com/bigquery-transfer/docs/gcs-transfer-parameters. We can simply use an URI similar to {run_time-48h|"%Y-%m-%d"}/*.json :)
This should be enough to get started for now and this avoids any race conditions or duplicates. Only drawback is a few days old stale data in BQ, which I think is a far more acceptable cost to pay (for now). What do you think?

Thinking about this more, if we want to handle multiple runs per day without race conditions, we could:

Make numShards deterministic. This will be set in the master.
Master writes to gs://bucket/YYYYMMDD/unique_run_id_0/.shard_num file which contains numShards value.
BQ runs on gs://latest_bucket/*.json with WRITE_TRUNCATE. Reports pass/fail result to a PubSub topic.
A separate worker gets notified from BQ PubSub and deletes all data in gs://latest_bucket/. The latest unique_run_id folder in which .shard_num value matches number of *.json files, will be copied to gs://latest_bucket/.

What do you think? I'd personally prefer starting off with https://github.com/ossf/scorecard/issues/366#issuecomment-828176855 to get the ball rolling, and we can then get the infra in place for doing this.

Sure, starting simple sounds good to me!, We can always refine this later.
For fresher data, we can also just always load the data for the last X days into their respective partitions, and in our scorecards_latest BQ view return the latest data per repo rather than everything from a given date (as it does now).


Registration config options.

This should be what's discussed in #159 .
I also added default empty strings to all OAuth environment variables, reported by @bash-stack in that same issue.
I do wonder what we should do with the existing configuration option: I now just delete it completely and insert new values, but we could also automatically set the values of the new data based on the old value with a 'fancy' query. Then the question is what about the down method if the two new values don't 'agree'?

(checking the failed tests)

Ah I misunderstood the env(default:X:Y) option and I think it's not possible to not have to specify the variables, unless someone thinks otherwise?

I removed the second commit but it seems Buddy doesn't pick that up?

Fancy query will always cause more confusion, migration is a good idea. It seems ok to me, if @karniv00l approve, then we can merge this.

The rest works fine, I tested locally and everything is ok. Thanks @nickygerritsen :+1:

Something like this? Not sure if there is any policy on the multiline SQL statements

Thanks @nickygerritsen


Routing override

Hi, we have a structure built on top of koa and an old version of koa-router which basically, at startup time, loads a series of module each of which defines a routing file.
If you load module B after module A, and both request to register for a GET /test routing, what will happen in the current implementation is that module B's middleware overwrite module A's.
This happens for two reasons:

We do not inject the next parameter, so no middleware could do yield next.
When B routing gets registered we basically do app.verb(path, newmiddleware).

The first has been fixed. For the second I have some doubt.
Let's take a look at this example
var app = require('koa')(),
    router = require('koa-router')();
var Amiddleware = function*(){
	console.log('I am A middleware');
	this.body=42;
};

router.get('/test',one);
app.use(router.routes())
   .use(router.allowedMethods());
var server = require('http').Server(app.callback());
server.listen(8080);

What I want to do is something like, before registering router to koa with app.use(router.routes());
var Bmiddleware = function*(next){
	console.log('I sit on top');
	yield next;
};
//something like give me the koa-composed middleware for the verb V and path P
var oldMiddleware = router.getMiddleware('get', '/test');
router.get('/test', Bmiddleware, oldMiddleware);

What i expect as output, when i do GET /test is to have 42 as response and have the server print
I sit on top
I am A middleware

Is this possible? Am I missing any method?

You shouldn't be registering the same route more than once. Why are you doing this? Ideally, koa-router would throw an error in that case.
If you want to replace a route you've already registered you'll need to loop through router.stack.routes to find the route you want and remove it from that array.

Since who designed the micro framework we are using thought this was a good idea.
I was just wondering if there's at least a way to improve that behavior, but that's a no :)
Thanks


Updating the schema to adhere to the new design changes

Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[ ] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[ ] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-python

Automation for azure-sdk-for-js

Automation for azure-sdk-for-go

Automation for azure-sdk-for-java

Can one of the admins verify this patch?

Yes, I am prepared to update the SDKs next.
Get Outlook for iOShttps://aka.ms/o0ukef

From: Kamil Pajdzik<EMAIL_ADDRESS>Sent: Thursday, April 25, 2019 7:15:13 PM
To: Azure/azure-rest-api-specs
Cc: Page Bowers; Author
Subject: Re: [Azure/azure-rest-api-specs] Updating the schema to adhere to the new design changes (#5769)
@kpajdzik approved this pull request.
This change is going to be breaking for most SDKs. Are you fine with it?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fazure-rest-api-specs%2Fpull%2F5769%23pullrequestreview-230956408&data=01|01|Page.Bowers%40microsoft.com|4674750a3df144cb9aba08d6c9ed048d|72f988bf86f141af91ab2d7cd011db47|1&sdata=%2BDzxTSlIc607jWu9p6L4PzffmZXXyFqm8QuUrF2iXZE%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAJXDCH6NISWXLWPUNUD5LLLPSJQTDANCNFSM4HIRVVMA&data=01|01|Page.Bowers%40microsoft.com|4674750a3df144cb9aba08d6c9ed048d|72f988bf86f141af91ab2d7cd011db47|1&sdata=MNXJjVJDBgqO46%2FeIAvz6xvmmUlNLupg8FLRjPPTPLg%3D&reserved=0.


Option to allow mutation of this inside class constructors

I'm using immutable classes as clean, transportable and easy-to-debug-and-maintain wrappers around Immutable.js state objects in order to clearly define the shape of the underlying data. Such a class is constructed by passing it an instance of the state object in question. Operations which makes changes to state instead return a new instance of the class, constructed with the new state object created as a result of the operation.
Obviously this means I use:
{
  "immutable/no-let": 2,
  "immutable/no-this": 0,
  "immutable/no-mutation": 2
}

In the constructor, initialising the one-and-only class field this.state violates the "no-mutation" rule.
Because a constructor is an initialiser of sorts, in the same way that const a = b is initialising the value of a, if I allow use of this, then no-mutation should not apply in a class constructor.
I understand that this cannot be safely used for constructors defined via an ES3/5 function, given that such functions cannot be guaranteed to be used as a constructor, but for ES6 classes, the constructor is guaranteed to only be used during construction, and it can thus be inferred that we're initialising a new value (the class instance) and not mutating an existing value.
The workaround is adding an inline // eslint-disable-line immutable/no-mutation to every constructor, but it would be cleaner if this could be done via a single configuration option.
Example
Here is an example of how I am using classes functionally, rather than for OO:
import Immutable from 'immutable';

class TimeInterval
{
  constructor(state) {
    this._state = state; // eslint-disable-line immutable/no-mutation
  }

  static create(t, tSession) {
    return new TimeInterval(Immutable.Map({
      t,
      tOffset: t - tSession,
      changeSets: ChangeSetsMap.create().state
    }));
  }

  get state() {
    return this._state;
  }

  get time() {
    return this._state.get('t');
  }

  get timeOffset() {
    return this._state.get('tOffset');
  }

  get changeSets() {
    return new ChangeSetsMap(this._state.get('changeSets'));
  }

  getLatestGraph(batchType = 'granular') {
    const changeSets = this.changeSets[batchType];
    if(!changeSets) {
      throw new Error('Invalid changeset batch type: ' + batchType);
    }
    return changeSets.latestGraph;
  }

  updateGraph(updater) {
    const changeSets = this.changeSets
      .update('granular', list => list.update(updater))
      .update('cascading', list => list.update(updater))
      .update('single', list => list.update(updater));
    const state = this._state.set('changeSets', changeSets.state);
    return new TimeInterval(state);
  }
}

Its really annoying when the rule triggers inside a constructor. May be it would be nice to have another rule to disable checking in constructor or even better to have rule option to exclude constructor or a pattern

class MyArray extends Array { constructor() { this.length = 'mutated'; } } - you can never guarantee anything in the constructor isn't mutating an existing value or triggering a setter upstream.


[Bug]: Fonts in the 'Explore our products' page are not in contrast - not legible.

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
Fonts in the 'Explore our products' page are not in contrast - not legible.
Expected behavior
User must be able to read the fonts
Add ScreenShots

On which device are you experiencing this bug?
Android, iPhone, Linux, Chrome, Windows
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

Can you elaborate using screenshots or videos

If you can look - because of the background image the fonts/paragraphs are overshadowed by the background image - and thats the whole point - for people to read - of a website.

we have already planned to remove those bg images..it is already ongoing.

If there are any modifications to be done - please let me know - I am good
at MERN and generative AI.
On Mon, 21 Oct 2024 at 15:47, github-actions[bot] @.***>
wrote:

Hello @omkar861856 https://github.com/omkar861856! Your issue #590
https://github.com/manikumarreddyu/AgroTech-AI/issues/590 has been
closed. Thank you for your contribution!
—
Reply to this email directly, view it on GitHub
https://github.com/manikumarreddyu/AgroTech-AI/issues/590#issuecomment-2426243895,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BGNHVWXO2DHUB22Y6DTFW73Z4TIB3AVCNFSM6AAAAABQIXF43WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRWGI2DGOBZGU
.
You are receiving this because you were mentioned.Message ID:
@.***>


Run more Travis tests on Ruby 2.5.1

There's no reason to keep executing our TK tests against ruby 2.4.
Signed-off-by: Tim Smith<EMAIL_ADDRESS>

and yeah, the TK rspec runs can also be bumped.  we should catch 2.4.0 bugs by travis+appveyor.  the intent of the TK rspec runs is to be like manhattan so we get as close to possible to testing on what we ship (the last -current's build omnibus ruby which is 2.5.x)


ARROW-2467: [Rust] Add generated flatbuffers code

Adding generated flatbuffers code for Schema, File, Message, and Tensor. It would be nice to generate on the fly as part of the build process but this doesn't seem feasible today because:

We would have to download and compile Flatbuffers first
The Rust implementation of Flatbuffers has a couple minor issues that required manually fixing the generated code

We would have to download and compile Flatbuffers first
This will be part of the next flatbuffers release, i.e. we would then be able to skip the compilation step and use a released binary, e.g. via conda?

The Rust implementation of Flatbuffers has a couple minor issues that required manually fixing the generated code

Are there any bugs to report upstream?

@wesm I just filed these issues:
https://github.com/google/flatbuffers/issues/5052
https://github.com/google/flatbuffers/issues/5053
https://github.com/google/flatbuffers/issues/5054

Codecov Report

Merging #2986 into master will decrease coverage by 42.46%.
The diff coverage is 0%.

@@             Coverage Diff             @@
##           master    #2986       +/-   ##
===========================================
- Coverage   86.61%   44.15%   -42.47%
===========================================
  Files         491       14      -477
  Lines       69438     3209    -66229
===========================================
- Hits        60146     1417    -58729
+ Misses       9196     1792     -7404
+ Partials       96        0       -96

Impacted Files
Coverage Δ

rust/src/lib.rs
100% <ø> (ø)
:arrow_up:

rust/src/format/message.rs
0% <0%> (ø)

rust/src/format/schema.rs
0% <0%> (ø)

rust/src/format/tensor.rs
0% <0%> (ø)

python/pyarrow/ipc.pxi

cpp/src/parquet/column_page.h

cpp/src/parquet/bloom_filter-test.cc

cpp/src/plasma/client.cc

cpp/src/arrow/io/test-common.h

cpp/src/gandiva/function_registry.h

... and 477 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 60305d5...899967b. Read the comment docs.

@sunchao @paddyhoran @kszucs This is ready for review

Not sure if it's a good idea to add generated files in the repo. Personally, I've had bad experiences with this in the past, such as having to handle different versions of the code generating software. The approach we used in parquet-rs is to create a separate crate just to store the generated files, which may or may not be feasible here..

It would be nice to generate on the fly as part of the build process but this doesn't seem feasible today

IMHO generating on the fly is the ideal situation so it depends how long it would take to get to this end state.

This will be part of the next flatbuffers release, i.e. we would then be able to skip the compilation step and use a released binary, e.g. via conda?

This solves the first issue in a reasonable time frame.
The other 3 issues don't seem to be big hurdles and the flatbuffers devs have been responsive so it's reasonable that they will be addressed in a reasonable time-frame also.
Given all this I'm in favor of merging this PR and updating to generating on the fly once all the blockers are resolved.

@sunchao I started a discussion on the mail list re adding a separate crate but not responses yet. Can we consider this as a separate PR?
@paddyhoran Could you approve please given that you are in favor of merging? Appveyor failed due to something unrelated.

@sunchao I started a discussion on the mail list re adding a separate crate but not responses yet. Can we consider this as a separate PR?

I'm OK as long as this is just a temporary solution.


Restrict access to shelves to only selected users

Describe the feature you'd like
I'd like to be able to choose which of my users can see what books or maybe have a shelf locked down to only certain users.
Describe the benefits this would bring to existing BookStack users
Just like a physical library has restricted areas, being able to limit access to only specific users to certain shelves would be very useful. I would like to share my books with other but not everything to everyone.
Can the goal of this request already be achieved via other means?
Not that I can see.
Have you searched for an existing open/closed issue?

[X] I have searched for existing issues and none cover my fundemental request

How long have you been using BookStack?
0 to 6 months
Additional context
If BookStack had this feature, I think it would be perfect.

Thinking about it a bit more, I believe inheritance based on shelf would be better. I did see the comment regarding a book being in multiple places however, if I had multiple book shelves at home, I could not physically have the same book on two different shelves at once.
Therefore, I believe that permissions should be set per bookshelf and the books inherit from the shelf.
So, for example, one user could have full edit permissions to add, remove, delete books as they wish yet on another shelf, they would have maybe view only permissions. I think that would make more sense.

Hi @mpiko, Thank you for your request.

Can the goal of this request already be achieved via other means?
Not that I can see.

BookStack supports shelf/book level permissions based upon roles. You could technically achieve this by having user-specific roles then apply item-level permissions using these roles. Is a bit clunky and having many roles can affect performance in some areas, but it is a way to achieve the requested outcome.

Thinking about it a bit more, I believe inheritance based on shelf would be better. I did see the comment regarding a book being in multiple places however, if I had multiple book shelves at home, I could not physically have the same book on two different shelves at once

This is really a perspective upon the metaphor used. You could have the same book on mulitple shelves of a library. Won't be the exact same physical thing but could be the same book with the same contents. Either way, this functionality is already in place and is not something we can just quickly remove to achieve other means.

User-level permission assignment is already open in issue #1747, which covers the fundamental request here, so I'm going to therefore close this off as a duplicate.

Ok, fair enough. I would prefer to see it with inheritance just as we do with a file system on a computer. It works quite well.


Implement IODC

Remaining tasks:

[x] Find a way to check if the user is authenticated
[x] Add documentation
[x] Add tests

Codecov Report

Merging #228 (03ef4cc) into master (1777d69) will decrease coverage by 3.83%.
The diff coverage is 15.34%.

@@            Coverage Diff             @@
##           master     #228      +/-   ##
==========================================
- Coverage   84.21%   80.38%   -3.84%
==========================================
  Files          50       52       +2
  Lines        3136     3283     +147
==========================================
- Hits         2641     2639       -2
- Misses        376      522     +146
- Partials      119      122       +3

Impacted Files
Coverage Δ

security/config.go
0.00% <0.00%> (-50.00%)
:arrow_down:

security/oidc.go
0.00% <0.00%> (ø)

security/handler.go
52.63% <52.94%> (-47.37%)
:arrow_down:

controller/handler/handler.go
88.23% <80.00%> (-2.39%)
:arrow_down:

security/basic.go
100.00% <100.00%> (ø)

config/maintenance/maintenance.go
92.40% <0.00%> (-3.80%)
:arrow_down:

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 1777d69...03ef4cc. Read the comment docs.

@kkhan01 Thank you 😄

Release in v3.5.0


Dependency on Capybara 2.13.x

I would like to keep using capybara-webkit, and also use the latest minor release for capybara.
capybara is now at 2.15.1. capybara-webkit is dependent on 2.13.x :
Bundler could not find compatible versions for gem "capybara":
  In Gemfile:
    capybara (~> 2.15.1)

    capybara-webkit (~> 1.14.0) was resolved to 1.14.0, which depends on
      capybara (< 2.14.0, >= 2.3.0)

Is there a way I can leverage something > 2.14.0, or plans for a new release to update to the latest capybara minor version? Thanks!

I think https://github.com/thoughtbot/capybara-webkit/pull/1000 resolves this for you, but there hasn't been another release since then.

#1000 doesn't have instructions how to install.  Still having issues with this.

Thanks @mikegee, glad to know theres lots of traction on it.

You can use the current master branch with the latest Capybara

@twalpole Am I reading correctly that the fix was merged in May? When will a new version be released?

@bmulholland No clue - I don't do the releases - just code commits -- use the master branch if you want the newest stuff.

@twalpole I've tried master and am hitting crashes of Capybara Webkit.   A better option would be to report the crashes with reproducible test cases, help get them fixed, and help the whole community.

@twalpole That's a good idea. I won't have time to do a reproducible test case before the holidays - would a crash log on its own be useful?
We do need to upgrade Capybara in the next few days - is there a stable commit I can use as a temporary measure?


angular 1.3.6 compatibility

When updating angular-animate to version 1.3.6 it doesn't work. Exception says:
Uncaught Error: [$injector:unpr] Unknown provider: $$qProvider <- $$q <- $animate <- $compile <- hotkeys

Closing due to no response


Register using Facebook account not working,

Register using Facebook account not working,
It shows error shown in attached screenshot
Its show stopper issue

Fixed. Btw you can also create your own Facebook App https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins?view=aspnetcore-2.2


How do I specify the version in the #tool directive?

I'm using the #tool directive to reference the NUnit.Runners package:
#tool "NUnit.Runners"

Currently it picks version 2.6.4, which is what I want, so it's OK. But Is there a way to specify the version explicitly? Because when NUnit 3.0 is released (if this day ever comes), I might not want to update immediately...

@thomaslevesque
We've been talking (briefly) about introducing an URI for tools and addins i.e. nuget://NUnit.Runners?version=2.6.4. This would standardize arguments to tools and addins and also let us add handlers for other protocols (chocolatey, http, ftp, rsync etc).
No progress yet, but great that you created an issue for this so we have somewhere to discuss this.

I had something simpler in mind (perhaps #tool "NUnit.Runners: 2.6.4"), but a custom URI scheme is a good approach too.

@thomaslevesque Yes, that was the initial idea, but we realized that there's going to be problems when we need to add more arguments such as source, excludeversion, nocache or prerelease. Using an URI scheme let us be more flexible in the future. Nothing's been decided yet though.

Another option could be to get rid of the #tool directive and implement a method for specifying tool dependencies. Something like this:
Tool("NUnit.Runners")
	.Version("2.6.4") /*.Version("*"), "^1.2.3", "~1.2.3", ">1.2.3" ...etc. */
	.Protocol("NuGet")
	.Source("https://www.nuget.org") // .Sources(new[]{"https://www.nuget.org"})
	.Cache(true);
	 //…some other options

If we go this way, an even better alternative would be to automatically infer the dependencies based on usage ;)
e.g. if NUnit is used in the script, automatically add a dependency on NUnit.Runners.
It's probably not trivial to do, but it would be ideal, because currently it isn't documented anywhere that you need NUnit.Runners to use the NUnit DSL methods

@thomaslevesque  And which version of the dependency should get resolved?
Your solution lakes the support for specifying some options like the version or caching.

And which version of the dependency should get resolved?
Your solution lakes the support for specifying some options like the version or caching.

It would still be possible to specify a version explicitly (with the #tool directive or something else); if the version is not specified, it would just pick the latest version.

No need for a tool alias, you could just use the  NuGetInstall(string packageId, NuGetInstallSettings settings) alias to install what ever NuGet package you want.
The NuGetInstallSettings will allow you to configure version, source etc.
The Tool directive is for pre processing, analysis and gives us an opportunity reason about script dependencies.
Regarding specifying version and parameters in the #tool, #addin #l &#r directives I think think supporting existing, but also an URI like syntax would be an good option i.e.nuget://package?version=xx&....and so on (could allow for other protocols like http/sftp/ftp/ssh/rsync/etc).

@thomaslevesque, now that NUnit 3 has been released, I think a workaround for people who want to install 2.6.4 of the nunit.runner is to specify the specific version in your packages.config, not in the build script. See http://cakebuild.net/docs/tools/installing-tools
An NUnit 3 alias will hopefully be out soon, see #532. It will run v2 and v3 NUnit tests. You should change your tool statement to #tool "NUnit.Console" and use the new NUnit3 option once it is available.

@rprouse , yes, I was using packages.config before. It's when I wanted to switch to using the #tool directive that I realized it didn't let me specify the version. I wasn't looking for a workaround, just suggesting an improvement ;)

I just realized that Cake scripts using #tool "NUnit.Runners" no longer work. They try to install the latest version of the package (3.0.1), but this package doesn't actually contain anything, it just has a dependency on NUnit.Console. When Cake looks for tool executables, it doesn't find any in NUnit.Runners, and says that it failed to install the package...
It's easy to fix (just use #tool "NUnit.Console" as suggested by @rprouse), but it's unfortunate that an update to NUnit broke the build for anyone using Cake and NUnit...

@thomaslevesque it is unfortunate, but NUnit 3 is a total rewrite from NUnit 2. People upgrading to NUnit 3 will have to make changes like using the new NUnit 3 task introduced in 0.6.1 for Cake. It is unfortunate that it is not a seamless upgrade, but it is the price of progress. The new new NUnit 3 runner will continue to run Nunit 2 tests, so hopefully it will only require a few minor changes to build scripts to get up and running again.
If this isn't the case, please head over to the NUnit repo and file an issue with your use case. NUnit 3 is a breaking change, but we want to help people make the transition as painlessly as possible.

@rprouse I have no issue with the fact that NUnit 3 introduces breaking changes. What I meant is that it broke the build even for people who had no intention to upgrade right now, because the latest version is picked up automatically (since the #tool directive doesn't allow to specify a version).

@thomaslevesque I believe that the core requirement within this issue has now been met, as you can specify the version number that you want to use within both the #addin and #tool directive.  You can see more information about this here: http://cakebuild.net/docs/fundamentals/preprocessor-directives
I am going to close this issue, but feel free to re-open if required.

I believe that the core requirement within this issue has now been met

Absolutely. Thanks!


Postgres Reserved Keyword Error

In my AWS RDS(Postgres) Database I have a table with a column named "end". In older versions, I was able to upload to this column without having any problems by using this part of the code in Python:
import awswrangler as wr

wr.postgresql.to_sql(
    df=df,
    table=table,
    schema=schema,
    con=conn,
    mode="append",
    use_column_names=True,
)

After recently updating to the latest version of the library I get an error, more specifically:
Error loading data to PostgreSQL: {'S': 'ERROR', 'V': 'ERROR', 'C': '42601', 'M': 'syntax error at or near "end"', 'P': '97', 'F': 'scan.l', 'L': '1236', 'R': 'scanner_yyerror'}

I believe I'm encountering this error due to a reserved word. Is there a way to prevent this issue?
Additionally, I'm curious about why this error has surfaced now when it wasn't a problem in the past. Thank you!

Hi @sotiriskar , what is the version of the library you are using?

I'm currently encountering the error with version awswrangler-3.5.1, whereas I didn't experience the issue when using version awswrangler-3.4.2 previously.


glib build failure

Operating system
x64-linux
Compiler
gcc
Steps to reproduce the behavior
build glib failed in manifest mode (but success in global)

Failure logs
-- Using source at /home/nwq/open-source/git/vcpkg/buildtrees/glib/src/glib-2-ad6932593c.clean
-- Getting CMake variables for x64-linux-dbg
-- Getting CMake variables for x64-linux-rel
-- Configuring x64-linux-dbg
CMake Error at /home/nwq/open-source/git/vcpkg/scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
    Command failed: /usr/bin/python3 -I /home/nwq/open-source/git/dksave/cmake-build-release-gxx-12/vcpkg_installed/x64-linux/tools/meson/meson.py -Dselinux=disabled -Dlibmount=disabled -Dgtk_doc=false -Dinstalled_tests=false -Dlibelf=disabled -Dman=false -Dtests=false -Dxattr=false --backend ninja --wrap-mode nodownload -Dbuildtype=plain --libdir lib --native /home/nwq/open-source/git/vcpkg/buildtrees/glib/meson-x64-linux-dbg.log -Ddebug=true --prefix /home/nwq/open-source/git/vcpkg/packages/glib_x64-linux/debug --includedir ../include -Dcmake_prefix_path=['/home/nwq/open-source/git/dksave/cmake-build-release-gxx-12/vcpkg_installed/x64-linux/debug','/home/nwq/open-source/git/dksave/cmake-build-release-gxx-12/vcpkg_installed/x64-linux'] /home/nwq/open-source/git/vcpkg/buildtrees/glib/src/glib-2-ad6932593c.clean
    Working Directory: /home/nwq/open-source/git/vcpkg/buildtrees/glib/x64-linux-dbg
    Error code: 1
    See logs for more information:
      /home/nwq/open-source/git/vcpkg/buildtrees/glib/config-x64-linux-dbg-meson-log.txt.log
      /home/nwq/open-source/git/vcpkg/buildtrees/glib/config-x64-linux-dbg-out.log

Call Stack (most recent call first):
  /home/nwq/open-source/git/vcpkg/scripts/cmake/vcpkg_configure_meson.cmake:436 (vcpkg_execute_required_process)
  /home/nwq/open-source/git/vcpkg/buildtrees/versioning_/versions/glib/d67b03e0a09ec580d051b79321b03182c0030c5f/portfile.cmake:42 (vcpkg_configure_meson)
  /home/nwq/open-source/git/vcpkg/scripts/ports.cmake:175 (include)

WARNING: Recommend using either -Dbuildtype or -Doptimization + -Ddebug. Using both is redundant since they override each other. See: https://mesonbuild.com/Builtin-options.html#build-type-options
The Meson build system
Version: 0.62.1
Source dir: /mnt/DiskD/home/nwq/open-source/git/vcpkg/buildtrees/glib/src/glib-2-ad6932593c.clean
Build dir: /mnt/DiskD/home/nwq/open-source/git/vcpkg/buildtrees/glib/x64-linux-dbg
Build type: native build
Project name: glib
Project version: 2.78.4
C compiler for the host machine: /usr/bin/cc -fPIC -g (gcc 11.4.0 "cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
C linker for the host machine: /usr/bin/cc -fPIC -g ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -std=c90: YES
Compiler for C supports arguments -std=c99: YES
Compiler for C supports arguments -std=c11: YES
Compiler for C supports arguments -std=c17: YES
C++ compiler for the host machine: /usr/bin/c++ -fPIC -g (gcc 11.4.0 "c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
C++ linker for the host machine: /usr/bin/c++ -fPIC -g ld.bfd 2.38
Compiler for C++ supports arguments -std=c++98: YES
Compiler for C++ supports arguments -std=c++03: YES
Compiler for C++ supports arguments -std=c++11: YES
Compiler for C++ supports arguments -std=c++14: YES
Compiler for C++ supports arguments -std=c++17: YES
Compiler for C++ supports arguments -std=c++20: YES
Compiler for C++ supports arguments -std=c++2b: YES
Compiler for C++ supports arguments -std=c++latest: NO
Program valgrind found: NO
Compiler for C supports arguments -fno-strict-aliasing: YES
Message: Enabling various debug infrastructure
Has header "alloca.h" : YES
Has header "afunix.h" : NO
Has header "crt_externs.h" : NO
Has header "dirent.h" : YES
Has header "float.h" : YES
Has header "fstab.h" : YES
Has header "grp.h" : YES
Has header "inttypes.h" : YES
Has header "limits.h" : YES
Has header "locale.h" : YES
Has header "mach/mach_time.h" : NO
Has header "memory.h" : YES
Has header "mntent.h" : YES
Has header "poll.h" : YES
Has header "pwd.h" : YES
Has header "sched.h" : YES
Has header "spawn.h" : YES
Has header "stdatomic.h" : YES
Has header "stdint.h" : YES
Has header "stdlib.h" : YES
Has header "string.h" : YES
Has header "strings.h" : YES
Has header "sys/auxv.h" : YES
Has header "sys/event.h" : NO
Has header "sys/filio.h" : NO
Has header "sys/inotify.h" : YES
Has header "sys/mkdev.h" : NO
Has header "sys/mntctl.h" : NO
Has header "sys/mnttab.h" : NO
Has header "sys/mount.h" : YES
Has header "sys/param.h" : YES
Has header "sys/prctl.h" : YES
Has header "sys/resource.h" : YES
Has header "sys/select.h" : YES
Has header "sys/statfs.h" : YES
Has header "sys/stat.h" : YES
Has header "sys/statvfs.h" : YES
Has header "sys/sysctl.h" : NO
Has header "sys/time.h" : YES
Has header "sys/times.h" : YES
Has header "sys/types.h" : YES
Has header "sys/uio.h" : YES
Has header "sys/vfs.h" : YES
Has header "sys/vfstab.h" : NO
Has header "sys/vmount.h" : NO
Has header "sys/wait.h" : YES
Has header "termios.h" : YES
Has header "unistd.h" : YES
Has header "values.h" : YES
Has header "wchar.h" : YES
Has header "xlocale.h" : NO
Check usable header "malloc.h" : YES
Check usable header "linux/netlink.h" : YES
Checking if "statx() test" compiles: YES
Header <locale.h> has symbol "LC_MESSAGES" : YES
Checking whether type "struct stat" has member "st_mtimensec" : NO
Checking whether type "struct stat" has member "st_mtim.tv_nsec" : YES
Checking whether type "struct stat" has member "st_atimensec" : NO
Checking whether type "struct stat" has member "st_atim.tv_nsec" : YES
Checking whether type "struct stat" has member "st_ctimensec" : NO
Checking whether type "struct stat" has member "st_ctim.tv_nsec" : YES
Checking whether type "struct stat" has member "st_birthtime" : NO
Checking whether type "struct stat" has member "st_birthtimensec" : NO
Checking whether type "struct stat" has member "st_birthtim" : NO
Checking whether type "struct stat" has member "st_birthtim.tv_nsec" : NO
Checking whether type "struct stat" has member "st_blksize" : YES
Checking whether type "struct stat" has member "st_blocks" : YES
Checking whether type "struct statfs" has member "f_fstypename" : NO
Checking whether type "struct statfs" has member "f_bavail" : YES
Checking whether type "struct dirent" has member "d_type" : YES
Checking whether type "struct statvfs" has member "f_basetype" : NO
Checking whether type "struct statvfs" has member "f_fstypename" : NO
Checking whether type "struct tm" has member "tm_gmtoff" : YES
Checking whether type "struct tm" has member "__tm_gmtoff" : NO
Compiler for C supports arguments -Wduplicated-branches: YES
Compiler for C supports arguments -Wimplicit-fallthrough: YES
Compiler for C supports arguments -Wmisleading-indentation: YES
Compiler for C supports arguments -Wmissing-field-initializers: YES
Compiler for C supports arguments -Wnonnull: YES
Compiler for C supports arguments -Wunused: YES
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -Wno-cast-function-type: YES
Compiler for C supports arguments -Wno-pedantic: YES
Compiler for C supports arguments -Wno-format-zero-length: YES
Compiler for C supports arguments -Wno-variadic-macros: YES
Compiler for C supports arguments -Werror=format=2: YES
Compiler for C supports arguments -Werror=init-self: YES
Compiler for C supports arguments -Werror=missing-include-dirs: YES
Compiler for C supports arguments -Werror=pointer-arith: YES
Compiler for C supports arguments -Werror=unused-result: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wno-bad-function-cast: YES
Compiler for C supports arguments -Werror=implicit-function-declaration: YES
Compiler for C supports arguments -Werror=missing-prototypes: YES
Compiler for C supports arguments -Werror=pointer-sign: YES
Compiler for C supports arguments -Wno-string-plus-int: NO
Compiler for C++ supports arguments -Wduplicated-branches: YES
Compiler for C++ supports arguments -Wimplicit-fallthrough: YES
Compiler for C++ supports arguments -Wmisleading-indentation: YES
Compiler for C++ supports arguments -Wmissing-field-initializers: YES
Compiler for C++ supports arguments -Wnonnull: YES
Compiler for C++ supports arguments -Wunused: YES
Compiler for C++ supports arguments -Wno-unused-parameter: YES
Compiler for C++ supports arguments -Wno-cast-function-type: YES
Compiler for C++ supports arguments -Wno-pedantic: YES
Compiler for C++ supports arguments -Wno-format-zero-length: YES
Compiler for C++ supports arguments -Wno-variadic-macros: YES
Compiler for C++ supports arguments -Werror=format=2: YES
Compiler for C++ supports arguments -Werror=init-self: YES
Compiler for C++ supports arguments -Werror=missing-include-dirs: YES
Compiler for C++ supports arguments -Werror=pointer-arith: YES
Compiler for C++ supports arguments -Werror=unused-result: YES
Compiler for C supports link arguments -Wl,-z,nodelete: YES
Compiler for C supports link arguments -Wl,-Bsymbolic-functions: YES
Checking for function "accept4" : YES
Checking for function "close_range" : YES
Checking for function "copy_file_range" : YES
Checking for function "endmntent" : YES
Checking for function "endservent" : YES
Checking for function "epoll_create" : YES
Checking for function "fallocate" : YES
Checking for function "fchmod" : YES
Checking for function "fchown" : YES
Checking for function "fdwalk" : NO
Checking for function "free_aligned_sized" : NO
Checking for function "free_sized" : NO
Checking for function "fsync" : YES
Checking for function "getauxval" : YES
Checking for function "getc_unlocked" : YES
Checking for function "getfsstat" : NO
Checking for function "getgrgid_r" : YES
Checking for function "getmntent_r" : YES
Checking for function "getpwuid_r" : YES
Checking for function "getresuid" : YES
Checking for function "getvfsstat" : NO
Checking for function "gmtime_r" : YES
Checking for function "hasmntopt" : YES
Checking for function "inotify_init1" : YES
Checking for function "issetugid" : NO
Checking for function "kevent" : NO
Checking for function "kqueue" : NO
Checking for function "lchmod" : YES
Checking for function "lchown" : YES
Checking for function "link" : YES
Checking for function "localtime_r" : YES
Checking for function "lstat" : YES
Checking for function "mbrtowc" : YES
Checking for function "memalign" : YES
Checking for function "mmap" : YES
Checking for function "newlocale" : YES
Checking for function "pipe2" : YES
Checking for function "poll" : YES
Checking for function "prlimit" : YES
Checking for function "readlink" : YES
Checking for function "recvmmsg" : YES
Checking for function "sendmmsg" : YES
Checking for function "setenv" : YES
Checking for function "setmntent" : YES
Checking for function "strerror_r" : YES
Checking for function "strnlen" : YES
Checking for function "strsignal" : YES
Checking for function "strtod_l" : YES
Checking for function "strtoll_l" : YES
Checking for function "strtoull_l" : YES
Checking for function "symlink" : YES
Checking for function "timegm" : YES
Checking for function "unsetenv" : YES
Checking for function "uselocale" : YES
Checking for function "utimes" : YES
Checking for function "utimensat" : YES
Checking for function "valloc" : YES
Checking for function "vasprintf" : YES
Checking for function "vsnprintf" : YES
Checking for function "wcrtomb" : YES
Checking for function "wcslen" : YES
Checking for function "wcsnlen" : YES
Checking for function "sysctlbyname" : NO
Checking for function "statvfs" : YES
Checking for function "statfs" : YES
Checking for function "prctl" : YES
Checking for function "if_indextoname" : YES
Checking for function "if_nametoindex" : YES
Checking for function "splice" : YES
Checking for function "stpcpy" : YES
Checking for function "memalign" : YES
Checking if "getservbyname_r()" compiles: YES
Checking for function "_aligned_malloc" : NO
Checking for function "aligned_alloc" : NO
Checking for function "posix_memalign" : YES
Checking for function "posix_spawn" : YES
Checking if "strerror_r() returns char *" compiles: YES
Checking for function "snprintf" : YES
Checking for function "strcasecmp" : YES
Checking for function "strncasecmp" : YES
Header <sys/sysmacros.h> has symbol "major" : YES
Header <dlfcn.h> has symbol "RTLD_LAZY" : YES
Header <dlfcn.h> has symbol "RTLD_NOW" : YES
Header <dlfcn.h> has symbol "RTLD_GLOBAL" : YES
Header <dlfcn.h> has symbol "RTLD_NEXT" : YES
Checking for type "loff_t" : YES
Message: Checking whether to use statfs or statvfs .. statfs
Checking for function "mkostemp" : YES
Checking if "futex(2) system call" compiles: YES
Checking if "futex(2) system call" compiles: NO
Checking if "eventfd(2) system call" : links: YES
Checking if "pidfd_open(2) system call" : links: YES
Checking if "__uint128_t available" compiles: YES
Checking if "clock_gettime" : links: YES
Checking if "dlopen() and dlsym() in system libraries" : links: YES
Checking if "number of arguments to statfs() (n=2)" compiles: YES
Checking if "open() option O_DIRECTORY" compiles: YES
Checking if "fcntl() option F_FULLFSYNC" compiles: NO
Checking if "C99 vsnprintf" runs: YES
Checking if "C99 snprintf" runs: YES
Checking if "Unix98 printf positional parameters" runs: YES
Checking if "nl_langinfo and CODESET" : links: YES
Checking if "nl_langinfo (PM_STR)" : links: YES
Checking if "nl_langinfo (_NL_CTYPE_OUTDIGITn_MB)" : links: YES
Checking if "nl_langinfo (ALTMON_n)" : links: YES
Checking if "nl_langinfo (_NL_ABALTMON_n)" : links: YES
Checking if "nl_langinfo and _NL_TIME_CODESET" : links: YES
Checking if "signed" compiles: YES
Header <stddef.h> has symbol "ptrdiff_t" : YES
Checking if "sig_atomic_t" : links: YES
Checking if "long long" compiles: YES
Checking if "long double" compiles: YES
Header <stddef.h> has symbol "wchar_t" : YES
Header <wchar.h> has symbol "wint_t" : YES
Checking if "uintmax_t in inttypes.h" compiles: YES
Checking if "uintmax_t in stdint.h" compiles: YES
Checking for size of "char" : 1
Checking for size of "short" : 2
Checking for size of "int" : 4
Checking for size of "void*" : 8
Checking for size of "long" : 8
Checking for size of "long long" : 8
Checking for size of "size_t" : 8
Checking for size of "ssize_t" : 8
Checking if "int64_t is long" compiles: YES
Checking for alignment of "char" : 1
Checking for alignment of "short" : 2
Checking for alignment of "int" : 4
Checking for alignment of "void*" : 8
Checking for alignment of "long" : 8
Checking for alignment of "long long" : 8
Checking for alignment of "size_t" : 8
Checking for size of "wchar_t" : 4
Checking if "GCC size_t typedef is long" compiles: YES
Checking if "GCC size_t typedef is long long" compiles: NO
Checking if "va_lists can be copied as values" runs: DID NOT COMPILE
Checking if "ISO C99 varargs macros in C" compiles: YES
Checking if "ISO C99 varargs macros in C++" compiles: YES
Checking if "GNUC varargs macros" compiles: YES
Has header "alloca.h" : YES (cached)
Has header "sys/poll.h" : YES
Has header "sys/types.h" : YES (cached)
Has header "winsock2.h" : NO
Computing int of "POLLIN" : 1
Computing int of "POLLOUT" : 4
Computing int of "POLLPRI" : 2
Computing int of "POLLERR" : 8
Computing int of "POLLHUP" : 16
Computing int of "POLLNVAL" : 32
Computing int of "AF_UNIX" : 1
Computing int of "AF_INET" : 2
Computing int of "AF_INET6" : 10
Computing int of "MSG_OOB" : 1
Computing int of "MSG_PEEK" : 2
Computing int of "MSG_DONTROUTE" : 4
Checking for type "struct in6_addr" : YES
Checking if "atomic ops" : links: YES
Checking if "atomic ops define" compiles: YES
Checking if "sync swap" : links: NO
Run-time dependency threads found: YES
Header <pthread.h> has symbol "pthread_attr_setstacksize" : YES
Header <pthread.h> has symbol "pthread_attr_setinheritsched" : YES
Header <pthread.h> has symbol "pthread_condattr_setclock" : YES
Header <pthread.h> has symbol "pthread_cond_timedwait_relative_np" : NO
Header <pthread.h> has symbol "pthread_getname_np" : YES
Checking if "pthread_setname_np(const char*)" with dependency threads: links: NO
Checking if "pthread_setname_np(pthread_t, const char*)" with dependency threads: links: YES
Checking if "stack grows check" runs: NO (1)
Run-time dependency iconv found: YES
Found pkg-config: /bin/pkg-config (0.29.2)
Run-time dependency libpcre2-8 found: YES 10.42

Executing subproject gvdb

gvdb| Project name: gvdb
gvdb| Project version: 0.0
gvdb| C compiler for the host machine: /usr/bin/cc -fPIC -g (gcc 11.4.0 "cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
gvdb| C linker for the host machine: /usr/bin/cc -fPIC -g ld.bfd 2.38
gvdb| Build targets in project: 0
gvdb| Subproject gvdb finished.

Dependency gvdb found: YES 0.0 (overridden)
Library m found: YES
Run-time dependency libffi found: YES 3.4.6
Run-time dependency zlib found: YES 1.3.1
Found CMake: /usr/local/bin/cmake (3.29.20240326)
Run-time dependency intl found: NO (tried cmake)
Looking for a fallback subproject for the dependency Intl

../src/glib-2-ad6932593c.clean/meson.build:2139:0: ERROR: Automatic wrap-based subproject downloading is disabled

A full log can be found at /mnt/DiskD/home/nwq/open-source/git/vcpkg/buildtrees/glib/x64-linux-dbg/meson-logs/meson-log.txt

Additional context
No response

This issue should have been fixed by #37396. Please update the script and try again. If there are still problems, please provide vcpkg.json.

I am facing the exact same issue. Specifically, I encountered the error when adding a dependency on OpenCV.

@WentsingNee Has your issue been resolved after updating the scripts?

https://english-for-chinese.blogspot.com/2008/06/and-meet-problem.html

@WentsingNee Has your issue been resolved after updating the scripts?

Thank U Liu! Shortly after I open this issue, I found that execute vcpkg x-update-baseline to update the baseline in vcpkg.json of my project can solve the problem (even doesn't need to update the repository). Until now, I havn't encountered the same error.
@rslangl Has your issue been resolved?

Indeed, executing this command resolved the issue. Tank you!


Add deprecation message to Node.js Connect package

See https://github.com/keycloak-rel-testing/keycloak-rel/actions/runs/3540865022 for a run.


Changes arrayIndex to occursIndex

Also removed occursBound subcommand as it is no longer implemented
DAFFODIL-1478

+1


Release a version for dashbaord

We need to release  a new version for dashboard when a milestone is ready.

Certainly. However, considering the limited number of active developers at present, there is a need to expedite the development progress further.


New Router Service and old USB Transport compatibility issues

Bug Report
The new router service design has conflicts with the older USB transport
Reproduction Steps
Install (from the play store): App Catalog and Sygic Car Navigation
Install Hello SDL with 4.8.1 library version
Scenario 1:

Plug in device
Select Hello SDL on the AOA popup:

observed behavior: App Catalog and Hello SDL show up on the head unit

Scenario 2:

Plug in device
Select Sygic on the AOA popup:

observed behavior: Sygic shows up, Hello SDL has foreground service but never shows up
when you unplug the device, Hello SDL never removed it's foreground notification, so this is putting Hello SDL into a bad state where it can't register again over bluetooth

Expected Behavior
Hello SDL, App Catalog and Sygic all show up no matter what app you select in the AOA popup
Observed Behavior
See above. Different behavior depending on which app you select on the AOA popup
OS & Version Information

Android Version: 9
SDL Android Version: 4.8.1
Testing Against: SYNC 3

Please note, if apps are not updated to at least SDL Android lib 4.7, they will not have access to the multi app AOA connection through the router service. There is nothing we can do about this.  They simply do not have the transport code that will allow them to connect through the router service for AOA or supply the router service with the AOA connection.

#1065 should address the issue that hello SDL shows up when an older library uses the original AOA connection. The other issues are not possible to be worked around; we have to work with partners to ensure they update their apps.

Closed with #1065


One correction and one bug fix

I fixed the bug in line 128 of the init.lua, was it calling 'goto' but it can't be called if a local variable was set after it, and the existence of the MiniMap plugin wasn't working properly so I put a check to test if it's a table.

the only thing i'd say is that MiniMap doesn't need to be typechecked, because if it's nonexistent it'll be nil, a falsy value, and it's more readable not to check if it's a table. I'll merge everything else though


Updated docs for namespaces that are incompatible with the new class-finder lib

Closes #679

Tests failing for static analysis that looks to be incorrect.


R was never defined

R is now defined the same way as in the original Matlab code

R = abs(1/curv[k]) if curv[k] != 0 else 0 is better


Build from GitHub (Development) documentation error

In the Build from GitHub (Development) section of the page https://goaccess.io/download the line
$ ./configure --enable-geoip --enable-utf8
should include a value =legacy or =mmdb for the --enable-geoip option.

Thanks for reporting this. This section has been updated as well as the Docker section.


add ISC license & badges

What out, I made a few assumptions you may not agree with!

I added the ISC license, putting your full name as on GitHub in there.
The npm badge mainly tells users that this project is available, without having to check this. It also tells you if the npm releases are behind GitHub.
I added a Gitter badge. This enables low-barrier feedback & help, but you may feel you get too many notifications.

License and badges: LGTM!
GItter: I don't use this service. I'd suggest people to open an issue instead, or ping me on Freenode IRC if it's something (somehow) urgent.


Story sub-objects not being type-checked by mypy???

from indexer.story import BaseStory

def foo(s: BaseStory) -> None:
    with s.rss_entry() as rss:
        # unpleasant discovery #1: mypy displays:
        # zzz.py:7: note: Revealed type is "Any"
        reveal_type(rss)

def bar(s: BaseStory) -> None:
    rss = s.rss_entry()
    with rss:
        # mypy displays:
        # zzz.py:15: note: Revealed type is "indexer.story.RSSEntry"
        reveal_type(rss)

        # BUT (unpleasant discovery #2)
        # mypy doesn't complain about bogus fields
        # (but will type check actual fields)
        rss.zzz = 1

NOTE! we use "pickle" to transmit Stories in queue messages.  Any change to internal format MUST preserve the ability to process already queued messages (for example, ones trapped in quarantine queues), or at least any deployment of a breaking change needs to be done carefully (emptying all queues first)!!!!!

Appears to be a mypy bug, not related to dataclasses either:
class Foo:
    a: int

    def __enter__(self):
        return self

    def __exit__(self, *args):
        pass

f1 = Foo()
with f1:
    reveal_type(f1)
    f1.a = 1
    f1.b = 2

with Foo() as f2:
    reveal_type(f2)
    f2.a = 1
    f2.b = 2

def f() -> Foo:
    return Foo()

with f() as f3:
    reveal_type(f3)
    f3.a = 1
    f3.b = 2
(venv) pbudne@ramos:~/typing$ mypy with.py
with.py:12: note: Revealed type is "with.Foo"
with.py:14: error: "Foo" has no attribute "b"  [attr-defined]
with.py:17: note: Revealed type is "Any"
with.py:25: note: Revealed type is "Any"
Found 1 error in 1 file (checked 1 source file)

@kilemensi since I investigated due to your review comment:
I asked on a python typing chat (before opening a mypy issue) and got the answer that the __enter__ method needs to be properly typed (default to Any if no annotation), and right now StoryData.__enter__ explicitly returns Any:
     # Implementing typing on return:self is really finicky, just doing Any for now
    def __enter__(self) -> Any:
        self.frozen = False
        return self

I'm not quite sure how to fix this short of having each StoryData subclass have an explicit __enter__ declaration, and none in StoryData itself?

also @pgulley since you created the Story class framework

Found this, but didn't try anything out: https://github.com/python/mypy/issues/3839

Looks like TypeVar is enough to solve our current conundrum... based on your code:
from typing import TypeVar

TFoo = TypeVar("TFoo", bound="Foo")

class Foo:
    a: int

    def __enter__(self: TFoo) -> TFoo:
        return self

    def __exit__(self: TFoo, *args) -> None:
        pass

class Bar(Foo):
    pass

class Baz(Foo):
    b: int

# Foo
f1 = Foo()
with f1:
    reveal_type(f1)
    f1.a = 1
    f1.b = 2

with Foo() as f2:
    reveal_type(f2)
    f2.a = 1
    f2.b = 2

def f() -> Foo:
    return Foo()

with f() as f3:
    reveal_type(f3)
    f3.a = 1
    f3.b = 2

# Bar
r1 = Bar()
with r1:
    reveal_type(r1)
    r1.a = 1
    r1.b = 2

with Bar() as r2:
    reveal_type(r2)
    r2.a = 1
    r2.b = 2

def r() -> Bar:
    return Bar()

with r() as r3:
    reveal_type(r3)
    r3.a = 1
    r3.b = 2

# Baz
z1 = Baz()
with z1:
    reveal_type(z1)
    z1.a = 1
    z1.b = 2

with Baz() as z2:
    reveal_type(z2)
    z2.a = 1
    z2.b = 2

def z() -> Baz:
    return Baz()

with z() as z3:
    reveal_type(z3)
    z3.a = 1
    z3.b = 2

(venv) clemence@CFA-CLEMENCE story-indexer % mypy ~/foo.py
~/foo.py:11: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
~/foo.py:24: note: Revealed type is "foo.Foo"
~/foo.py:26: error: "Foo" has no attribute "b"  [attr-defined]
~/foo.py:29: note: Revealed type is "foo.Foo"
~/foo.py:31: error: "Foo" has no attribute "b"  [attr-defined]
~/foo.py:37: note: Revealed type is "foo.Foo"
~/foo.py:39: error: "Foo" has no attribute "b"  [attr-defined]
~/foo.py:44: note: Revealed type is "foo.Bar"
~/foo.py:46: error: "Bar" has no attribute "b"  [attr-defined]
~/foo.py:49: note: Revealed type is "foo.Bar"
~/foo.py:51: error: "Bar" has no attribute "b"  [attr-defined]
~/foo.py:57: note: Revealed type is "foo.Bar"
~/foo.py:59: error: "Bar" has no attribute "b"  [attr-defined]
~/foo.py:64: note: Revealed type is "foo.Baz"
~/foo.py:69: note: Revealed type is "foo.Baz"
~/foo.py:77: note: Revealed type is "foo.Baz"
Found 7 errors in 1 file (checked 1 source file)

C00L!

Tried this:
(venv) ***@***.***:~/MC/story-indexer$ git diff
diff --git a/indexer/story.py b/indexer/story.py
index 6830e45..af4fce3 100644
--- a/indexer/story.py
+++ b/indexer/story.py
@@ -4,7 +4,7 @@ import pickle
 import re
 from dataclasses import dataclass, field, fields
 from pathlib import Path
-from typing import Any, Callable, Dict, List, Optional
+from typing import Any, Callable, Dict, List, Optional, TypeVar
 from uuid import NAMESPACE_URL, uuid3

 import cchardet as chardet
@@ -34,6 +34,9 @@ def class_to_member_name(original_class: Callable, private: bool = True) -> str:
 return prefix + re.sub("([a-z0-9])([A-Z])", r"\1_\2", name).lower()

+TStoryData = TypeVar("TStoryData", bound="StoryData")
+
+
 @dataclass(kw_only=True)
 class StoryData:
 """
@@ -64,7 +67,7 @@ class StoryData:
     self.frozen = True

 # Implementing typing on return:self is really finicky, just doing Any for now
-    def __enter__(self) -> Any:
+    def __enter__(self: TStoryData) -> TStoryData:
     self.frozen = False
     return self

diff --git a/indexer/workers/fetcher/rss-queuer.py b/indexer/workers/fetcher/rss-queuer.py
index 121335c..528c83a 100644
--- a/indexer/workers/fetcher/rss-queuer.py
+++ b/indexer/workers/fetcher/rss-queuer.py
@@ -134,7 +134,8 @@ class RSSQueuer(Queuer):
	 # mypy reval_type(rss) in "with s.rss_entry() as rss" gives Any!!
	 rss = s.rss_entry()
	 with rss:
-                rss.link = self.link
+                reveal_type(rss)
+                rss.limk = self.link
	     rss.domain = self.domain
	     rss.pub_date = self.pub_date
	     rss.title = self.title

Then ran mypy:
(venv) @.***:~/MC/story-indexer$ mypy -m indexer.workers.fetcher.rss-queuer
....
indexer/workers/fetcher/rss-queuer.py:137: note: Revealed type is "indexer.story.RSSEntry"
So on the plus side, mypy sees the right type, but, as (unfortunately)
with all objects, mypy still won't scream about typos in attributes
(I introduced a typo: link -> limk). And adding slots = ('link', ....)
to the RSSEntry declaration didn't change that.
setattr already validates member names at runtime...

I think (not 100% sure) this is because of the custom __setattr__ ... the question of which fields are/aren't allowed now becomes a runtime issue that mypy can't help us with.

I think (not 100% sure) this is because of the custom __setattr__ ... the question of which fields are/aren't allowed now becomes a runtime issue that mypy can't help us with.

Yes, that makes good sense.


Kubify

@AngelODeath Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@AngelODeath Thank you for signing the Contributor License Agreement!

Test release


Edit the multi-agent documentation

OpenStack Release
Liberty
Description

apply the docs feature template to the multi-agent documentation -- #230

Issues not listed correctly in Fixes tag to close this issue.


Add a previously viewed post history

I think there should be a history feature that shows all previously viewed posts so it is easier to find a post you saw a while ago. Possibly similar to the one in the default reddit app. Also, a setting to toggle whether NSFW content should be saved to history would be nice.

Have a look in the History section of the settings. We have a toggle for this :)

Merge with #1020


Apache Config Issue

Hello! I've blocked access to the .env file on the internet with apache2, only issue is that breaks the package. How could I fix that?

I don't follow?

I used my .htaccess file to block access to the .env file on the internet.
The package can no longer read the .env file.

That doesn't seem related. You probably also changed the file permissions. In any case, this is not a bug with this package. If you'd like to purchase some paid support to resolve the issue with your server, my rates are $50/hour. Let me know.


Provide a non-cached backend too?

According to the official Django docs there is little benefit to using a cached session back-end unless you're using memcached - an unnecessary complication in many deployments.
It would be really nice for us if we could choose a single dependency for extended sessions without having to make the cached/un-cached decision at the same time. Not to mention it would make profiling the two options much much easier.
Especially as django-user-sessions has so little activity from it's maintainers. Would you consider merging a PR which adds a non-cached db back-end?

Hi @willstott101
That would be nice! I agree with adding qsessions.backends.db session backend.

Ok I have created #6 for this.

Thanks!
I merged #6 and released v0.3.0.


merge spi changes for cdi-lite into master

The ECA check is broken, following details and validating my email verifies the ECA exists:


Why use public folder over assets folder

Hi there,
I'm wondering why @nuxt/fonts docs says that we have to store our local fonts inside the public folder while the nuxt docs says that fonts ate mostly stored in the assets folder.
Why is that and does the assets folder also works?

The ~/assets folder isn't a special folder as such - things in that folder only become part of your build if they are imported into your app. Fonts normally shouldn't be part of your build as they don't change per-build. Instead, it's better to keep only the fonts you use in your public folder.