Effect is not correctly cancelled when calling a child action from the parent reducer

Description
When embedding child reducers in a parent reducer using forEach, and calling a child action from the parent reducer by invoking the child reducer directly (without using the send effect), the test case for the parent reducer fails because the effect in the child reducer is still running.
Checklist

[ ] I have determined whether this bug is also reproducible in a vanilla SwiftUI project.
[X] If possible, I've reproduced the issue using the main branch of this package.
[X] This issue hasn't been addressed in an existing GitHub issue or discussion.

Expected behavior
We expect the test case in the following reproducing project to pass.
Actual behavior
The following error occurs, and the test does not pass.

failed - An effect returned for this action is still running. It must complete before the end of the test.

Reproducing project
The implementation and test code for reproduction are as follows:
@Reducer
struct Parent {
    struct State: Equatable {
        var childs: IdentifiedArrayOf<Child.State>

        init() {
            self.childs = .init(uniqueElements: [.init()])
        }
    }

    enum Action {
        case onAppear
        case childs(IdentifiedActionOf<Child>)
    }

    var body: some ReducerOf<Self> {
        Reduce { state, action in
            switch action {
            case .onAppear:
                return Child().reduce(into: &state.childs[0], action: .refresh)
                    .map { [id = state.childs[0].id] in
                        Action.childs(.element(id: id, action: $0))
                    }

            case .childs:
                return .none
            }
        }
        .forEach(\.childs, action: \.childs) {
            Child()
        }
    }
}

@Reducer
struct Child {
    struct State: Equatable, Identifiable {
        var id = UUID()
    }

    enum Action {
        case refresh
        case cancel
    }

    private enum CancelID: Hashable {
        case send(State.ID)
        case sleep(State.ID)
    }

    var body: some ReducerOf<Self> {
        Reduce { state, action in
            switch action {
            case .refresh:
                return .merge(
                    .run { send in
                        try await Task.sleep(for: .seconds(10))
                    }.cancellable(id: CancelID.sleep(state.id), cancelInFlight: true),
                    .run { send in
                        await send(.cancel)
                    }.cancellable(id: CancelID.send(state.id), cancelInFlight: true)
                )

            case .cancel:
                return .merge(
                    .cancel(id: CancelID.sleep(state.id)),
                    .cancel(id: CancelID.send(state.id))
                )
            }
        }
    }
}

@MainActor
func test() async {
    let store = TestStore(initialState: Parent.State()) {
        Parent()
    }

    await store.send(.onAppear)
    await store.receive(\.childs.element)
}

If the method of calling a child action is changed from invoking the child reducer directly to using the send effect, the effect in the child reducer is correctly canceled in the test case.
switch action {
case .onAppear:
+    return .send(.childs(.element(id: state.childs[0].id, action: .refresh)))
-    return Child().reduce(into: &state.childs[0], action: .refresh)
-        .map { [id = state.childs[0].id] in
-            Action.childs(.element(id: id, action: $0))
-        }

The Composable Architecture version information
1.14.0
Destination operating system
iOS 17.5
Xcode version information
Xcode 15.4
Swift Compiler version information
swift-driver version: <IP_ADDRESS> Apple Swift version 5.10 (swiftlang-<IP_ADDRESS> clang-15<IP_ADDRESS>)
Target: arm64-apple-macosx14.0

Hi @b1ackturtle, this is actually working as expected, though admittedly it's not ideal. The operators that handle all the effect cancellation logic is ifLet/forEach, and here you are completely bypassing that:
return Child().reduce(into: &state.childs[0], action: .refresh)
  .map { [id = state.childs[0].id] in
    Action.childs(.element(id: id, action: $0))
  }

So it shouldn't be surprising that effect cancellation isn't working correctly.
Instead you could do something like this, though it is a bit ugly:
return EmptyReducer()
  .forEach(\.childs, action: \.childs) {
    Child()
  }
  .reduce(into: &state.childs, action: .childs(.element(id: …, action: .refresh)

Although we do largely recommend from sending actions via Effect.send as a means for sharing logic, this may be a case that it works well for you. Though, is there a reason you don't execute this refresh logic in the onAppear of the child feature?
Also, we do have some planned updates to how reducers work that will improve these kinds of things, but what the final shape will look like is not yet known.
Since this isn't an issue with the library I am going to convert it to a discussion. Please feel free to continue the conversation over there!


operator [R] multi-nic-cni-operator (1.0.4 1.1.0)

Thanks for submitting your Operator. Please check the below list before you create your Pull Request.
New Submissions

[ ] Are you familiar with our contribution guidelines?
[ ] Have you packaged and deployed your Operator for Operator Framework?

[ ] Have you tested your Operator in all supported installation modes?
[ ] Have you considered whether you want to use semantic versioning order?
[ ] Is your submission signed?
[ ] Is operator icon set?

Updates to existing Operators

[x] Did you create a ci.yaml file according to the update instructions?
[x] Is your new CSV pointing to the previous version with the replaces property if you chose replaces-mode via the updateGraph property in ci.yaml?
[x] Is your new CSV referenced in the appropriate channel defined in the package.yaml or annotations.yaml ?
[x] Have you tested an update to your Operator when deployed via OLM?
[x] Is your submission signed?

Your submission should not

[x] Modify more than one operator
[x] Modify an Operator you don't own
[x] Rename an operator - please remove and add with a different name instead
[x] Modify any files outside the above mentioned folders
[x] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[x] Description of the managed Application and where to find more information
[x] Features and capabilities of your Operator and how to use it
[x] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[x] Human readable name and 1-liner description about your Operator
[x] Valid category name1
[x] One of the pre-defined capability levels2
[x] Links to the maintainer, source code and documentation
[x] Example templates for all Custom Resource Definitions intended to be used
[x] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file an issue against this repo and explain your need
2 For more information see here

/merge possible

/retest-required

/retest-required
Please guide me if there is any suggestion I should fix on my code to pass the test smoothly.

/merge possible

/retest-required

/merge possible

/merge possible

/merge possible

/merge possible


Remove extra new line in unnest join, closes #401

Query in the linked issue is now:
SELECT
   SUM(product_0.productRevenue) as total_productRevenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801` as ga_sessions
LEFT JOIN UNNEST(ga_sessions.hits) as hits_0
LEFT JOIN UNNEST(hits_0.product) as product_0
ORDER BY 1 desc

Other left join lines like 1923 and 1936 in this same file don't start with \n, so makes sense that this one wouldn't either.

/gcbrun


[Bug]: Scrollbars in tables are hard to select

Is there an existing issue for this?

[X] I have searched the existing issues

Description
For users having a mouse with a vertical scroll and not a touchpad to interact with the table, horizontal scrolling in table has to be precise.
We need to triage this more as it wasn't a problem for mac OS
Steps To Reproduce

Add a table widget and data to it
Ensure there is horizontal scroll
Observe that horizontal scroll cannot be selected easily

https://user-images.githubusercontent.com/19730984/202431883-4aea78ec-691c-4523-8df0-fbe5eb57d02a.mp4
Public Sample App
No response
Issue video log
No response
Version
Self-hosted
 Front conversations

@keyurparalkar can you link this issue to your freeze PR since it's getting fixed there?


Utilities to translate from ReverseMode to ReverseModeSplit

In DI, the pullback functions use split reverse mode by default, so they disregard the mode field of AutoEnzyme (because I figure no one is going to pass a ReverseSplitWithPrimal anyway). But still I'd like to respect some of the attributes of the ReverseMode that the user provides.
Would you welcome a PR with functions that translate a ReverseMode to the corresponding ReverseModeSplit, setting reasonable defaults for the remaining type parameters?

Sure!

Though you should still check the mode in case they do

Then I'd also need translation in the other direction, in case they pass me a split mode but I just wanna do gradient

Also sure if you want


Update setup.py

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@DHRUV536 Can you tell me why this is needed?


iOS 16 - SPXSpeechSynthesizer error

When using the speech synthesizer 'speakSsml' function on iOS 16 an error is returned:
[AudioConverter] CompositeAudioConverter.cpp:1082  kAudio_ParamError: packet description 1 of 2: range<PHONE_NUMBER>-5662468098, 576 data bytes
We are using the latest 1.23 version of the framework.
This was working fine on iOS 15 and now it's returning 0 bytes of audio.

In order to be able to debug this issue, could you please share the following:

The SDK logs. You can find instructions on how to enable logging here: https://docs.microsoft.com/azure/cognitive-services/speech-service/how-to-use-logging#ios
The minimum code that reproduces your issue. In particular this should include the configuration you are using with the speech synthesizer (speech output formats, sample input to reproduce the issue, etc..). Please make sure you do --not-- include any subscription keys or auth tokens in your code

Hi Ralph,
Here is the log
swift.log
And this is the configuration that we are using:
let filePath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).map(\.path)[0]
let fileName = "/wavefile.wav"
let fileAtPath = filePath + fileName
if !FileManager.default.fileExists(atPath: fileAtPath) {
        FileManager.default.createFile(atPath: fileAtPath, contents: nil, attributes: nil)
}
try! audioConfig = SPXAudioConfiguration(wavFileOutput: fileAtPath)
try! speechConfig = SPXSpeechConfiguration(authorizationToken: azureToken, region: "westeurope")
let synthetizer = try! SPXSpeechSynthesizer(speechConfiguration: speechConfig, audioConfiguration: audioConfig)
let result = try! synthetizer.speakSsml(ssml)

Thank you for helping us!

Thanks for the additional information, we are investigating this issue and will post an update here once we have more information

Looks the issue is from audio decoding. The SDK would automatically use the compressed audio format (mp3) when requesting service and decode it using Apple's API to pcm formats. As it broken on iOS 16, there might be some API change in new iOS version.
We will investigate this issue further

BTW, could you try to set SpeechServiceConnection_SynthEnableCompressedAudioTransmission  to false to disable the compress transmission feature? see here

Hi @danigutierrezayuso, I tried to repro this issue but failed. I installed xcode 14 beta with iOS 16 simulator on my macbook and run the quickstart and everything works well in the simulator.
Could you try the quickstart to see if you can repro?

Hi @yulin-li, this is only failing on actual devices. It always works fine on the simulator.
I've tried to set speechServiceConnectionSynthesisEnableCompressedAudioTransmission to false and now it's working perfectly after that change. Thank you!

We have fixed this internally and the fix will be released with 1.24.
I'd like to keep this issue open until 1.24 released.

To be closed when the Speech SDK 1.24.0 release is available (latest estimate by the end of September this year).

We are also encountering this issue on iOS 16 devices - it results in a consistently-reproducible crash. iOS 15 devices work fine. Additionally, using an 8KHz output format (SpeechSynthesisOutputFormat.Raw8Khz16BitMonoPcm) does work.

We are also encountering this issue on iOS 16 devices - it results in a consistently-reproducible crash. iOS 15 devices work fine. Additionally, using an 8KHz output format (SpeechSynthesisOutputFormat.Raw8Khz16BitMonoPcm) does work.
Is there an updated ETA on this? Until it is fixed, we cannot ship our update due to crashing on iOS 16.

The ETA is mid-Oct.

Closing this issue as 1.24 is released.

Hi @yulin-li, this is only failing on actual devices. It always works fine on the simulator.
I've tried to set speechServiceConnectionSynthesisEnableCompressedAudioTransmission to false and now it's working perfectly after that change. Thank you!

how can we set this variable to false ?


Main merge plugin

Merge fixes to main.

build

@GaryShen2008 @NvTimLiu assuming this passes we merge and then can create another 0.2 official release to staging


Edited gallery.

Edited gallery.

👷 Deploy Preview for yunrui-zhang processing.

Name
Link

🔨 Latest commit
7f1d0763dad9453e93ca41461e617e48f10242a5

🔍 Latest deploy log
https://app.netlify.com/sites/yunrui-zhang/deploys/650aef8806bc3100086232d3


Setting real device to dev mode

Hi!
I'm trying to run tests (in web browser) on real devices
Server is started with
java -jar ios-server-standalone-0.6.6-SNAPSHOT.jar -beta -port 5555

After I'm started server and connected device 1 (iPad 4, iOS 8.1.3) Such message appears and no tests could be executed
2015-02-25T14:53:44Z WARNING org.uiautomation.ios.DeviceStore.onDeviceAdded  The device %dev1_UDID% is not set to dev mode. It can't be used for testing.

After I'm started server and connected device 2 (iPad 4, iOS 7.1.1) Such messages appears and tests could be started
2015-02-25T14:55:32Z WARNING org.uiautomation.ios.DeviceStore.onDeviceAdded  The device %dev2_UDID% is not set to dev mode. It can't be used for testing.
2015-02-25T14:55:33Z INFO org.uiautomation.ios.DeviceStore.onDeviceAdded  DDI mounted.Device now in dev mode.

Is it new OS fail or some extra settings should be set somewhere?

I got this fix by going into xcode -> Window -> Devices. Once I let xcode open and "see" the ipad it finally went away. P.S. this is assuming you actually have a developer license.

@dimkin-eu : What can you really do is enable UIAutomation from settings - > Developer -> UIAutomation .


FEAT: Add Suffix Converter

Description
Added a new prompt converter and a test for a suffix converter that directly append a given suffix to the prompt.
This is related to #180, which aims to generate suffixes.
More adversarial suffix attack: https://arxiv.org/pdf/2307.15043.pdf.

Tests and Documentation
One new test added for the suffix prompt converter

@microsoft-github-policy-service agree


Merge sequencer and mutation service into main API

Merge #880 First
After taking a closer look at this two things poped out:

GetMutations should have really been GetEpoch, which belongs in the main API.
GetStreamingMutations is really the same as GetEpoch

Therefore, I'm replacing both the SequencerService and the MutationService with keytransparency.v1.GetEpoch.  This greatly simplifies things and also creates a single resource hierarchy.

Is this PR ready for me to look at yet?

Not yet.  I'll ping you when Travis is green.

Codecov Report

Merging #882 into master will decrease coverage by 1.49%.
The diff coverage is 32.75%.

@@            Coverage Diff            @@
##           master     #882     +/-   ##
=========================================
- Coverage   48.51%   47.02%   -1.5%
=========================================
  Files          34       33      -1
  Lines        2360     2401     +41
=========================================
- Hits         1145     1129     -16
- Misses       1011     1072     +61
+ Partials      204      200      -4

Impacted Files
Coverage Δ

integration/testutil.go
70.45% <ø> (-0.66%)
:arrow_down:

core/keyserver/keyserver.go
0% <0%> (ø)
:arrow_up:

core/monitor/verify.go
0% <0%> (ø)
:arrow_up:

core/monitorserver/server.go
30.43% <0%> (-4.57%)
:arrow_down:

core/monitor/sign.go
0% <0%> (ø)
:arrow_up:

core/monitor/monitor.go
14.89% <20.96%> (+14.89%)
:arrow_up:

core/keyserver/validate.go
40.81% <33.33%> (-3.31%)
:arrow_down:

core/keyserver/epochs.go
38.92% <55.22%> (ø)

core/adminserver/admin_server.go
49.43% <66.66%> (ø)
:arrow_up:

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 7e2628b...e36c27f. Read the comment docs.

Ready for another look.
Sorry about all the force push's.  This PR went through many rebase operations to gently pull out separate units of work and to keep it inline with HEAD.


WIP: Test .github 8.7.0 when creating prerelease and dispatching deployment events

close this - only used for testing


Wondering why the methods e.g. read()...

... are not listed on https://docs.rs/hidapi/latest/hidapi/.
Ok, found them, well hidden, on here: https://docs.rs/hidapi/latest/hidapi/struct.HidDevice.html
Might be good for documentation to have the methods clearly listed. I had to click one a crate name, then a struct name to find them. #confusingForBeginners

Added a note to the lib.rs documentation. There are already more examples in the examples/ directory.


update docs to include installation in RHEL/CENTOS

The getting started guide can be followed almost completely but, it looks like the packages have diff names. Will have to figure out then update docs.

Getting started my have to become a general jump point to specific OS's -> web daemons -> etc
As this grows I expect the documentation to evolve but I don't know how much more can be stuffed into getting-started.md before people using it get overwhelmed

that is fine. Which ever way works as long we have it documented. I'll try to lsit the packages that I think we might need for RHEL/CENTOS it might be a longer list since I use the minimal_install.iso

Yes I agree, as I normally use CentOS.  I hit some roadblocks, so I followed the getting started in Ubuntu for now.  I'm also working on this list as well.  I'll be happy to contribute and edit as you develop this guide.

for the moment I did yum install  openssl* setuptools python-de* libxml* libxs* libffi* and the pip  install -r requirements.txt worked after a few tries. I'll have to try to identify which exactly it is or the RHEL/CENTOS correct name.

OS or distro-specific setup guides do sound good, but indeed, getting-started.md is already pretty lengthy.  It might make sense to begin splitting it into a few different guides and have getting-started.md link to OS or distro-specific guides instead.

I can get started on the RHEL/CENTOS specific and do a pull request when I'm done if they are no issues.

@ryanmerolle have you been able to successfully install on centos? I'm using centos 7 and I run into issues later on when trying to reach the webserver.

@chagara - I've been able to get it running on RHEL7 with no issues, other than the noted differences in package names and a couple of quirks around the configuration of Gunicorn/Supervisor.

@bradpeczka I was able to make a list of the rpms needed but, I think I started having problems with the nginx gunicorn/supervisor part. Its not working. What steps did you have to take to make that work? if you do not mind sharing.

@chagara I found this blog (https://rayed.com/wordpress/?p=1496) to be quite useful. I had issues getting the config includes to work, so just pasted the example Supervisor config from the getting-started.md documentation there instead, though you'll need to modify the user to 'apache' or whatever nginx uses.
I also slightly edited gunicorn_config.py by changing the command path to '/bin/gunicorn' and the user to 'apache'.

@bradpeczka thank you for the information. I'll try to see if I can make it work. So you used nginx or apache?

@chagara We're currently using Centos 6 with netbox and no issues. I configured apache initially and switched everything to nginx for other reasons. Both worked with no apparent issues.  What problems are you having?

Well in Centos 7 the problem I'm having at the moment that it seems that nginx is not passing the config and just lands into the "It works !" page. At first I had issues with the packages but, I figured out the needed packages. Now I'm getting an error after I restart supervisord " ImportError: no module named netbox.wsgi" On centos 6 since it needs python 2.7 I need to install that. Do you mind sharing the steps you took or the commands? I must be missing something so simple that I'm over looking it.

Hmm, sounds like a problem with your nginx configuration, and your gunicorn configuration, possibly your supervisord config. It may also be a permissions issue. I'd be happy to look at any of them if you can put them in a gist.  Our steps are a bit convoluted because we're running netbox in a subdirectory, so a lot of the configuration looks a little different.

I installed all the configs like described in the getting started guide. The only difference was the names of the packages and creating the sites-available since that is not on centos. Let me look at the config and post it. What other steps did you had to take?

Just like the starting guide:
server {
listen 80;
server_name netbox-centos7;

access_log off;

location /static/ {
    alias /opt/netbox/netbox/static/;
}

location / {
    proxy_pass http://<IP_ADDRESS>:8001;
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}

}
command = '/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = '<IP_ADDRESS>:8001'
workers = 3
user = 'apache'
[program:netbox]
command=gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory=/opt/netbox/netbox/
user=apache

Ah, that's one issue.  Your nginx configurations ought to go in /etc/nginx/conf.d/ (Assuming you are using an up-to-date nginx from the nginx repository 'http://nginx.org/packages/centos/$releasever/$basearch/')

I do have the netbox.conf in /etc/nginx/conf.d/ I just paste it all together in there so you can see it together sorry for the confusion. It looks like now the gunicorn error has gone away since I binded to <IP_ADDRESS> like you mentioned but, its not showing all the page completely.

Getting this errors: 14:07:52 [error] 11000#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:07:52 [error] 11000#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:07:52 [error] 11000#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:07:52 [error] 11000#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:07:52 [error] 11000#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:07:52 [error] 11000#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:20:25 [error] 11092#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:20:27 [error] 11092#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:20:57 [error] 11127#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:20:58 [error] 11127#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:20:58 [error] 11127#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:20:59 [error] 11127#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:20:59 [error] 11127#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:25:17 [error] 11199#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:25:18 [error] 11199#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:25:18 [error] 11199#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:28:06 [error] 11199#0: *2 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:37:46 [error] 11312#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:37:47 [error] 11312#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:07 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:07 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:08 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:08 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:08 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:08 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:08 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:09 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:09 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:09 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:09 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:09 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:09 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:09 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:10 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:10 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:14 [error] 11409#0: *1 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:25 [error] 11411#0: *2 opendir() "/opt/netbox/netbox/static" failed (13: Permission denied), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 14:39:25 [error] 11411#0: *2 open() "/opt/netbox/netbox/static/favicon.ico" failed (2: No such file or directory), client: <IP_ADDRESS>, server: _, request: "GET /favicon.ico HTTP/1.1", host: "<IP_ADDRESS>", referrer: "http://<IP_ADDRESS>/"
2016/07/02 14:39:25 [error] 11411#0: *2 open() "/opt/netbox/netbox/static/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: _, request: "GET /favicon.ico HTTP/1.1", host: "<IP_ADDRESS>", referrer: "http://<IP_ADDRESS>/"
2016/07/02 15:10:11 [error] 11411#0: *4 "/opt/netbox/netbox/static/index.html" is not found (2: No such file or directory), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 15:10:11 [error] 11411#0: *4 open() "/opt/netbox/netbox/static/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 15:28:56 [error] 11833#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 15:31:29 [emerg] 11901#0: unexpected end of file, expecting "}" in /etc/nginx/nginx.conf:48
2016/07/02 15:32:06 [error] 11943#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 15:36:12 [error] 11998#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 15:37:45 [error] 12047#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 15:37:46 [error] 12047#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 15:37:46 [error] 12047#0: *1 directory index of "/opt/netbox/netbox/static/" is forbidden, client: <IP_ADDRESS>, server: _, request: "GET / HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 15:39:36 [error] 12082#0: *1 "/opt/netbox/netbox/static/site/index.html" is not found (2: No such file or directory), client: <IP_ADDRESS>, server: _, request: "GET /site/ HTTP/1.1", host: "<IP_ADDRESS>"
2016/07/02 15:51:25 [emerg] 12250#0: directive "location" has no opening "{" in /etc/nginx/nginx.conf:38
2016/07/02 15:53:06 [emerg] 12286#0: "location" directive is not allowed here in /etc/nginx/nginx.conf:54
2016/07/02 15:53:26 [emerg] 12320#0: unexpected "}" in /etc/nginx/nginx.conf:56
2016/07/02 15:53:53 [emerg] 12357#0: unexpected end of file, expecting "}" in /etc/nginx/nginx.conf:55
2016/07/02 15:54:21 [crit] 12397#0: *1 connect() to <IP_ADDRESS>:8001 failed (13: Permission denied) while connecting to upstream, client: <IP_ADDRESS>, server: netbox-centos7, request: "GET / HTTP/1.1", upstream: "http://<IP_ADDRESS>:8001/", host: "<IP_ADDRESS>", referrer: "http://<IP_ADDRESS>/"
2016/07/02 15:54:22 [crit] 12397#0: *1 connect() to <IP_ADDRESS>:8001 failed (13: Permission denied) while connecting to upstream, client: <IP_ADDRESS>, server: netbox-centos7, request: "GET / HTTP/1.1", upstream: "http://<IP_ADDRESS>:8001/", host: "<IP_ADDRESS>", referrer: "http://<IP_ADDRESS>/"
Trying to figure out where the permission issue is. I have nginx permission for the files but, not sure if that is the correct way or not.

Odd. Can you show the output of ls -la /opt/netbox/netbox/static?

root@netbox-centos7 ~]# ls -la /opt/netbox/netbox/static/
total 16
drwxr-xr-x. 12 nginx nginx 4096 Jul  2 15:25 .
drwxr-xr-x. 13 nginx nginx 4096 Jul  2 15:25 ..
drwxr-xr-x.  6 nginx nginx   47 Jul  2 15:25 admin
drwxr-xr-x.  5 nginx nginx   37 Jul  2 15:25 bootstrap-3.3.6-dist
drwxr-xr-x.  2 nginx nginx   21 Jul  2 15:25 css
drwxr-xr-x.  5 nginx nginx   35 Jul  2 15:25 debug_toolbar
drwxr-xr-x.  3 nginx nginx   39 Jul  2 15:25 django_tables2
drwxr-xr-x.  6 nginx nginx   72 Jul  2 15:25 font-awesome-4.6.3
drwxr-xr-x.  4 nginx nginx 4096 Jul  2 15:25 jquery-ui-1.11.4
drwxr-xr-x.  2 nginx nginx  100 Jul  2 15:25 js
drwxr-xr-x.  6 nginx nginx   47 Jul  2 15:25 rest_framework
drwxr-xr-x.  5 nginx nginx 4096 Jul  2 15:25 rest_framework_swagger

Did you run python2.7 ./manage.py collectstatic?

yes and I re-ran it again
You have requested to collect static files at the destination
location as specified in your settings:
/opt/netbox/netbox/static

This will overwrite existing files!
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes
0 static files copied to '/opt/netbox/netbox/static', 212 unmodified.

I see, looks like a permissions issue then.  What are the permissions on /opt/netbox/ and /opt/netbox/netbox/?

[vagrant@netbox-centos7 ~]$ ls -laht /opt/netbox/
total 68K
drwxr-xr-x.  7 nginx nginx 4.0K Jul  5 16:34 .
-rw-rw-r--   1 nginx nginx  109 Jul  5 16:34 gunicorn_config.py
drwxr-xr-x. 13 nginx nginx 4.0K Jul  2 15:25 netbox
drwxr-xr-x.  8 nginx nginx 4.0K Jul  2 15:10 .git
-rwxr-xr-x.  1 nginx nginx  318 Jul  2 15:10 requirements.txt
drwxr-xr-x.  2 nginx nginx   23 Jul  2 15:10 scripts
-rwxr-xr-x.  1 nginx nginx  849 Jul  2 15:10 upgrade.sh
drwxr-xr-x.  2 nginx nginx 4.0K Jul  2 15:10 docs
-rwxr-xr-x.  1 nginx nginx 3.4K Jul  2 15:10 CONTRIBUTING.md
drwxr-xr-x.  2 nginx nginx   75 Jul  2 15:10 docker
-rwxr-xr-x.  1 nginx nginx 1.6K Jul  2 15:10 docker-compose.yml
-rwxr-xr-x.  1 nginx nginx  589 Jul  2 15:10 Dockerfile
-rwxr-xr-x.  1 nginx nginx   58 Jul  2 15:10 .gitignore
-rwxr-xr-x.  1 nginx nginx  10K Jul  2 15:10 LICENSE.txt
-rwxr-xr-x.  1 nginx nginx 4.4K Jul  2 15:10 README.md
-rwxr-xr-x.  1 nginx nginx  134 Jul  2 15:10 .travis.yml
drwxr-xr-x.  3 nginx nginx   19 Jul  2 15:10 ..
drwxr-xr-x.  7 nginx nginx 4.0K Jul  5 16:34 ..
drwxr-xr-x.  3 nginx nginx 4.0K Jul  2 15:26 utilities
drwxr-xr-x.  2 nginx nginx 4.0K Jul  2 15:26 netbox
drwxr-xr-x. 12 nginx nginx 4.0K Jul  2 15:25 static
drwxr-xr-x. 13 nginx nginx 4.0K Jul  2 15:25 .
drwxr-xr-x.  6 nginx nginx 4.0K Jul  2 15:25 secrets
drwxr-xr-x.  2 nginx nginx 4.0K Jul  2 15:25 users
drwxr-xr-x.  5 nginx nginx 4.0K Jul  2 15:25 ipam
drwxr-xr-x.  6 nginx nginx 4.0K Jul  2 15:25 dcim
drwxr-xr-x.  4 nginx nginx 4.0K Jul  2 15:25 circuits
drwxr-xr-x.  6 nginx nginx 4.0K Jul  2 15:25 extras
drwxr-xr-x.  9 nginx nginx 4.0K Jul  2 15:10 templates
drwxr-xr-x.  7 nginx nginx  100 Jul  2 15:10 project-static
-rwxr-xr-x.  1 nginx nginx  249 Jul  2 15:10 manage.py
-rwxr-xr-x.  1 nginx nginx  313 Jul  2 15:10 generate_secret_key.py

BTW I was able to get it to work on Ubuntu right away but, no one at work is exposed to Ubuntu so I'm trying to get it to work on Centos.

Interesting. Your permissions are odd, but they shouldn't break anything. README's are usually not executable.
I believe I know what the issue could be though...CentOS ships with SELinux set to enforcing by default.
To check, you can do # getenforce
If you want to fix it quickly you can do # setenforce Permissive
Or if you want to fix it correctly, use # chcon -Rt httpd_sys_content_t /opt/netbox/netbox/static

started from scratch and I'm getting this page. Turned selinux off.

Did you make and run migrations?

yes, I did the ./manage migrate and ./manage collectstatic

ok, so the page loads but, like before not completely.

Alright, I spun up a VM to try and reproduce your issue. Here's my steps to get it working:
(You can even run it as a script if you're brave :smile: )
# Install postgresql repository
yum localinstall https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm

# Install posgresql
yum install postgresql95-server postgresql95-devel python-psycopg2 -y
# Enable the service
systemctl enable postgresql-9.5
# Initialize the database
/usr/pgsql-9.5/bin/postgresql95-setup initdb
# Allow password login for users
sed -i -e 's/ident/md5/' /var/lib/pgsql/9.5/data/pg_hba.conf
# Start the service
service postgresql-9.5 start
# Create our user/database
sudo -u postgres psql <<EOL
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
\q
EOL
yum install epel-release
yum install -y gcc openssl-devel python python-dev git python-pip libxml2-devel libxslt-devel libffi-devel graphviz

# I chose to clone, but you could pull stable
mkdir -p /opt/netbox
cd /opt/netbox
git clone -b master https://github.com/digitalocean/netbox.git .
pip install -r requirements.txt
sed -i -e "s/'USER': ''/'USER': 'netbox'/" /opt/netbox/netbox/netbox/configuration.py
sed -i -e "s/'PASSWORD': ''/'PASSWORD': 'J5brHrAXFLQSif0K'/" /opt/netbox/netbox/netbox/configuration.py
sed -i -e "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['\*'\]/" /opt/netbox/netbox/netbox/configuration.py
key=`python2.7 /opt/netbox/netbox/generate_secret_key.py`
sed -i -e "s/SECRET_KEY = ''/SECRET_KEY = '$key'/" /opt/netbox/netbox/netbox/configuration.py
python2.7 /opt/netbox/netbox/manage.py migrate
python2.7 /opt/netbox/netbox/manage.py collectstatic
# You should probably createsuperuser too, but django doesn't like heredocs
# You can also test your install at  this point using python2.7 manage.py runserver <IP_ADDRESS>:8080

# Up-to-date nginx is better...
echo "[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1" > /etc/yum.repos.d/nginx.repo

yum install -y nginx python-gunicorn supervisor

# nginx config copied from getting-started
echo 'server {
    listen 80;

    server_name netbox.example.com;

    access_log off;

    location /static/ {
        alias /opt/netbox/netbox/static/;
    }

    location / {
        proxy_pass http://<IP_ADDRESS>:8001;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        add_header P3P \'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"\';
    }
}' > /etc/nginx/conf.d/netbox.conf
rm /etc/nginx/conf.d/default

# Don't want to run as root
useradd -M netbox

# gunicorn-config from getting started, bind ip replaced
echo "command = '/usr/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = '<IP_ADDRESS>:8001'
workers = 3
user = 'netbox'" > /opt/netbox/gunicorn_config.py

# supervisor config from getting started
echo "[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = netbox" >> /etc/supervisord.conf
service nginx restart
service supervisord restart

I'm not completely sure what/if anything you missed, but the above seems to work for me on a clean vm.  If you still have issues let me know!

@dinoocch I did everything but, there is something not letting the page stuff load.  I think the main problem could had been what user to run the services as. I used the netbox user u added in your instructions. I'm going to try this in a couple of servers and see how it goes :+1:  I really appreciate it all the help. Do you mind If I use this to put it in a doc and make a pull request ?

@dinoocch thank you for your very detailed instructions. I did run into a problem along the way and it appears that it might be stemmed from "yum install python-dev" instead of the correct "yum install python-devel". Hope this helps some other people.

@chagara Sure, go ahead! Glad I could help.
@nichols-356 Thanks, fixed those and added a bit about SELinux. Glad I could help!

@dinooch thanks so much for the help. What do you think is the problem when the pages do not load right?

@chagara I'm not completely sure. It could have been a lot of things, and without spending time with the broken installation, I'm not sure I can give you a definitive answer. Are you still having any issues?

@dinoocch I tried to deploy it at work so we can use it and I'm stuck in that part where the pages do not load. I followed ur guide and everything. I apologize I never used django or python so I'm still learning this.

is the python-gunicorn from the epel repo or pip?

Either should work.
This is very odd. Are there any nginx errors (/var/log/nginx/errors.log) and does django work correctly when run using python2.7 manage.py runserver <IP_ADDRESS>:8080?

If run it with manage the same thing happens. Its like its not loading the html and all those files correctly.

ok so I finally got it working. I got ownership of netbox to nginx but, ran the supervisord config and gunicorn as root. After restarting everything it seemed to work. Dont know how since this has been the strangest thing I ever seen.


Proposal: change chan syntax from <- to "in out"

$ go version 1.14

What did you expect to see?
// in/out channel
var c chan string
// write data to the channel
"Hello world" in c
// read data from channel
var data := out c
// read-only channel
var c out chan int
func do(c in chan string) {}

Please note that you should fill https://github.com/golang/proposal/blob/master/go2-language-changes.md when proposing a language change.

Please keep in mind the first point here: https://github.com/golang/proposal/blob/master/go2-language-changes.md#what-to-avoid

Your proposal simply changes syntax from X to Y because you prefer Y.

Or add "->" operator
// write data to the channel
"Hello world" -> c
// read data from channel
var data := <- c

For language change proposals, please fill out the template at https://go.googlesource.com/proposal/+/refs/heads/master/go2-language-changes.md .
When you are done, please reply to the issue with @gopherbot please remove label WaitingForInfo.
Thanks!

@gopherbot please remove label WaitingForInfo

For language change proposals, please fill out the template at https://go.googlesource.com/proposal/+/refs/heads/master/go2-language-changes.md .
When you are done, please reply to the issue with @gopherbot please remove label WaitingForInfo.
Thanks!

@gopherbot please remove label WaitingForInfo

This seems to just be suggesting an alternate syntax for something that we can already do.  It would add new keywords to the language, breaking existing code.  The benefit is not worth the cost.  Also the emoji voting is not in favor of this change.
Therefore, this is a likely decline.  Leaving open for four weeks for final comments.

I don't personally agree with this!
The arrows in go have a direct historical link to unix, linux and reading to/from files programs which are two most used OS:es for software/hardware nerds.
If this had to be included the keyword should be "into" rather than "in" as it makes more sense. "in" is a keyword that can be used in javascript as a bool comparator for looking into objects, example: "sausage" in bread where "bread" is a js object.
It just adds confusion IMO, and if you like that type of confusion and ambiguity you should stick too the React & tc39 world

I don't personally agree with this!
The arrows in go have a direct historical link to unix, linux which are two most used OS:es for software/hardware nerds. They represent writing/reading to/from files/programs as ´<´and ´>´ shorthands.
If this had to be included the keyword should be "into" rather than "in" as it makes more sense. "in" is a keyword that can be used in javascript as a bool comparator for looking into objects, example: "sausage" in bread where "bread" is a js object.
It just adds confusion IMO, and if you like that type of confusion and ambiguity you should stick too the React & tc39 world

I don't personally agree with this!
The arrows in go have a direct historical link to unix, linux which are two most used OS:es for software/hardware nerds. They represented shorthands for reading/writing between files/programs as < and > symbols there.
If this had to be included the keyword should be "into" rather than "in" as it makes more sense. "in" is a keyword that can be used in javascript as a bool comparator for looking into objects, example: "sausage" in bread where "bread" is a js object.
It just adds confusion IMO, and if you like that type of confusion and ambiguity you should stick too the React & tc39 world

No change in consensus.


fixadd IP type to compatibilityMatrix

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall


Support for GCS and AWS

Hi,
Please can we have support for backend types GCS and AWS? Is this a lot of work or should it be rather trivial to support?

Should be fairly trivial. We can't automatically fill those as we do with Azure service endpoints, or can you create a service endpoint in ADO pointing to GCS/AWS?
I can take a stab at implementing support, would you be willing to help me test it?

Would be a very welcome addition. I have limited experience with AWS/GCP so would welcome contributors that have more experience with those cloud providers.

For others that may encounter this issue, until direct service connection and backend support are added (parity with azure), this can be accomplished using the self-configured option and secure env files.

@charleszipp is it possible to provide secure env files on the fly somehow? E.g. task prior to terraform init creates .tfvars file, which could be used with self-configured option? I tried it, but pipelines complain that file has to be available beforehand, I just wonder if there is any option to do it on the fly.

I think to do what you are asking you would need to generate the file then be able to upload it as a secure file. This task does not provide this capability. I did look to see if there was another task that allows for uploading secure files. It appears this has been requested before but, the PG said there are no plans to add such a task. See this issue. There is some guidance in that thread how to use the ADO api's to upload a secure file.


Add connection to HANA

Description
Added the basics for connecting to a HANA instance. Can run "task mongosh" without error and connect to hana handler.
Readiness checklist

[ ] I added/updated unit tests.
[ ] I added/updated integration/compatibility tests.
[ ] I added/updated comments and checked rendering.
[ ] I made spot refactorings.
[ ] I updated user documentation.
[ ] I ran task all, and it passed.
[ ] I ensured that PR title is good enough for the changelog.
[ ] (for maintainers only) I set Reviewers (@FerretDB/core), Assignee, Labels, Project and project's Sprint fields.
[ ] I marked all done items in this checklist.

@AlekSi I have added the script and changed the workflows, so that the CI is not failing. The current failures I think are unrelated to my changes.


Handle DollarParen token kind in indentation rule

Resolves PowerShell/vscode-powershell#477

This change is

@daviwil Thanks!


How to modify the loss function as Dice + CE loss?

Hi,
I am conducting a segmentation task with only one target structure. Now I try to modify the loss function as Dice + CE loss, then I just change the code as shown here,
class CrossEntropyLoss(nn.Module):
    def __init__(self):
        super().__init__()
        self.loss = nn.CrossEntropyLoss()

    def forward(self, y_pred, y_true):
        # CrossEntropyLoss target needs to have shape (B, D, H, W)
        # Target from pipeline has shape (B, 1, D, H, W)
        y_true = torch.squeeze(y_true, dim=1).long()
        return self.loss(y_pred, y_true)

class DiceCELoss(nn.Module):
    def __init__(self):
        super().__init__()
        self.dice = monai.losses.DiceLoss(sigmoid = True)
        self.cross_entropy = CrossEntropyLoss()

    def forward(self, y_pred, y_true):
        dice = self.dice(y_pred, y_true)
        cross_entropy = self.cross_entropy(y_pred, y_true)
        return dice + cross_entropy

loss_function = DiceCELoss()

However, after changing this part, the code seems cannot work now, and reports such kind of error. Could you please help me find what is wrong?
/pytorch/aten/src/THCUNN/SpatialClassNLLCriterion.cu:106: cunn_SpatialClassNLLCriterion_updateOutput_kernel: block: [34,0,0], thread: [893,0,0] Assertion `t >= 0 && t < n_classes` failed.
/pytorch/aten/src/THCUNN/SpatialClassNLLCriterion.cu:106: cunn_SpatialClassNLLCriterion_updateOutput_kernel: block: [34,0,0], thread: [894,0,0] Assertion `t >= 0 && t < n_classes` failed.
/pytorch/aten/src/THCUNN/SpatialClassNLLCriterion.cu:106: cunn_SpatialClassNLLCriterion_updateOutput_kernel: block: [34,0,0], thread: [895,0,0] Assertion `t >= 0 && t < n_classes` failed.
/pytorch/aten/src/THCUNN/SpatialClassNLLCriterion.cu:106: cunn_SpatialClassNLLCriterion_updateOutput_kernel: block: [34,0,0], thread: [384,0,0] Assertion `t >= 0 && t < n_classes` failed.
Traceback (most recent call last):
  File "2D_UNet.py", line 259, in <module>
    main()
  File "2D_UNet.py", line 191, in main
    loss.backward()
  File "/home/anaconda3/envs/monai/lib/python3.7/site-packages/torch/tensor.py", line 221, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph)
  File "/home/anaconda3/envs/monai/lib/python3.7/site-packages/torch/autograd/__init__.py", line 132, in backward
    allow_unreachable=True)  # allow_unreachable flag
RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED

Thanks a lot.

Hi @GOZGOXGOYGO ,
I don't see some obvious error in your loss function, maybe you can compare all your program with:
https://github.com/Project-MONAI/tutorials/blob/master/modules/dynunet_tutorial.ipynb
And please make sure your software env is OK to run a regular PyTorch program.
Thanks.

Hi,
I think this error might be a bug. Actually, my code can run the monai code with officially provided dice loss. But when I change this part, the code cannot work now. It seems that in the tutorial code, the modified loss function is used with SupervisedTrainer in the following form. But why can't just apply it in this tutorial code?
https://github.com/Project-MONAI/tutorials/blob/master/2d_segmentation/torch/unet_training_dict.py
Thank you.
    trainer = monai.engines.SupervisedTrainer(
        device=device,
        max_epochs=max_epochs,
        train_data_loader=train_loader,
        network=net,
        optimizer=opt,
        loss_function=DiceCELoss(),
        inferer=get_inferer(),
        key_train_metric=None,
        train_handlers=train_handlers,
        amp=amp,
    )
    trainer.run()

Hi @GOZGOXGOYGO ,
Could you please help provide a simple program to reproduce your issue? I didn't find any issue at a first look.
Thanks.


cargo package cannot call cargo metadata

I hit this issue trying to publish a crate from inside a workspace.
The mp4parse repo has a virtual manifest referring to two subcrates, one of which depends on the other. The depending crate, mp4parse_capi, calls cbindgen from a build script to generate headers. This in turn calls cargo metadata on the crate to obtain the dependency graph. So far so good.
But when running cargo package this fails, because the test build of the package invokes cargo metadata on the version in target/package/ which isn't listed in the workspace.members key of the top-level manifest.
$ cd mp4parse_capi
$ cargo package
[...]
error: failed to verify package tarball

Caused by:
  failed to run custom build command for `mp4parse_capi v0.9.0 (file:///home/giles/mp4parse-rust/mp4parse_capi/target/package/mp4parse_capi-0.9.0)`
process didn't exit successfully: `/home/giles/mp4parse-rust/mp4parse_capi/target/package/mp4parse_capi-0.9.0/target/debug/build/mp4parse_capi-2a4c3b58d340bafe/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-changed=src/lib.rs

--- stderr
thread 'main' panicked at 'Could not generate header: "couldn\'t execute `cargo metadata` with manifest \"/home/giles/mp4parse-rust/mp4parse_capi/target/package/mp4parse_capi-0.9.0/Cargo.toml\"."', /checkout/src/libcore/result.rs:906:4

I guess the cargo package implementation needs to block the search for a parent base crate at the top of the package directory? The idea, I think, is to verify that the packaged crate will build, so it seems like the workspace influence is an inappropriate side-effect here.
I tried adding target/package/mp4parse_capi-* to the members list as suggested by cargo's error message, but then of course:
error: two packages named `mp4parse_capi` in this workspace:
- /home/giles/mp4parse-rust/mp4parse_capi/Cargo.toml
- /home/giles/mp4parse-rust/mp4parse_capi/target/package/mp4parse_capi-0.9.0/Cargo.toml

What was the error of cargo-metadata? I don't see the error from cargo-metdata in the output above?

Ah, sorry. The cbindgen eats the cargo error message. Running the same command manually:
$ cargo metadata --all-features --format-version 1 --manifest-path /home/giles/mp4parse-rust/mp4parse_capi/target/package/mp4parse_capi-0.9.0/Cargo.toml
error: current package believes it's in a workspace when it's not:
current:   /home/giles/mp4parse-rust/mp4parse_capi/target/package/mp4parse_capi-0.9.0/Cargo.toml
workspace: /home/giles/mp4parse-rust/Cargo.toml

this may be fixable by adding `mp4parse_capi/target/package/mp4parse_capi-0.9.0` to the `workspace.members` array of the manifest located at: /home/giles/mp4parse-rust/Cargo.toml

Steps to reproduce:
mkdir virtual-manifest
cd virtual-manifest
echo -e '[workspace]\nmembers = [ "foo" ]' > Cargo.toml
cargo new foo
cd foo
cargo package --allow-dirty
cargo metadata --manifest-path target/package/foo-0.1.0/Cargo.toml

It's tricky, because this might be a reasonable result, except for the semantics of the target/package directory. It was only a problem for me in the context of running cargo package itself. I don't know which of those would be a better gate.

Steps to reproduce:
mkdir virtual-manifest
cd virtual-manifest
echo -e '[workspace]\nmembers = [ "foo" ]' > Cargo.toml
cargo new foo
cd foo
cargo package --allow-dirty
cargo metadata --manifest-path target/package/foo-0.1.0/Cargo.toml

It's tricky, because this might be a reasonable result, except for the semantics of the target/package directory. It was only a problem for me in the context of running cargo package itself. I don't know which of those would be a better gate.

Nah this seems like a clear bug that we should fix, I'm sure there's some trickery we could apply to get this all hooked up and working in Cargo (cargo package should probably allow commands like this to work by default somehow at least)


Dbz 7258 - add reconnect DB feature to JDBC Storage

Hi @sherpa003, thanks for your contribution. Please prefix the commit message(s) with the DBZ-xxx JIRA issue key.

I don't understand why this is failing as all commits are prefixed

@sherpa003 No worries, it sometimes happens if you do force push and overwirte commits that contained incorrect messages.

@sherpa003 Thanks, unfortunately there are failures in JDBC storage tests.

@Naros I rebased it against the latest main and cleaned the code a bit more. Could you please review it? Thanks

@Naros Build failure is unrelated

And it is merged. Thanks @sherpa003 for the PR!


How can I handle wildcard domain?

Problems:

I am confused about the backends params, it starts with protocol in fastly.toml file, and Host on web control panel  not (and it should be), how do I setup it correctly?

I built serverless apps runing on Cloudflared Workers before, I am trying port them on fastly @Edge as deliver branch. Then I reached problems, with Workers Routing I can handle wildcard domain *.example.com, *-cf.example.com. The program works   well on Workers.

@Edge not serve HTTP request, will get 308 Permanent Redirect. I can't provide Cert with trial account.

Refs:
src: https://github.com/initdc/ghuser-fastly
instance:

https://raw-ghuser.mirr.one/initdc/ghuser-fastly/master/fastly.toml
https://avatars-ghuser.mirr.one/u/14258692?s=80&v=4

hi there @initdc!

I am confused about the backends params, it starts with protocol in fastly.toml file, and Host on web control panel  not (and it should be), how do I setup it correctly?

you might want to check out the Developer Hub reference on the fastly.toml format here: https://developer.fastly.com/reference/compute/fastly-toml
as you mentioned, the protocol is included here! iirc, this is to help Viceroy decide how to communicate with the origin server that's been configured.

I built serverless apps runing on Cloudflared Workers before, I am trying port them on fastly @Edge as deliver branch. Then I reached problems, with Workers Routing I can handle wildcard domain *.example.com, *-cf.example.com. The program works   well on Workers.

i'm not entirely up-to-speed on the details of CF Workers, but if i understand correctly, you're trying to send traffic to origin servers whose URL's are not known in advance? unfortunately, C@E does not support this currently, but i'd recommend reaching out to<EMAIL_ADDRESS>for further questions about that!

@Edge not serve HTTP request, will get 308 Permanent Redirect. I can't provide Cert with trial account.

i'm not sure about this either, but i'd again recommend checking with<EMAIL_ADDRESS>they should be able to provide more guidance about configuring HTTP traffic.
i'm going to close this and let further discussion happen in support channels, since this doesn't appear to be related to any bugs in Viceroy itself. thank you again, for reaching our @initdc, and good luck! :heart_decoration:


Use litellm's modify_params with default True

Is there an existing issue for the same bug?

[X] I have checked the existing issues.

Describe the bug and reproduction steps
Litellm has a parameter that the client code can set, litellm.modify_params. It works like drop_params which we are using and have set as True by default.
The idea is that litellm applies a number of transformations on the completion request, to make it compatible with the provider it needs to sent it to. But there are some transformations it doesn't make, unless the user sets modify_params.
For example, for Bedrock it transforms the messages to have the pattern user/assistant/user/assistant, by merging consecutive roles content: code
However, another transformation is to insert a default message when the message was empty, but it's only doing this one if litellm.modify_params is True or the user sends their own default message:
code
Or insert an initial user message for anthropic code
I think we should do with modify_params like we did with drop_params: set it to True by default and let our users configure it from us too (add it to config).
Please note though, that this one seems a little more complicated: our trajectories will not exactly match what was sent to the LLM, and not just in some metadata like drop_params (e.g. drop top_p if the LLM doesn't support setting it and it would error), but the messages themselves. That may pose a question for reproducibility / accurate reporting of benchmarked trajectories? We should probably set it to False for evals.
OpenHands Installation
Development workflow
OpenHands Version
No response
Operating System
None
Logs, Errors, Screenshots, and Additional Context
No response

I agree on this. For eval, i think it should be relatively easy to do, we just hardcode llm_config.modify_params in run_infer.py files inside evaluation/benchmarks/

OpenHands started fixing the issue! You can monitor the progress here.

A potential fix has been generated and a draft PR #5611 has been created. Please review the changes.


[Feature] Ping-command.

It would be great to be able to ping the bot in the channel it is available in to check if it runs or not.
This could be just as small a thing as writing ping <name-of-bot> with a pong response.

In progress in #50 :)
Waiting to get a few other PRs in to minimize the rebase pain but should be in soon.


Support for non-standard ports?

Do you support sending DNS requests to any port other than port 53?
In at least one example of sending a request to <IP_ADDRESS>:5353 the IP was given to pycares which threw an error:
  File "/usr/local/lib/python3.12/site-packages/aiodns/__init__.py", line 55, in __init__
    self.nameservers = nameservers
    ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiodns/__init__.py", line 66, in nameservers
    self._channel.servers = value
    ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/pycares/__init__.py", line 468, in servers
    raise ValueError("invalid IP address")
ValueError: invalid IP address

https://github.com/home-assistant/core/issues/113988

You need to initialize the resolver like so: `r = DNSResolver(nameservers=["<IP_ADDRESS>"], loop=loop, udp_port=5353, tcp_port=5353)
This is a bit clunky, but it's due to c-ares.

Thank you


webkitgtk: broken on i686

Describe the bug
I think it should be marked as broken to avoid frustrating other people. This package is impossible to build without more than 4G address space due to linker memory exhaustion. It can be built only on 64-bit hosts (the same as Firefox).
And that permanently breaks Gnome 3 on i686. It was possible to build it in the past using local modifications, though.

@vvs- what modifications did you used in the past?

Only very few to some Gnome dependencies just to build Gnome itself, like doCheck = false.
AFAIK, there were no modifications at all to webkitgtk. It just required huge swap and to free as much RAM as possible, e.g. running nix-build with only one thread.
Last December I've tried to install NixOS 21.11 and it was impossible to build because of a linker exhausting all memory address space. I've tried both ld and gold. My investigations into other Linux distros revealed that they used cross-compiling tricks to build 32-bit webkitgtk on 64-bit host. I've spent a week before giving up. Right now I'm using only x86_64 arch because of that issue. I suppose it's impossible to fix on native 32-bit host just like Firefox.

I tried different configurations and was able to complete the building without any memory issue by setting separateDebugInfo to false.

I will now try to build firefox.

I tried different configurations and was able to complete the building without any memory issue by setting separateDebugInfo to false.

Interesting. Thanks for trying this. It was very painful to experiment with different configurations as it required too many hours to build on my computer.
AFAIK, Firefox had a different issue which didn't involve linker. It was probably a compiler.
Do you think it's sustainable? I mean, will it still be possible to build next year? Because a year ago it didn't require that trick either. I'm quite pessimistic about browsers on 32-bit architecture as is already evident from Firefox :( Also, there were similar troubles with Haskell (Pandoc) and Qt. Considering that Hydra doesn't have most 32-bit software in a binary cache and that it's often required to set doCheck=false in order to build it, it's really a huge pain to install NixOS on i686 arch.

webkitgtk.overrideAttrs (attrs: { separateDebugInfo = false; }) works great for me. Should add a stdenv.is32bit conditional for this derivation?


⚠ ESPN has degraded performance

In a5ea47b, ESPN (https://espn.com) experienced degraded performance:

HTTP code: 200
Response time: 847 ms

Resolved: ESPN performance has improved in 9c999df.


Wikidata analyzer portal for the props used for a type of thing (e.g. P279* celll)

A query like
SELECT ?prop_base ?prop_baseLabel (COUNT(?value) AS ?valueCount)
WHERE {
  # Find subclasses of 'cell' (Q7868)
  ?subclass wdt:P279* wd:Q7868 .

  # Retrieve the properties used in these subclasses
  ?subclass ?property ?value .

  ?prop_base wikibase:directClaim ?property .

  # Filter out properties specific to instances
  FILTER(STRSTARTS(STR(?property), "http://www.wikidata.org/prop/direct/")) .

  # Get the data type of the property
  ?prop_base wikibase:propertyType ?propertyType .

  # Exclude properties where the data type is external identifier
  FILTER(?propertyType != wikibase:ExternalId) .
  # Some IDs have other data types for legacy issues
  MINUS {
    ?prop_base wdt:P31 wd:Q19847637 .
  }

  # Get the labels for properties
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
GROUP BY ?prop_base ?prop_baseLabel
ORDER BY DESC(?valueCount)

But where you can click each property and get the statements using it.

Input of the user should just be the type or the root of the P279* tree or a query that gets the items to be analyzed.


ios background notifications not firing any handler

@mikehardy @helenaford I have a question about msgs with a title and body in swipe up to close state. We are using the latest versions of everything.
Is there ever a time when on ios you send a notification with a title and body and the notification gets delivered to the screen but it does not trigger any of the handlers due to ios blocking the app the some way it does with silent data messages?
I am talking closed state, swipe up to close.
Sometimes I see the getInitialNotification fire, sometimes onforeground fires but then nothing fires over and over.
I notice if i open 5 other apps in the background i see the message on the screen but when clicking the push msg the app opens but also none of the handlers fire.
If I immediately close every app on the device it starts working again, clicking the push msg will open the app and one of the handlers will fire

HI yes, this can happen if the app is in focus mode at all. If it's an important notification, you should send a time-sensitive notification. if it's a chat notification, send a communication type of notification.

@helenaford  We just need to receive the press action so we can navigate within the app. So its not really "important" but its like we send a heres a new survey for you to earn and when the user clicks the app just opens and does nothing so its weird.
@SophieJung7 We do use onForegroundEvent but it does not handle any type = 1 (press) events in these situations. Sometimes it fires a type 3 delivered

@helenaford
How to sent communication type of notification..
Very thanksful if you provide me an any example.
Thanks again..

@airakivela Hi! any updates on this?


KCSIBeacon doesn't work on iOS 8?

I tested this library on iOS 8 (anche iOS 8.1), but currently no longer works.
Any idea why does not work (in my case it does not find an estimote ibeacon)?

bump
Library no longer works with iOS 8.4.1.
It did work with iOS 7.x.

See: https://github.com/Kinvey/KCSIBeacon/pull/5


Error: Installing without docker on ubuntu 20.04 LTS

Hi .
@tdurand
I carefully followed the steps provided here
I have successfully installed darknet but when I try the node.js and MongoDB steps then I am getting the below error.
sudo apt-get update && apt-get install -y --no-install-recommends openssl libcurl3 mongodb-org
Hit:1 http://deb.anydesk.com all InRelease
Hit:2 http://ae.archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://ae.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:6 http://ae.archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:7 https://packagecloud.io/github/git-lfs/ubuntu focal InRelease
Ign:5 https://dl.bintray.com/etcher/debian stable InRelease
Err:8 https://dl.bintray.com/etcher/debian stable Release
  403  Forbidden [IP: <IP_ADDRESS> 443]
Reading package lists... Done
E: The repository 'https://deb.etcher.io stable Release' no longer has a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
amr@amr-HP-Z840-Workstation:~$

So I have installed Node.Js and Monngobd using the below commands
sudo apt install nodejs npm
sudo apt install mongodb
I tested darknet with sample test demo script and i can able to see yolo detection video as a output.
Now, when I try to run the opendatacam then I am getting the below error,
`Process YOLO initialized

Ready on http://localhost:8080
Ready on http://<IP_ADDRESS>:8080
Success init db
Pheew ....! Something unexpected happened. This should be handled more gracefully. I am sorry. The culprit is:  { Error: spawn ./darknet ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
at onErrorNT (internal/child_process.js:415:16)
at process._tickCallback (internal/process/next_tick.js:63:19)
errno: 'ENOENT',
code: 'ENOENT',
syscall: 'spawn ./darknet',
path: './darknet',
spawnargs:
[ 'detector',
'demo',
'cfg/coco.data',
'cfg/yolov4-416x416.cfg',
'yolov4.weights',
'opendatacam_videos/demo.mp4',
'-ext_output',
'-dont_show',
'-dontdraw_bbox',
'-json_port',
8070,
'-mjpeg_port',
8090 ] }
Process YOLO started
(node:34323) [DEP0001] DeprecationWarning: OutgoingMessage.flush is deprecated. Use flushHeaders instead.
`

please advise

Hello, where you able to get a workaround? I am having this on Ubuntu 18.04 LTS

This looks like darknet could not be launched. I can think of two reasons

It is not installed
OpenDataCam does not find the executable in config.PATH_TO_YOLO_DARKNET

Without extra information is is difficult to debug this any further.

This looks like darknet could not be launched. I can think of two reasons

It is not installed
OpenDataCam does not find the executable in config.PATH_TO_YOLO_DARKNET

Without extra information is is difficult to debug this any further.

I figured out darknet was not compiled properly. Unfortunately compiling darknet throws up errors
compilation terminated due to -Wfatal-errors.
Makefile:168: recipe for target 'obj/convolutional_kernels.o' failed
make: *** [obj/convolutional_kernels.o] Error 1

Did you see https://github.com/opendatacam/darknet#how-to-compile-on-linux-using-make? Maybe following the compilation instructions could help...

Sorry, didnt get a notification for this, apparently I needed to update the PATH and LD_LIBRARY_PATH variables as stated  here . Then recompiled darknet and it did successfully. Although after running opendatacam I got a ./darknet: error while loading shared libraries: libcudart.so.10.0: cannot open shared object file: No such file or directory . Solved that by running

sudo cp /usr/local/cuda-10.0/lib64/libcudart.so.10.0 /usr/local/cuda/lib/ && sudo ldconfig
sudo cp /usr/local/cuda-10.0/lib64/libcublas.so.10.0 /usr/local/cuda/lib/ && sudo ldconfig
sudo cp /usr/local/cuda-10.0/lib64/libcurand.so.10.0 /usr/local/cuda/lib/ && sudo ldconfig

P.S. If i failed to mention before. I ran it on an EC2 gpu instance with this image; Deep Learning AMI (Ubuntu 18.04) Version 32.0

Please follow the setup process of the README here to setup darknet: https://github.com/alexeyab/darknet
And make sure to test darknet before trying to launch OpenDataCam : https://github.com/opendatacam/opendatacam/blob/master/documentation/USE_WITHOUT_DOCKER.md#optional-test-darknet


Add descriptions of ORM and Kuery to What are databases?

The later database guides don't make sense without having the context of what ORM and Kuery are explained.

Closing as fixed by PR #327.


core.remote requires user to be sudoer?

When I run
st2 run core.remote hosts='my.remote.server.com' username='remote_user' password='user_pwd' -- hostname

I get the unexpected answer:
..
id: 5628b1c19ffd460d38381edd
status: failed
result:
{
    "my.remote.server.com": {
        "failed": true,
        "stderr": "remote_user is not in the sudoers file.  This incident will be reported.",
        "return_code": 1,
        "succeeded": false,
        "stdout": ""
    }
}

I would expect it for core.remote_sudo, but not for core.remote. My bad, or a bug?
cheers

Thanks for the report.
I believe there was a bug in the new paramiko based remote runner which we fixed just recently - https://github.com/StackStorm/st2/pull/2044.
If you are using a latest version which uses paramiko runner I would recommend updating to the latest development build (0.14dev - ./st2_deploy.sh v014.dev should do it if you used st2_deploy.sh) where this issue has been addressed.
This build is indeed a development one, but right as we speak we are working on 1.1 release which will be stable and include a fix for this issue. This release should be out very shortly :)

@dakl When you have a time to check it out, please let us know if the latest release mentioned above fixes that issue.
Thanks.

We've run into the same issue.
Would setting use_paramiko_ssh_runner = False (which fixes this) be a recommended quick fix until the bug has been resolved?

@withrocks Yeah, this should do it, or as mentioned above (https://github.com/StackStorm/st2/issues/2103#issuecomment-150206199) you can upgrade to v0.14dev which will soon turn into 1.1 stable.

@Kami Sounds good. I will go for the quick fix for now.

@withrocks @dakl Closing. Please re-open if issue persists even after upgrade.


CLOUDSTACK-8744 Add missing localization (l10n) for several parts in …

…the UI

l10n for the SSH Key Pairs behavior
l10n for Autoscaling / LB sections
l10n for Reset password
l10n on some strings for the installation Wizard
l10n on some strings in VPN/VPC section
l10n on Service offerings sections
improve some FR translations

Thanks @milamberspace it should be possible to merge it before 4.6 RC. Let's find some reviewers.

LGTM

LGTM


Tables: Update Matio Library to v1.5.3

Reported by beutlich on 12 Jan 2016 07:23 UTC
Now that matio 1.5.3 is released ModelicaMatIO could be updated to this version.

Migrated-From: https://trac.modelica.org/Modelica/ticket/1875

Comment by otter on 12 Jan 2016 07:44 UTC
Replying to [ticket:1875 beutlich]:

Now that matio 1.5.3 is released ModelicaMatIO could be updated to this version.

I quickly looked to matio and it seems there are some improvements, but I cannot judge how relevant they are (e.g. support of arrays upto size 263 on 64-bit systems, instead of 231).
My suggestion: If possible include the newest version in MSL (provided all table tests run again without problems).

Comment by beutlich on 12 Jan 2016 08:39 UTC
Resolved by 42b235ead4b23f97cc06bb22af3b0c37a523efa6, acdf596cfd791a95b095f6609d2a73dd0f34c3b6, af5016e44388a1a4909d9a1ef094eb863195a009, 2e278d6feca10ba46ed0803aab21922cbd7f1b99, 81d8975bd3ab1b132d94937f0ad843ed563fa233, 7b05313034370a481707d870a9d18162907693fa, d828731b14ad1ff71a3bea39a1102f0424006e28, 2655c9333424a97d5a66758df81814f1d9e452ff, 0d7b4fb0cddf4504c6b78940a724cb140228f756, 056f3968afcb4f6086bd9fb5ad899a418120fe29 and 5b21b303dff7dac489bd55a5d676f760b626eed1.

Modified by beutlich on 12 Jan 2016 08:39 UTC

Modified by beutlich on 24 Feb 2016 14:08 UTC

Changelog removed by beutlich on 24 Feb 2016 14:08 UTC


Add values to enable auto-discovery in Laravel 5.5

Hello,
I recently made a very simple self-explanatory pull-request to enable auto-discovery for this package. Why did you close it ?
No backward-incompatibilities, installation and configuration would be easier.
I don't get it.
Regards,
Robin

We're not planning to support auto-discovery especially on adding "facades".
And furthermore, failing tests. https://travis-ci.org/orchestral/imagine/builds/317363181

If I fix these mistakes, is there any chance that you'll accept these changes ?

nope
https://twitter.com/crynobone/status/942603922266394624
On Tue, Dec 19, 2017, 2:24 AM Robin Choffardet<EMAIL_ADDRESS>wrote:

If I fix these mistakes, is there any chance that you'll accept these
changes ?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/orchestral/imagine/issues/19#issuecomment-352515392,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKjpkV3r2lfcqpjaFRpLlrvnDUe6Kd5ks5tBq3lgaJpZM4REZIs
.


Update dependency on bazel_skylib

Bazel CI for Bazel@HEAD and rules_proto is currently failing, indicating an upcoming change to Bazel will break rules_proto.
This is because rules_proto depends on a version of bazel_skylib which is incompatible with upcoming Bazel changes. rules_proto should updates its version of bazel_skylib.
As a temporary workaround, one could set --incompatible_disable_depset_items=false to defer this upcoming bazel incompatibility.

Thanks for reporting! I think we haven't upgraded bazel_skylib (+ other dependencies) in a while, so we should do that.
I'll be on vacation for the next few days, so if anyone wants to send a PR for it, go for it. Otherwise I'll send a change later next week.

Looks like this was bumped in https://github.com/bazelbuild/rules_proto/pull/104 -- is this still necessary or desirable?

Could we update to 1.3.0? I can make a PR if you are ok with it


TXTExports & TXTExport features

TXTExport & TXTExports classes can be modified based on two points:

Following the discourse topic, users might need to provide the desired times for TXTExport & TXTExports in Stepsize.milestones to ensure that data is actually exported at these times. As @RemDelaporteMathurin suggested, this situation can be improved, if the missing TXTExport.times are added to Stepsize.milestones during initialisation of the model.

If I'm not mistaken, the current TXTExports class won't export anything if a user doesn't provide TXTExports.times. However, the TXTExport class alows users to export the needed data at all timesteps, if TXTExport.times are not provided. Therefore, the TXTExports can be modified a bit to allow users to export the results at all timesteps. I suppose, it can be done as follows:

class TXTExports:
    def __init__(self, fields=[], labels=[], times=None, folder=None) -> None:
        self.fields = fields
        if len(self.fields) != len(labels):
            raise ValueError(
                "Number of fields to be exported "
                "doesn't match number of labels in txt exports"
            )
        if times is not None:
            self.times = sorted(times)
        self.labels = labels
        self.folder = folder
        self.exports = []
        for function, label in zip(self.fields, self.labels):
            self.exports.append(TXTExport(function, label, folder, times))

@KulaginVladimir thanks for kicking off the discussion.
About the first point, I agree we should ensure that if users don't provide milestones but provide times for the TXTExport then we need to add these times to the milestones (and maybe raise a warning or something).
About the second point, I don't know if we want to keep supporting for TXTExports (plural). I don't know if it's used a lot or not. The only added value is to be able to define times and folder once. On the other hand I think your fix can work. So maybe we can implement it and add a DeprecationWarning specifying we will deprecate this class in the next minor release? what do you think?

@RemDelaporteMathurin

About the second point, I don't know if we want to keep supporting for TXTExports (plural). I don't know if it's used a lot or not. The only added value is to be able to define times and folder once. On the other hand I think your fix can work. So maybe we can implement it and add a DeprecationWarning specifying we will deprecate this class in the next minor release? what do you think?

I think your suggestion is reasonable. Personally, TXTExports appeared to me only in Task4 of FESTIM Workshop.
Shall I open a new PR to start implementing these minor modifications including warning messages to users?

Sure feel free to open a PR!


[Feature] Update governance dependency

Bug Description
Update WindRanger Governance dependency to the newest one.

question: does this mean update to add the new GovernorAlpha or update the existing one
Clarifying question.

Nevermind.


Typo "conatiner" in reference architecture article

Problem description
The networking architecture article contains the typo conatiner instead of container
Problem location

I saw a problem on the following URL: https://success.docker.com/article/networking

Suggestions for a fix
Apart from fixing the typo, you may want to add a commit hook looking for conatiner - a quick GitHub search shows 14 commits and 25 issues

This issue is resolved. If the problem persists, please open a new issue. Thank you.


iOS recording doesnt show up/shows up delayed

Android recording sessions seem to show up in clarity much faster. iOS ones sometimes take quite a lot of time to show up(or sometimes doesnt show up at all).
I havent found any existing Clarity issue for this

Maybe it is a problem of our binding ?

or a placement of initialization method  ?

Maybe updating Clarity.iOS to newest version would resolve this problem ? Because we are on 1.0.0 but 1.0.1 and 2.0.0 are  already out

Bumped iOS to v2.0.0
https://github.com/Kebechet/Maui.MicrosoftClarity/commit/5af5d87d4924e4f4bb4d75c24f1dbcce97712c84

Bumped iOS to v2.1.0
https://github.com/Kebechet/Maui.MicrosoftClarity/commit/978c675dd4aa9a58758eeba4e6f3fab092f5a7b0

Seems to be working with v2.2.2


Release v0.4.0 (closes #51)

I hopefully didn't miss anything in the changelog!
cc @SuperQ

Ah it seems secrets.RICHIH_GITHUB_TOKEN was not set so the artifacts did not upload: https://github.com/RichiH/modbus_exporter/actions/runs/4409395100/jobs/7725704339#step:4:564

Can you link me to the docs/a howto on what I should do? I looked at it with @bastischubert during a call yesterday and we didn't find it.

https://github.com/RichiH/modbus_exporter/pull/53

Release works now: https://github.com/RichiH/modbus_exporter/releases/tag/v0.4.1


Add history persistence to file

Hey there. Thank you for this great tool. I added history saving and loading to file (~/.local/share/clac/history, configurable with XDG env) because I often need to review or amend previous calculations, so I guess other people would find it useful too. Besides, I didn't do much, because Linenoise already has the required functions.

it's still suboptimal, errno should be saved after mkdir because it could theoretically be set by sdsfree

I didn't handle the mkdir return value because there's not much we can do, the app should just ignore any error condition on that directory. If Linenoise can save its history there, it will do so, otherwise it won't.
As for the imports, I copied them from man 2 mkdir


introduce concrete Field type for Manifolds

to close #62 .

I've added some more tests for the complex Euclidean case. It looks like there were problems in the test suite and random points and tangent vectors don't work right now in the complex case.

Code coverage is a little strange, since it says, that Euclidean was roduced but the homepage says it's still 100%. Is it ok to merge this?

Coverage sometimes behaves strangely, I think it's still OK to merge this. I don't see any changes that could actually reduce the coverage of Euclidean.


lib/systems/platforms: remove TI_CPTS override

Motivation for this change
The kernel config fails to build on armv7l because the platform config tries to force the TI_CPTS option to y, but it depends on PTP_1588_CLOCK, which is being compiled as a module. This results in the following error:
QUESTION:       TI Common Platform Time Sync (CPTS) Support, NAME: TI_CPTS, ALTS: M/n/?, ANSWER: y
GOT: y
GOT:
GOT: CONFIG_TI_CPTS:
GOT:
GOT: This driver supports the Common Platform Time Sync unit of
GOT: the CPSW Ethernet Switch and Keystone 2 1g/10g Switch Subsystem.
GOT: The unit can time stamp PTP UDP/IPv4 and Layer 2 packets, and the
GOT: driver offers a PTP Hardware Clock.
GOT:
GOT: Symbol: TI_CPTS [=m]
GOT: Type  : tristate
GOT: Defined at drivers/net/ethernet/ti/Kconfig:81
GOT:   Prompt: TI Common Platform Time Sync (CPTS) Support
GOT:   Depends on: NETDEVICES [=y] && ETHERNET [=y] && NET_VENDOR_TI [=y] && (ARCH_OMAP2PLUS [=y] || ARCH_KEYSTONE [=y] || COMPILE_TEST [=n]) && COMMON_CLK [=y] && PTP_1588_CLOCK [=m]
GOT:   Location:
GOT:     -> Device Drivers
GOT:       -> Network device support (NETDEVICES [=y])
GOT:         -> Ethernet driver support (ETHERNET [=y])
GOT:           -> Texas Instruments (TI) devices (NET_VENDOR_TI [=y])
GOT:
GOT:
GOT:
QUESTION:       TI Common Platform Time Sync (CPTS) Support, NAME: TI_CPTS, ALTS: M/n/?, ANSWER: y
repeated question:       TI Common Platform Time Sync (CPTS) Support at /nix/store/lsby3mmn4imqcc2pymfkw9fqxwmqzpfx-generate-config.pl line 87.

Error in reading or end of file.

Error in reading or end of file.

Error in reading or end of file.

The override was added in https://github.com/NixOS/nixpkgs/pull/24229, and it looks as though it was done to fix a compile issue (rather than a runtime issue), but it's not clear. Perhaps @abbradar can remember.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

It looks like the problem I ran into will resolve itself in 5.11 with https://github.com/torvalds/linux/commit/8195fceca0316c36c87db25750a5c5db84ded4e7, but we might as well get rid of the override because it isn't needed anymore.

@ofborg eval
@lopsided98 does this PR still apply?

Yes, I'd like to get rid of old cruft, and there's no way removing the override can break anything with >=5.11 since the defconfig sets it.


Add pandas and polars as dependencies in pyproject.toml

@MarcoGorelli it looks like the test you added in pandas is being skipped because polars is not installed (and it isn't installed with dateframe-api-compat). Feel free to specify a min version as needed.
https://github.com/pandas-dev/pandas/actions/runs/5811935873/job/15756279828
SKIPPED [1] pandas/tests/test_downstream.py:344: could not import 'dataframe_api_compat': No module named 'polars'

ooh, thanks for noticing Matt! Rather than making them required dependencies, I think I just need to make the imports lazy - you should able to use the pandas standard-compliant methods without having polars installed

I think I just need to make the imports lazy

Yes this would be a nice alternative. And/or for pip specifically could make dataframe_api_compat[pandas, polars] in the future


inconsistencies for rodauth.authenticated_by between controllers and RoadauthApp

This might be a Rodauth bug rather than a rodauth-rails one.
I've configured my RoadauthApp to use OTP.
class RodauthApp < Rodauth::Rails::App
  configure(json: true) do
    # List of authentication features that are loaded.
    enable :create_account, :verify_account, :verify_account_grace_period,
      :login, :remember, :logout,
      :close_account, :two_factor_base, :otp

  route do |r|
    rodauth.load_memory # autologin remembered users
    r.rodauth # route rodauth requests

    Rails.logger.info '  -- rodauth.authenticated_by'
    Rails.logger.info rodauth.authenticated_by.inspect
  end
end

When logging in, and entering OTP code:

In controller: rodauth.authenticated_by # => ["password", "totp"]
In RodauthApp: rodauth.authenticated_by # => ["password", "totp"]

So far, so good.
Now, I'm changing the "remember settings" by visiting /remember. When clicking "Remember me" then "Change Remember Setting", I still have the same output in the controller and in RoadauthApp (rodauth.authenticated_by # => ["password", "totp"])
However, after modifying the remember setting and trying to access a protected resource:

In controller: rodauth.authenticated_by # => ["password", "totp"]
In RodauthApp: rodauth.authenticated_by # => ["remember", "totp"]

I'm not sure this is a bug, but the behavior seems weird.
I'll be happy to give you an app to reproduce this

Thanks for the report. It's not likely that this is related to rodauth-rails, but an app that reproduces the issue would be great, because then we can find the problem and possibly send a patch to Rodauth.

I have an app playground I am using to play with this lib. You will find it here: https://github.com/nicolas-besnard/rodauth-rails-otp
You should be able to see the reproduction. Let me know if there's any issue and I'll create a smaller app

The base.rb file define a session method that use the scope of the app
On the other hand, jwt.rb redefines this method in case of a JSON request. Maybe this method should call super in case it's a JSON request but their not JWT token? I tried that locally and it's working. I'll need more time to see the impact of this change

Good catch, yeah, that might the the issue. I don't yet fully understand why JWT is implemented this way (i.e. why does the session need to be cached in an instance variable).

I'll consider this one resolved as you seem to have found the solution in https://github.com/jeremyevans/rodauth/issues/101.


同步dubbo主干到私有仓库

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 13 committers have signed the CLA.:white_check_mark: zonghaishang:x: beiwei30:x: Authorlove:x: qinliujie:x: chickenlj:x: zhangyinyue:x: manzhizhen:x: wenshao:x: DeadLion:x: yuyijq:x: stoneapple:x: HadesJK:x: gdsh954You have signed the CLA already but the status is still pending? Let us recheck it.


Oh Hell: Don't bid below number of "sure" tricks

Takes into account the number of consecutive "boss" trump in a hand to determine a minimum bid. Then uses this when the hook is active to bump the bid up when the desired bid is unavailable if bumping down would go below the minimum number of guaranteed tricks.
Fix #59

/azp run


As a team, we need infrastructure for proving message inclusion within a given aggregate root

From epic #1808

[ ]  Add infrastructure for proving some outboundRoot exists in the aggregateRoot
[ ]  Add infrastructure for proving some message hash exists in an outboundRoot
[ ]  Create gelato task that will process a message when ready

How Do

Here is the new interface for proveAndProcess:

  function proveAndProcess(
    ISpokeConnector.Proof[] calldata _proofs,
    bytes32[32] calldata _aggregatorPath,
    uint256 _aggregatorIndex
  ) external {

The Proof struct in proveAndProcess args is a proof submitted for each message in the batch.
  struct Proof {
    bytes message;
    bytes32[32] path;
    uint256 index;
  }

Each batch of messages must share a common root - meaning they must all come from the same origin chain.

We don't really need to worry about batching for rn, just call proveAndProcess and pass just a singular [Proof] as first arg for each message as they come

Just to review:

There's an **originRoot **(AKA outboundRoot) coming from an origin chain that contains a bunch of messages going to various other spoke chains. Each of these messages, when they were dispatched, had an index in the root.
The originRoot is bridged to hub's RootManager where it is aggregated into an aggregate tree (which is new behavior in this branch).
When you call propagate it's going to send out the aggregate tree's current top root, which will include all originRoots that have been thus far aggregated in the hub. So an originRoot would be a leaf in the aggregate tree.
When this happens, an event is emitted:
  event RootAggregated(uint32 domain, bytes32 receivedRoot, uint256 index);

^ the origin domain of the originRoot, the originRoot itself, and the index of the originRoot in the aggregate tree. We need to make a note especially of this last thing.
When that aggregateRoot arrives at a destination spoke, we can update our 'list' of which originRoots that are now 'provable'.
In order to prove any given valid message using <SpokeChain>SpokeConnector.proveAndProcess(...), you need to provide:

The message bytes obvi, Proof.message
Message Proof.path (AKA the proof), which should be 'instructions' on how to find the message in the originRoot
Message Proof.index in the originRoot
aggregatorPath, which is the proof of inclusion of the originRoot
aggregatorIndex, which comes from the bold text I highlighted above ^^

For generating the Proof.path and the aggregatorPath, you can use merkletreelib.js library.

One key component here is that in order to generate the path/proof you need, you need to have a snapshot of the merkle tree when roots get sent/propagated.
So, if an originRoot containing 20 messages is sent from a given spoke chain, we'll need to take a snapshot of that current tree (i.e. the one where originRoot == tree.root) in order to generate a proof of inclusion for each of those 20 messages.
We'll need to also take a snapshot of the aggregate tree whenever a propagate occurs. If there's 10 domains in total that we're servicing, that means we'll need to generate 10 proofs - one for each originRoot that's included in the aggregateRoot.
(NOTE: if you've already proven an originRoot exists in an aggregateRoot, you don't have to prove it twice. In fact, you can just leave _aggregatorPath and _aggregatorIndex args blank in that case.)

this should just be the offchain component, related to #1729
should use the merkletreelib.js library to generate proofs

Please add your planning poker estimate with Zenhub @rhlsthrm