Vertical control bar fix

What

Set width of ControlButton and inner tool tip to 100%
The above change needed the whitespace of text set to 'nowrap' or else we get this:

Why

https://skype.visualstudio.com/SPOOL/_workitems/edit/2657885
How Tested

On storybook canvas in German:
https://user-images.githubusercontent.com/79475487/144939120-35e4c41d-f0c1-487f-b7b6-c21ebf370587.mp4
ALTERNATIVE:
The vertical control bar gets pretty wide with long button text. I can limit the width by setting a max width and setting text-overflow to 'ellipsis' and this is the result:
https://user-images.githubusercontent.com/79475487/144938647-43e3523a-f607-4028-9e52-8641aa72f8df.mp4
Will confirm with Alex P.
Process & policy checklist

[ ] I have updated the project documentation to reflect my changes if necessary.
[ ] I have read the CONTRIBUTING documentation.

Is this a breaking change?

[ ] This change causes current functionality to break.

Vertical looks like it is missing some concept of right padding?
Does it seem more correct to have the text be centered when in vertical so we have equal padding on both sides?

Vertical looks like it is missing some concept of right padding? Does it seem more correct to have the text be centered when in vertical so we have equal padding on both sides?

Thanks for catching that. I only checked dockedLeft and floatingLeft.


No programmatic way of modifying Extra

Self explanatory.

Hmm, what are ExtraFlags?

Things like

So these are the Make-compatible arguments that can be implemented on top of Shake without modifying the underlying Shake, so modifying them in Shake is not really possible - you're too far down the abstraction pile by that point. In general, they usually have rough equivalents in Shake, but one or two (say Color, #49) might be things that deserve to be in ShakeOptions. Were there any particular ones that looked useful to you?

NoTime was the one I wanted (I was writing a test suite and I need the output to be as deterministic as possible.)

That seems reasonable - NoTime is a bit special, I'll promote it to a flag. The original intention was that people who didn't want that should use shake, not shakeArgs, but now there's too much useful stuff in shakeArgs to make that a general recommendation.


Was this what powered WebSequenceDiagrams.com? (sorry if this is a re-ask)

Was this what powered WebSequenceDiagrams.com?

No.
We shamelessly copied their syntax and made a open source library that others could easily use.


Freeze mods with broken download links

Here's a script to search CKAN-meta for broken download links.
It turns out that if you tell HTTP to use a HEAD request instead of GET, it returns the success or failure status without downloading the actual file, which is very handy for saving time and bandwidth. Since the HEAD version of CKAN can fall back to archive.org, the script does that as well, so any mods with broken primary download links but working archive links will be considered working.
This pull request freezes the mod versions caught by one pass of the script as undownloadable. It should remove 234 CkanModule instances from everyone's registry.json, out of 12465 total, about 1.8%.

The script mishandles epochs; the archive.org URLs replace the colons with hyphens, but the script was using the colons. Closing; will submit a replacement when this is fixed.


Allow changing the readiness/liveness probes

What does this PR do?
This will add the following two options under ports>traefik:

readinessProbe: {}
livenessProbe: {}

If any of these is set the default httpGet will be replace the corresponding pod probe.
The examples show how an exec with wget can be used instead.
Motivation
Information about motivation can be found in the issue https://github.com/traefik/traefik-helm-chart/issues/479
More

[x] Yes, I updated the chart version

Additional Notes
Please let me know if the solution is a bit too "open". I'd just like to switch the httpGet with exec, which can be done with less changes to values.
readinessProbe: {}
  exec:
    command:
      - "wget"
      - "--no-verbose"
      - "--tries=1"
      - "--spider"
      - "http://localhost:9000/ping"
  failureThreshold: 1
  initialDelaySeconds: 10
  periodSeconds: 10
  successThreshold: 1
  timeoutSeconds: 2

Hello @AndreasVikke
Thanks a lot for opening the PR.
I've just read the related issue #479 and I wonder whether changing to exec from built-in httpGet solve your problem; that is related to the high resource consumption on a cluster where Traefik has been deployed.
Personally, I was using wget in a Docker-based environment and had a real use case to replace Kubernetes healthprobes from HTTPGet to exec and use wget from the Traefik image.
Thanks for the additional information.

@jakubhajek
I have run into a problem where 2-3 pods restarts cause the probes fail. I've noticed that the restarts happens around the same time the nodes are in demand. I run my traefik as a DaemonSet, and it only happens on those 2-3 nodes.
I am not sure if exec will help with the problem but before i can test it in my setup i need to ability to change the probes in helm chart

but before i can test it in my setup i need to ability to change the probes in helm

Well. If this is really the case, you can publish your patched chart to any HTTP repository you have available, and use this as a source. Eg:
[... package from git root ...]
helm package ./traefik
cp ./traefik-x.y.z.tgz /path/to/local/helm-custom-charts/
helm repo index /path/to/local/helm-custom-charts --url https://repository.example.com/helm/charts/
rsync -avWxP /path/to/local/helm-custom-charts/* root@repository.example.com:/var/www/helm/charts/
[... then use your custom repo ...]
helm repo add utgb https://repository.example.com/helm/charts
helm repo update
helm repo list

Though in my experience, first you troubleshoot the issue, fix it, and only then you would submit a pull request.
If you're not sure this fixes anything: why should it be merged into upstream?
I kinda agree with jakubhajek here: I doubt running a wget through exec probe would be faster than the native httpGet.
As a starting point: when my ingress controllers are restarted by kubelet, the issue is always related to resource consumption on the corresponding node. specifically CPU. or arguably, liveness/readiness timeouts beeing to low, while overall CPU usage slow things down.
A way to work around this --- assuming this is indeed your problem -- would be to ensure that:

make sure your ingress have resource requests set (even better: set resource limits as well)
the difference between resource limits and requests allows for a reasonable overcommit (or no overcommit at all), for all workload running on your cluster, likely to be collocated with your ingress controllers
there are no pods with no resource limits/requests
maybe consider dedicating nodes to your infrastructure services (ingress, monitoring, logging, ...) as it used to be done in OpenShift3. That wasn't the worst idea: would prevent devs working on your cluster from tampering with infrastructure deployments

I will look more into this. Thanks for the help, and sorry for the inconvenience.


Using --target-dir makes Cross look for libraries on host

Checklist

[X] I've looked through the issues and pull requests for similar reports

Describe your issue
If I run cross build, it pulls the missing Rust toolchain and runs the build step in Docker.
If I run cross build --target-dir /some/path, it doesn't and complains about a library missing on my host (which is a dependency of my project).
I don't know why this happens, but it seems like providing --target-dir makes Cargo perform some tasks on the host instead of going directly in the container.
What target(s) are you cross-compiling for?
aarch64-unknown-linux-musl
Which operating system is the host (e.g computer cross is on) running?

[ ] macOS
[ ] Windows
[X] Linux / BSD
[ ] other OS (specify in description)

What architecture is the host?

[X] x86_64 / AMD64
[ ] arm32
[ ] arm64 (including Mac M1)

What container engine is cross using?

[X] docker
[ ] podman
[ ] other container engine (specify in description)

cross version
0.2.5
Example
No response
Additional information / notes
No response

can you please post the logs when cross is also provided with -v

we might be resolving the paths wrong when using --target-dir, but we shouldn't as all that data comes from cargo metadata


The user should be able to add issues in the github.

Is your feature request related to a problem? Please describe.
It is hard to analyze manually all forms from the firebase. Some of the ideas may be good and useful to implement.
Describe the solution you'd like
Use the GitHub API to let the user to create an issue/feature directly in the GitHub.

I will think about integrating this


how to get exact Probability

I want to train with custom data and get the probability of result. How can???
Thanks

I'm note sure I fully understand the question, but in general this model outputs a single scalar number in the interval [0,1], which can be interpreted as a probability of a click.

So If I want to use this in recommender system, is the process to predict click for all products in the given context? Or is there any better way like get embeddings for the input and search for closest products via faiss or other similarity search algo?

It all depends on your application. This particular model just predicts a click from a context.

@mnaumovfb  the application would be recommender for ecommerce website. Maybe I could just get rid of the last layer after the training and get full embeddings as it is done with visual search

You will find a lot of scientific literature about this topic in KDD. Feel free to give it a try.


fix: allow to manually move dev menu to avoid conflicts

Summary:
This PR allows users to move dev menu to avoid conflicts with their custom ornaments.
Changelog:
[VISIONOS] [ADDED] - allow to manually move dev menu to avoid conflicts

Test Plan:
Test if dev menu ornament can be moved

cc @thiagobrez, would you be able to test it in your app?

@thymikee I'm using a custom setup on my app with native TabViews, so I need to add the DevMenu myself, but it is not exported.
Already synced with @okwasniewski and he is aware, he will release a fix soon
var body: some Scene {
    WindowGroup {
      TabView {
        RCTRootViewRepresentable(moduleName: "visionary")
          .tabItem {
            Label("Home", systemImage: "house.fill")
          }
        RCTRootViewRepresentable(moduleName: "SettingsScreen")
          .tabItem {
            Label("Settings", systemImage: "gear")
          }
      }

      // Works great
      .ornament(attachmentAnchor: .scene(.bottom)) {
        VStack {
          Button("Hey!") {}
        }
        .glassBackgroundEffect()
      }

      // Error: Cannot find 'DevMenuView' in scope
      .toolbar {
        DevMenuView(placement: .bottomOrnament)
      }
    }
  }

After checking @thiagobrez custom solution I took a different approach. Now the dev menu is attached to RCTRootViewRepresentable so even with something totally custom you will still get the dev menu ornament:


UNETR: Coping with limited data

Hello,
First of all, thank you very much for you great work!
I would have a question regarding how you coped with the issue of having only very limited training data available (spleen segmentation: 41 CT scans). Transformer based architectures like ViT or also detectors like DeTr have shown to only perform well when there is huge amount of labeled data available (DeTr lower bound of 2D images ~15k to train from scratch) and are known to converge very slowly. So I would think that training a 3D transformer based architecture like UNETR would even be more data hungry and result in overfitting as they converge so slowly and there is only limited data available.
So my question is basically: what are in your opinion the key-factors of the success of your approach when it comes to limited data? Is the random sampling to 96x96x96 the main factor that tackles this issue? Wouldn't the performance increase if you wouldn't do random sampling and instead use the whole ct scan as input to have complete global information for attention?
Furthermore, I would be interested in why your transformer encoder converges so quickly (10h) in comparison to original ViT.
I would be very happy if you could answer my questions.
BR Bastian

I think they did a 10-model ensemble and produced the best accuracy.

Hello, First of all, thank you very much for you great work!
I would have a question regarding how you coped with the issue of having only very limited training data available (spleen segmentation: 41 CT scans). Transformer based architectures like ViT or also detectors like DeTr have shown to only perform well when there is huge amount of labeled data available (DeTr lower bound of 2D images ~15k to train from scratch) and are known to converge very slowly. So I would think that training a 3D transformer based architecture like UNETR would even be more data hungry and result in overfitting as they converge so slowly and there is only limited data available.
So my question is basically: what are in your opinion the key-factors of the success of your approach when it comes to limited data? Is the random sampling to 96x96x96 the main factor that tackles this issue? Wouldn't the performance increase if you wouldn't do random sampling and instead use the whole ct scan as input to have complete global information for attention?
Furthermore, I would be interested in why your transformer encoder converges so quickly (10h) in comparison to original ViT.
I would be very happy if you could answer my questions. BR Bastian

I think you pointed a very good point.  If you read the paper, when they trained with only 30 cases, for the standarded challange, it produced around 0.85 accuracy. When they simply increase the training data to 80, it produced 0.89 for the UNETR. Of course for all of them, they used a 10-model ensemble inference. I am more curious about their swin-UNETR results though.

@overbestfitting Thanks for your message! So do you think that the ensemble inference is what allows us to cope with a dataset this limited? I would think that an ensemble inference only leads to a slight improvement.

@overbestfitting Thanks for your message! So do you think that the ensemble inference is what allows us to cope with a dataset this limited? In the code I didn't find the part referring to ensembles so far. I would think that an ensemble inference only leads to a slight improvement.

I am not sure! But I would guess their additional 50 patients dominate the accuracy, according to the UNETR paper.

Hi @bwittmann,
Thanks for the insightful comments. I'd try to address each item in the following:

I believe the use of a Conv-based decoder, as in UNETR, introduces desirable properties such as inductive image bias that allow the model to cope with different dataset sizes. For instance, BTCV is a small dataset, yet the performance is very competitive.

You are right in the sense that using the entire CT increases the performance. However, it increases the memory consumption significantly which hinders the training process. As such, randomly cropped samples are used. Even in this case with the cropped input, UNETR with its ViT encoder has a larger receptive field than those of CNNs with limited kernel sizes (e.g. 3 x 3 x 3). Hence, it is still beneficial to use ViT-based encoder for feature extraction. I'd like to mention that memory-aware ViT for 3D medical image analysis seems to be a very nice research topic which requires further work.

Similar to 1, the Conv-based decode plays an integral role for faster convergence. However, pre-training the standalone ViT still requires lots of data, which is expected.

I hope I was able to answer some of these questions.
Kind Regard

Hi @overbestfitting,
Thanks for the comment. Similar to all previous state-of-the-art models for BTCV, use of additional data is important, and we followed the same trend when submitting to the leaderboard. However, our models (i.e. UNETR or Swin UNETR) demonstrate state-of-the-art performance even within our internal limited dataset, comparing to other approaches such as nnUnet. Hence, the success of our work is not dependent on the use of extra data.
Kind Regards


Update eduVPN to 3.2

Signed-off-by: Simon Rozman<EMAIL_ADDRESS>
[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[X] Does your manifest conform to the 1.1 schema?

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

Microsoft Reviewers: Open in CodeFlow

/azp run


Only loading *.lua files from script directory. Fixes #4

Fixes issues where files in the script directory are loaded even if they're not Lua scripts, such as IDE temporary files.

c'mon @arunoda


Remove back button on secure conversation

Remove the back button on all secure conversation screens
MOB-1867

I made some fixes, so could you review additional changes?

!squash


Problem to download Document/Attachments

jsforce = require("jsforce")
conn = new jsforce.Connection({})
conn.login 'username', 'password', (err, userInfo) ->
return console.error(err)  if err
# Now you can get the access token and instance URL information.
# Save them to establish connection next time.
console.log "Access Token: "+conn.accessToken
#console.log conn.instanceUrl

# logged in user property
console.log "User ID: " + userInfo.id
console.log "Org ID: " + userInfo.organizationId
fs = require "fs"
fileOut = fs.createWriteStream('./test.pdf')
docId = 'documentID'
conn.sobject('Document').record(docId).blob('Body').pipe(fileOut)

Hi,  I've asked this question else where but how does one access blob data in the browser where there is not stream to pipe to?  I can see the response data in the client debugger, but I'm not able to access it.  Any help would be greatly appreciated. Thanks, Peter

Got around my issue by using the Connection.request() method instead of blob().

any way you can post your method? i am trying to download attachment from tickets but i have failed miserably

I don't recall the solution but perhaps this link can help:
https://github.com/jsforce/jsforce/issues/223.
On Wed, Dec 21, 2016 at 6:05 PM, Juan<EMAIL_ADDRESS>wrote:

any way you can post your method? i am trying to download attachment from
tickets but i have failed miserably
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/jsforce/jsforce/issues/19#issuecomment-268667320, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAOYnNpUAx51vd-g8LUSd_p6Ba1O0jghks5rKbCcgaJpZM4B0RUo
.

I tried below code and it work fine with only images, still i am not able to download other file e.g. pdf, doc etc
conn.sobject('Document').record(docId).blob('Body').pipe(fileOut)
.on "error", (err) -> console.error err@
Please help me out.

The code is working fine. but when my attachments in salesforce is very large than how much time will this request will wait.


Quests dont work.

When a doble click on quest icon, dont work.

Quests are disabled. And all structure from Quests are removed from Yupi.

Ok, how remove the icon on the navbar please ?

External Variables. ;)


Run F# script does not support F# 4.5

Description
Hi Isaac, thank you for these great tools, I have a F# library that is build with F# 4.5 , this is not complient with your Run F# script, I'm running it on a VS2017 Hosted Agent,
I have tried setting the FSharp version Parameter to 4.5 but that give me a Path not found error.
Repro steps

Run a script that is build with F# 4.5 via the run F# script and set FSharpVersion parameter to 4.5

Expected behavior
I expect the Script to Run and the fsi.exe path to support F# 4.5
Actual behavior
the path is made to be somthing like : C:\Program Files (x86)\Microsoft SDKs\F#\4.5\Framework\v4.0\fsi.exe"
This path does not exist.
Known workarounds
I can make a simple CMD line task and then hardcode the path to a place on the Agent where F#4.5 is supported
Related information

We are successfully using #30 as a fix for this issue. What are your thoughts on merging that PR, @isaacabraham?

Ooops. Sorry. No complaints. let me merge and then release tomorrow. @matthid anything I need to know about with the release process changes since all the recent work you've done?

Thanks for merging the PR, Isaac!
Do you know what it takes to get the nuget package updated to be the most recent version? Right now I see Last updated | 9/13/2018

Yes, I can push it - I just need to check with Mattias that nothing has changed recently. Sorry for the delay.

@henrikhannemose just a heads up - i'm trying to deploy but there's an issue with the new script so i need to figure it out. please bear with me.

No problem. Thanks for the heads up. I appreciate your effort! :)

@henrikhannemose right - can you check to see if the new version has your changes in it? Apologies again for the long time it's taken to push this through - hopefully this is now done, finally.

Thanks, @isaacabraham! It works just as expected 👍


NOT WORKING IN GOOGLE CHROME !PLEASE HELP!!

I downloaded the source code and tried to open gchart.html (under examples directory)in  Google Chrome but the charts or table is not showing up.
Iam getting the  below error
A parser-blocking, cross site (i.e. different eTLD+1) script, https://www.google.com/uds/?file=visualization&v=1&packages=charteditor%2Ccorechart, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://www.chromestatus.com/feature/5718547946799104 for more details.
A parser-blocking, cross site (i.e. different eTLD+1) script, https://www.google.com/uds/api/visualization/1.0/40ff64b1d9d6b3213524485974f36cc0/format+en,default+en,ui+en,table+en,orgchart+en,motionchart+en,gauge+en,annotatedtimeline+en,imagechart+en,corechart+en,charteditor+en.I.js, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://www.chromestatus.com/feature/5718547946799104 for more details.
google.loader.f @ jsapi:23
Failed to load file:///C:/pivottable-master/examples/mps.json: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
send @ jquery.js:9659
I tried invoking through node.js as well but getting the same error.
The same works fine  in IE and Firefox

Are you loading this file straight from disk or via a local server? i.e. does the URL bar start with http or file?
Also, using the same Chrome browser that's causing you issues, does this example load correctly? https://pivottable.js.org/examples/gchart.html


Update UIScrollView+SVInfiniteScrolling.m

Fix bug for re-initializing infinite scrollview

Created a pull request in https://github.com/LawrenceHan/SVPullToRefresh
I will merge it after discusses with you.


feat: add multiprocessing dataloading

[x] torch
[x] paddle
[x] keras - could not get keras to work with passthrough of workers, (and multiprocessing, etc.). By default Keras already behaves as if it has a (single) background process loading data - leaving it at that for now
[x] tests (how?)

FYI @gmastrapas


Add 'cdhome' to make :cd go home on non-Unix system

On Windows and other non-Unix system, :cd without an argument just prints the current working directory instead of moving to the home directory.
It is confusing and inconvenient for me using Vim on various OSs including Windows. Also, there is no reason to use :cd for this purpose because :pwd can be used on all environment.
So I added 'cdhome' option to add a way to make its behavior the same with the Unix way.

On 2021-12-10, バクダンくん wrote:

On Windows and other non-Unix system, :cd without an argument just
prints the current working directory instead of moving to the home
directory.  It is confusing and inconvenient for me using Vim on
various OSs including Windows. Also, there is no reason to use :cd
for this purpose because :pwd can be used on all environment.

The reason for using :cd this way on Windows is that this is how cd
works at the Command Prompt, so it is more natural for Windows
users.

So I added 'cdhome' option to add a way to make its behavior the
same with the Unix way.

How about putting this in your vimrc instead.  It avoids Yet Another
Option.
if has("win32")
cabbrev <expr> cd ((getcmdtype() == ':' && getcmdpos() <= 3) ? 'Cd' : 'cd')
command! -nargs=? -complete=file Cd if !empty(expand("<args>")) | cd <args> | else | cd $USERPROFILE | endif
endif

I think I got that right.  I tested it on Linux, without the
outer if/endif.
Regards,
Gary

Thank you for your comment!

The reason for using :cd this way on Windows is that this is how cd
works at the Command Prompt, so it is more natural for Windows
users.

That may be natural, but not useful. Also, Microsoft recently encourages to switch to PowerShell 7, in which cd (alias of Set-Location) command without an argument changes the working directory to the home directory.

How about putting this in your vimrc instead.  It avoids Yet Another
Option.
if has("win32")
  cabbrev <expr> cd ((getcmdtype() == ':' && getcmdpos() <= 3) ? 'Cd' : 'cd')
  command! -nargs=? -complete=file Cd if !empty(expand("<args>")) | cd <args> | else | cd $USERPROFILE | endif
endif

I have tried similar solution, but it has some problems:

I just don't want to define a command for this simple feature that Unix version already has. Using :Cd command is weird for me.
Your method does not cover a feature that :cd echoes the new working directory. Somehow :cd<CR> echoes, but :Cd<CR> and :Cd Desktop do not. I want to keep this feature because it is helpful.

To meet my wants, I need to write the next script in my vimrc, but it maps <CR> on command line mode so I expect some side effects.
if has('win32')
  function! s:expand_alias() abort
    if getcmdtype() !=# ':'
      return "\<CR>"
    endif
    let cmdline = getcmdline()
    for [pattern, alias] in [
          \   ['^\s*[tl]\?cd\s*$', "$HOME\<CR>\<Cmd>pwd\<CR>"],
          \   ['^\s*[tl]\?cd\s', "\<CR>\<Cmd>pwd\<CR>"],
          \ ]
      if cmdline =~# pattern
        return alias
      endif
    endfor
    return "\<CR>"
  endfunction
  cnoremap <expr> <CR> <SID>expand_alias()
endif

The change of C code is smaller than this script, and would have less side effects.

On 2021-12-10, バクダンくん wrote:

Thank you for your comment!
The reason for using :cd this way on Windows is that this is how cd
works at the Command Prompt, so it is more natural for Windows
users.

That may be natural, but not useful. Also, Microsoft recently encourages to
switch to PowerShell 7, in which cd (alias of Set-Location) command without an
argument changes the working directory to the home directory.

I didn't know that.  Thanks.  I occasionally have to use Power
Shell, but not often.

How about putting this in your vimrc instead. It avoids Yet Another
Option.

if has("win32")
  cabbrev <expr> cd ((getcmdtype() == ':' && getcmdpos() <= 3) ? 'Cd' : 'cd')
  command! -nargs=? -complete=file Cd if !empty(expand("<args>")) | cd <args> | else | cd $USERPROFILE | endif
endif

I have tried similar solution, but it has some problems:
• I just don't want to define a command for this simple feature that Unix
version already has. Using :Cd command is weird for me.

Agreed, but that's what the abbreviation is for.  It changes :cd to
:Cd automatically so you can continue to type :cd.

• Your method does not cover a feature that :cd echoes the new working
directory. Somehow :cd echoes, but :Cd and :Cd Desktop do not. I
want to keep this feature because it is helpful.

I don't care about that myself--it seems redundant--but I'm sure
that a command or function could be crafted to do that.

To meet my wants, I need to write the next script in my vimrc, but it maps
on command line mode so I expect some side effects.
if has('win32')
function! s:expand_alias() abort
if getcmdtype() !=# ':'
return "<CR>"
endif
let cmdline = getcmdline()
for [pattern, alias] in [
\   ['^\s*[tl]?cd\s*$', "$HOME<CR><Cmd>pwd<CR>"],
\   ['^\s*[tl]?cd\s', "<CR><Cmd>pwd<CR>"],
\ ]
if cmdline =~# pattern
return alias
endif
endfor
return "<CR>"
endfunction
cnoremap   expand_alias()
endif
The change of C code is smaller than this script, and would have less side
effects.

I think you could get the behavior you want by modifying my :Cd
command to call a function that would :cd and :pwd as you have done
above.  That would avoid mapping  and should have no side
effects.
Your proposal isn't horrible, it's just one of those things that
could be done with a script and tuned to do exactly what you want
without having to worry about what other users want.
There's usually a trade-off between adding a feature in a script or
in C, and to avoid making Vim more difficult to maintain and to
understand, I usually prefer using a script.
On the other hand, if enough users would benefit from having :cd
behave according to your patch, that would be better than all those
users having to write or copy your script.
Regards,
Gary

$HOME had backslashes while Windows tests because it was evaluated after set shellslash.
I fixed that, and now failing tests are flaky ones.

I think this is common enough to add an option for.  The suggested abbreviation does it quite well, but not exactly right.
And it needs to be copy/pasted, while setting the option in your vimrc is easy.

Hi, @brammool
Thank you for adopting this PR!
However, it seems that the document of 'cdhome' is lost in the patch 8.2.3780.
Please check the options.txt.

Let me update the whole file.


Database Migration Error

I added the package to my project, setup and migrated. However running the migration command fails.
I am using MySQL ver 14.14
The failure was caused by this line in the "create_nikolag_customers_table" migration.
"$table->string('payment_service_type', 25)->unsigned();"
From my understanding you can't unsign a string. Removing "->unsigned()" fixes my issue.
ps. Thanks for the package, it is going to save me a lot of time.

Hello, regarding the issue u were facing it was fixed in the latest version of nikolag/core package, you can look at the latest version and what was fixed (here)[https://github.com/NikolaGavric94/nikolag-core/releases]. Try downloading/updating to the latest version and closing this issue if it resolves ur problem.
I'm glad I was able to contribute :)

Amazing response speed :)
This does fix my problem. However installing the Square package via composer seems to always use core v1.0 (which has the typo). I can manually update core by changing the version in composer.json to 1.0.2
and "composer update" however this causes it to trigger the minimum stability issue warning for the square package stating it requires core v1.0 and wont allow the update. Manually updating Core to 1.0.2 fixes my issue though but wasn't able to achieve the update via composer
New install of either core or square packages are installing core 1.0 instead of the updated 1.0.2

Hmm, can you try doing composer clearcache and then doing composer update? If this doesn't fixes the issue, I'll push a fix immediatelly

I ran both those commands and had the same issue.

if it helps at all changing the composer.json version of core to 1.0.2 and running composer update. This is the error.
Your requirements could not be resolved to an installable set of packages.
Problem 1
- nikolag/square v1.1.0 requires nikolag/core 1.0.0 -> satisfiable by nikolag/core[v1.0.0] but these conflict with your requirements or minimum-stability.
- nikolag/square v1.1.0 requires nikolag/core 1.0.0 -> satisfiable by nikolag/core[v1.0.0] but these conflict with your requirements or minimum-stability.
- Installation request for nikolag/square ^1.1 -> satisfiable by nikolag/square[v1.1.0].

@scottycam I've just pushed a fix, it passes the tests and installs v1.0.2 of nikolag/core package, could you confirm this actually fixed ur issue?

@NikolaGavric94 I just ran composer update and it didn't update to core 1.0.2. I ran composer clearcache and tried again but same thing.
To test I installed a fresh copy of laravel 5.5 and ran "composer require nikolag/square --dev" to install nikolag/square
it installed nikolag/core as a dependency but it installed core version 1.0.0 that has the typo. Does the composer.json file for nikolag/square containing the line "nikolag/core": "1.0.0"  under "required" need to be update?

@scottycam Fresh install should be installing the latest version, because ^1.0 is supposed to install the version >= 1.0 < 2.0.0 as in https://getcomposer.org/doc/articles/versions.md#caret-version-range-,
and in the tests that were ran 8h ago it did indeed install as u can see in the image below..

I'll start a fresh project myself too and i'll try to locate the issue

@scottycam i've just tried to clearcache and run composer install

I think you should be fine now, try updating the dependencies with composer update

Running "composer update" again this morning and it updates correctly. Also tested on that fresh laravel installation I made before deleting it and updated that too, so all good. Thanks @NikolaGavric94 for helping me and fixing the issue so quickly :)


Refactor terminology: Updated 'Parameters' and 'Args' to 'Arguments' for consistency across the codebase.

This PR resolves inconsistencies in the terminology within function and method docstrings across the project, addressing Issue #1968 :  [DOCS] Consistency in function and method docstrings . The following updates have been made:

Replaced occurrences of 'parameter' with 'argument' for improved clarity.
Renamed 'Parameters' and 'Args' sections to 'Arguments' for uniformity.
Standardized the use of 'args' to 'arguments' throughout the documentation.

These changes enhance the readability and consistency of the documentation, making it more intuitive for both contributors and users to navigate and understand.
@FlorianJacta @jrobinAV Please take a look at this PR.

Thank you for your contribution @DevyManish.

Sorry i was little busy with my exams ... what details i need to provide

@RymMichaut pls help me out

Hello,
Could you please provide your full name, full postal address and phone
number?
Thanks
Regards,
PS: I don't work on Wednesdays
https://github.com/Avaiga/taipy/issues?q=is%3Aopen+is%3Aissue+label%3Ahacktoberfest
[image:
https://github.com/Avaiga/taipy/issues?q=is%3Aopen+is%3Aissue+label%3Ahacktoberfest]
https://github.com/Avaiga/taipy/issues?q=is%3Aopen+is%3Aissue+label%3Ahacktoberfest
https://www.linkedin.com/in/rymguerbi/ https://github.com/RymMichaut
Rym Michaut
🧢Head of Digital Marketing & Communcation
📧 @.***
📱+33 6 72 40 28 44
Le jeu. 24 oct. 2024 à 21:02, Manish Gupta @.***> a
écrit :

@RymMichaut https://github.com/RymMichaut pls help me out
—
Reply to this email directly, view it on GitHub
https://github.com/Avaiga/taipy/pull/2046#issuecomment-2436137013, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AHP2YAUIO6MN2UGY2RPY65LZ5E73XAVCNFSM6AAAAABP4N664SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZWGEZTOMBRGM
.
You are receiving this because you were mentioned.Message ID:
@.***>


Ubuntu instructions: add minimum release version

The bpftrace package is available in the Ubuntu universe repository
starting in disco (19.04).

I've asked Canonical for 18.04 as well (and we have it setup at Netflix where it already works on 18.04). But I guess this change is correct as of today!

Thanks. I look forward to an 18.04 package in the Canonical repos.


findatapy logger disables all other loggers

Unfortunately if findatapy marketdata calls are made in the context of a larger python program, it disables other loggers from functioning properly (unless some hacky fix is put in place). It would be great if this could be fixed in the future.
Thanks,
Azmy

What fix did you try? Maybe you need to reconfigure logging.conf file?


Getting this running...

I don't really know about jsp, but when loading (index.jsp) I get XML parsing error right at the begging at <%--.    Tried on ubuntu 10, 12, and win7.    Sadly my group is all C#/.NET users and this just blows our minds.
http://i.imgur.com/7Pab9cT.png

I wonder if anyone's still around.. I've recently taken up the task of getting this running, and I'm hitting plenty road blocks. Not sure what the current issue is due to, that being: SEVERE: Error configuring application listener of class net.socialgamer.cah.StartupUtils java.lang.ClassNotFoundException: net.socialgamer.cah.StartupUtils
I fixed an earlier issue relating to javax.servlet-api.jar which was being exported as part of the .war file, and was conflicting with Tomcat 7's libraries. Now, however, there's this issue, and I'm not sure what to do about it.

Are you trying to host this directly in Tomcat?  I just fire the servlet up in a screen session using mvn clean package war:exploded jetty:run, and use Apache to kick a more friendly URL over to the Java process.

I am :stuck_out_tongue: I'm on Windows, I should probably get a Ubuntu machine running, but haven't gotten around to it. When I run that maven command from within the project directory, it fails due to the same error I've had in eclipse. It's not due to build.properties.example not having been copied build.properties, fyi. The hibernate library doesn't seem to be properly imported, or is the wrong version, because it causes a few errors, which looking in eclipse, have to do with Hibernate.class not having the type variables available, as they were transitioned to StandardDataTypes.class, and also errors regarding org.hibernate.Query being indirectly accessed by imports, but not being part of the build path. Is there something wrong in my development environment, say JDK/JRE version, Tomcat, etc? I've been working with Java for a decent time now, but I've next to no experience with web application development.


More GregTech integration

I've started tweaking every NuclearCraft recipe to use GTCE's machines instead of NC's (because I like integration), but there are way too many...
Would it be possible to add an option to disable all NC machines and add the recipes to GregTech instead ? It is already in the dependencies, and adding recipes is pretty easy (GregicAdditions has some examples for this). Only the recipes involving NC stuff tho, as most other things are already integrated (ingot to molten metal and such).

I don't think I'll do this unless written as a PR, because although the recipe API may be good (I haven't used it before), it would probably still take a little while to implement, and I'm a bit short on time right now which I need to dedicate to more fundamental mechanics of the mod. So yes, I'll leave this here, but I don't know when I'll get to it!

I'll give it a try.

Btw, what scale are you using for time and power ?

That would be awesome! The time and power variables are multipliers of the base processing time/power of the machine, which can be found in the configs :)

I pushed some code for recipe integration on my fork, never done anything like this so I'd like to know if it works on your side... Also I'm gonna need your help for reading the config class, there are way too many fields x) .

Wow, you've done a fantastic job! There are gonna be a lot of happy GTCE players if your work goes to plan.
I'll move over your addition to the active code, and of course credit you on release :)
I'll play around with it a bit - see if there are any duplicates, etc., then get a release sorted.

Thanks ! I just optimized the code a bit (didn't find any machine/recipe without exactly 2 extras).

Also added some code to check through all potential ingredient clashes to prioritise GTCE recipes :)


Allow user to adjust the amount of lines per page

Currently the amount of lines per page is hard-coded to 14, since this is the maximum amount of lines per page. Allowing the user to adjust this value could be useful if they for some reason would not want to use the entire page.

Solved by 05672538b78053d0cbd5c897bec032898b02d64e.


[FEATURE] Please add syncplay support

Describe the feature/change you'd like
Launch and add video to syncplay using a commandline arg, similar to ani-cli

please link syncplay and other stuff to do with that here so I can look into adding support
@jrosenholtz

Here is the syncplay github: https://github.com/Syncplay/syncplay
Here is the ani-cli github: https://github.com/pystardust/ani-cli
ani-cli uses command line arg -s to automatically pull the file into syncplay. Thank you for responding to my feature request

This is now achievable using the player configuration. Please refer to the wiki, link: https://github.com/mov-cli/mov-cli/wiki/Configuration#player


[Enhancement]: Correct name for Launch item

Before Requesting

[X] I have searched the existing issues, and there is no existing issue for my feature request

What feature do you want?
This extension uses a launch item. Would you be able to re-name it so that I know what application it belongs to? I was looking through my launch items recently and found one called "Shangxin Xuo" which looked odd until I realised it belongs to this extension. Giving it the same name as the app/extension would make it easier for people to keep track of what's what on the system.

I have update the launch agent template to contain AssociatedBundleIdentifiers and will release it soon. But a better way is to use SMAppService, I will leave it for a future update. This issue will be marked as low-priority to serve as a reminder.

Released in 0.21.0


Cm 499 delete account and data

Detailed information:
Simply deletes user account from user account table in database.

Closing issues:
List all issues the pull request solve:

#499
closes #499

Test plan (required)

[ x] The PR contains new PyTest unit/integration tests for any function or functional added.
[ x] The PR changes existing PyTest unit/integration tests to keep all tests up to date.
[ x] The PR does not lead to degradation in unit test coverage.
[ x] Project parts affected by changes in this PR was tested manually on your local (using Postman or in any other way). List everything you've tested below:

Deletes user account from account table in database
User can no longer log in after their account is deleted

Codecov Report
Patch coverage: 90.00% and project coverage change: +0.12% :tada:

Comparison is base (e723731) 73.51% compared to head (3e949c8) 73.64%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #501      +/-   ##
===========================================
+ Coverage    73.51%   73.64%   +0.12%
===========================================
  Files           82       82
  Lines         2598     2618      +20
  Branches       314      315       +1
===========================================
+ Hits          1910     1928      +18
- Misses         656      657       +1
- Partials        32       33       +1

Files Changed
Coverage Δ

app/account/routes.py
95.31% <87.50%> (-1.12%)
:arrow_down:

app/account/schemas.py
100.00% <100.00%> (ø)

app/models.py
100.00% <100.00%> (ø)

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

Hi @danmash
The front end is reporting getting this error from the database when using
this branch and testing to delete a user account:
2023-09-25 10:01:19 <IP_ADDRESS> - - [25/Sep/2023 08:01:19] "POST
/user-account HTTP/1.1" 500 -
2023-09-25 10:01:19 Traceback (most recent call last):
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line
1276, in _execute_context
2023-09-25 10:01:19     self.dialect.do_execute(
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line
593, in do_execute
2023-09-25 10:01:19     cursor.execute(statement, parameters)
2023-09-25 10:01:19 pyodbc.IntegrityError: ('23000', '[23000]
[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The DELETE statement
conflicted with the REFERENCE constraint "fk_sessions__user_uuid__users".
The conflict occurred in database "sqldb-web-prod-001", table
"dbo.sessions", column 'user_uuid'. (547) (SQLExecDirectW)')
2023-09-25 10:01:19
2023-09-25 10:01:19 The above exception was the direct cause of the
following exception:
2023-09-25 10:01:19
2023-09-25 10:01:19 Traceback (most recent call last):
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask/app.py", line 2464, in
call
2023-09-25 10:01:19     return self.wsgi_app(environ, start_response)
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask/app.py", line 2450, in
wsgi_app
2023-09-25 10:01:19     response = self.handle_exception(e)
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask_cors/extension.py", line 165,
in wrapped_function
2023-09-25 10:01:19     return
cors_after_request(app.make_response(f(*args, **kwargs)))
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask/app.py", line 1867, in
handle_exception
2023-09-25 10:01:19     reraise(exc_type, exc_value, tb)
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 39, in
reraise
2023-09-25 10:01:19     raise value
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask/app.py", line 2447, in
wsgi_app
2023-09-25 10:01:19     response = self.full_dispatch_request()
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask/app.py", line 1952, in
full_dispatch_request
2023-09-25 10:01:19     rv = self.handle_user_exception(e)
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask_cors/extension.py", line 165,
in wrapped_function
2023-09-25 10:01:19     return
cors_after_request(app.make_response(f(*args, **kwargs)))
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask/app.py", line 1821, in
handle_user_exception
2023-09-25 10:01:19     reraise(exc_type, exc_value, tb)
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 39, in
reraise
2023-09-25 10:01:19     raise value
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask/app.py", line 1950, in
full_dispatch_request
2023-09-25 10:01:19     rv = self.dispatch_request()
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask/app.py", line 1936, in
dispatch_request
2023-09-25 10:01:19     return
self.view_functionsrule.endpoint
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask_cors/decorator.py", line 128,
in wrapped_function
2023-09-25 10:01:19     resp = make_response(f(*args, **kwargs))
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/flask_jwt_extended/view_decorators.py",
line 115, in decorator
2023-09-25 10:01:19     return fn(*args, **kwargs)
2023-09-25 10:01:19   File "/app/app/account/routes.py", line 157, in
delete_user_account
2023-09-25 10:01:19     current_user.delete_user()
2023-09-25 10:01:19   File "/app/app/models.py", line 42, in delete_user
2023-09-25 10:01:19
self.query.filter_by(user_uuid=self.user_uuid).delete()
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line
3899, in delete
2023-09-25 10:01:19     delete_op.exec_()
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py",
line 1697, in exec_
2023-09-25 10:01:19     self._do_exec()
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py",
line 1928, in _do_exec
2023-09-25 10:01:19     self._execute_stmt(delete_stmt)
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py",
line 1702, in _execute_stmt
2023-09-25 10:01:19     self.result = self.query._execute_crud(stmt,
self.mapper)
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line
3541, in _execute_crud
2023-09-25 10:01:19     return conn.execute(stmt, self._params)
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line
1011, in execute
2023-09-25 10:01:19     return meth(self, multiparams, params)
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line
298, in _execute_on_connection
2023-09-25 10:01:19     return connection._execute_clauseelement(self,
multiparams, params)
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line
1124, in _execute_clauseelement
2023-09-25 10:01:19     ret = self._execute_context(
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line
1316, in _execute_context
2023-09-25 10:01:19     self._handle_dbapi_exception(
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line
1510, in _handle_dbapi_exception
2023-09-25 10:01:19     util.raise_(
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line
182, in raise_
2023-09-25 10:01:19     raise exception
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line
1276, in _execute_context
2023-09-25 10:01:19     self.dialect.do_execute(
2023-09-25 10:01:19   File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line
593, in do_execute
2023-09-25 10:01:19     cursor.execute(statement, parameters)
2023-09-25 10:01:19 sqlalchemy.exc.IntegrityError: (pyodbc.IntegrityError)
('23000', '[23000] [Microsoft][ODBC Driver 17 for SQL Server][SQL
Server]The DELETE statement conflicted with the REFERENCE constraint
"fk_sessions__user_uuid__users". The conflict occurred in database
"sqldb-web-prod-001", table "dbo.sessions", column 'user_uuid'. (547)
(SQLExecDirectW)')
2023-09-25 10:01:19 [SQL: DELETE FROM users WHERE users.user_uuid = ?]
2023-09-25 10:01:19 [parameters: ('35FEDABF-A881-4A98-8191-BFEECEDE06EC',)]
2023-09-25 10:01:19 (Background on this error at:
http://sqlalche.me/e/13/gkpj)
On Sat, Sep 30, 2023 at 2:35 PM Daniil Mashkin @.***>
wrote:

External Email
@.**** approved this pull request.
Hi @rodriguesk https://github.com/rodriguesk , nicely done 👍 the PR
seems valid, the only difference with the requirement I see is that you are
using POST instead of DELETE, but I think this is fine.
According to docs conversations will be stored in the db after user
deletion with null value
https://docs.sqlalchemy.org/en/20/orm/cascades.html#delete
—
Reply to this email directly, view it on GitHub
https://github.com/ClimateMind/climatemind-backend/pull/501#pullrequestreview-1651751036,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEXL62WSFDKNMSBHXKRDOADX5CGBNANCNFSM6AAAAAA5FKQ4HY
.
You are receiving this because you were mentioned.Message ID:
@.***>

@rodriguesk I am unable to test my change on local due to API errors, I think the solution here is ondelete="SET NULL", because looks like the MSSQL default action is "NO ACTION"

@Svenstar74 you could check this branch again, let me know if you still have issues

@danmash I tested it using postman and still getting the error shown below.
Could you help solve this please? It's a bit too hard for me to figure out. Here's how you can replicate manual testing to get the error I did:

run in the terminal:
docker-compose -p climatemind-backend --profile webapp -f docker/docker-compose.yml up -d --build
Open a browser and turn on dev tools to see the developer console and access the network API calls and responses.
Go to: http://localhost:3000/
Use the browser to make a new fake account with email<EMAIL_ADDRESS>and password testing123
and write down the session id and the JWT token
Replaced the JWT token and Session id in the following cURL code and run the cURL code in the terminal

curl --location 'http://localhost:5000/user-account'
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6dHJ1ZSwiaWF0IjoxNjk2Mjg3MzcyLCJqdGkiOiI0NWE2MTJjMS1lNjQyLTQyMTEtOGRlNC01OTFkMWVhMTUyYmUiLCJuYmYiOjE2OTYyODczNzIsInR5cGUiOiJhY2Nlc3MiLCJzdWIiOiJENzYzMDFGMy00MTk3LTQwMkItQjlBRS04MkYzOEYzMkFBODIiLCJleHAiOjE2OTYyOTQ1NzJ9.595EpNTEkONJJEOQCuAqP_jDASHq8S2aR-5N9lr26Lk'
--header 'X-Session-Id: 6df9b0ad-e427-460f-b654-c680d22e9208'
--header 'Content-Type: text/plain'
--data '{
"currentPassword": "testing123"
}'
<IP_ADDRESS> - - [02/Oct/2023 22:57:19] "POST /user-account HTTP/1.1" 500 -
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
self.dialect.do_execute(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
cursor.execute(statement, parameters)
pyodbc.IntegrityError: ('23000', '[23000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The DELETE statement conflicted with the REFERENCE constraint "fk_sessions__user_uuid__users". The conflict occurred in database "sqldb-web-prod-001", table "dbo.sessions", column 'user_uuid'. (547) (SQLExecDirectW)')
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2464, in call
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.8/site-packages/flask_cors/extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.8/site-packages/flask/compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.8/site-packages/flask_cors/extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.8/site-packages/flask/compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functionsrule.endpoint
File "/usr/local/lib/python3.8/site-packages/flask_cors/decorator.py", line 128, in wrapped_function
resp = make_response(f(*args, **kwargs))
File "/usr/local/lib/python3.8/site-packages/flask_jwt_extended/view_decorators.py", line 115, in decorator
return fn(*args, **kwargs)
File "/app/app/account/routes.py", line 157, in delete_user_account
current_user.delete_user()
File "/app/app/models.py", line 45, in delete_user
self.query.filter_by(user_uuid=self.user_uuid).delete()
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3899, in delete
delete_op.exec()
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1697, in exec
self._do_exec()
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1928, in _do_exec
self._execute_stmt(delete_stmt)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1702, in _execute_stmt
self.result = self.query._execute_crud(stmt, self.mapper)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3541, in _execute_crud
return conn.execute(stmt, self._params)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
return meth(self, multiparams, params)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1124, in _execute_clauseelement
ret = self._execute_context(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
self.handle_dbapi_exception(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1510, in handle_dbapi_exception
util.raise(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise
raise exception
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
self.dialect.do_execute(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (pyodbc.IntegrityError) ('23000', '[23000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The DELETE statement conflicted with the REFERENCE constraint "fk_sessions__user_uuid__users". The conflict occurred in database "sqldb-web-prod-001", table "dbo.sessions", column 'user_uuid'. (547) (SQLExecDirectW)')
[SQL: DELETE FROM users WHERE users.user_uuid = ?]
[parameters: ('D76301F3-4197-402B-B9AE-82F38F32AA82',)]
(Background on this error at: http://sqlalche.me/e/13/gkpj)

@danmash  I don't know why pytest doesn't get these errors... ideally the unit test would actually test this part too, right?

I don't have a test account. I am unable to go beyond Q10 to create the new account.

It seems like the error still occurs:
2023-10-03 13:42:57 <IP_ADDRESS> - - [03/Oct/2023 11:42:57] "POST /user-account HTTP/1.1" 500 -
2023-10-03 13:42:57 Traceback (most recent call last):
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
2023-10-03 13:42:57     self.dialect.do_execute(
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
2023-10-03 13:42:57     cursor.execute(statement, parameters)
2023-10-03 13:42:57 pyodbc.IntegrityError: ('23000', '[23000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The DELETE statement conflicted with the REFERENCE constraint "fk_sessions__user_uuid__users". The conflict occurred in database "sqldb-web-prod-001", table "dbo.sessions", column \'user_uuid\'. (547) (SQLExecDirectW)')
2023-10-03 13:42:57
2023-10-03 13:42:57 The above exception was the direct cause of the following exception:
2023-10-03 13:42:57
2023-10-03 13:42:57 Traceback (most recent call last):
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2464, in __call__
2023-10-03 13:42:57     return self.wsgi_app(environ, start_response)
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2450, in wsgi_app
2023-10-03 13:42:57     response = self.handle_exception(e)
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask_cors/extension.py", line 165, in wrapped_function
2023-10-03 13:42:57     return cors_after_request(app.make_response(f(*args, **kwargs)))
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1867, in handle_exception
2023-10-03 13:42:57     reraise(exc_type, exc_value, tb)
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
2023-10-03 13:42:57     raise value
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
2023-10-03 13:42:57     response = self.full_dispatch_request()
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
2023-10-03 13:42:57     rv = self.handle_user_exception(e)
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask_cors/extension.py", line 165, in wrapped_function
2023-10-03 13:42:57     return cors_after_request(app.make_response(f(*args, **kwargs)))
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
2023-10-03 13:42:57     reraise(exc_type, exc_value, tb)
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
2023-10-03 13:42:57     raise value
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
2023-10-03 13:42:57     rv = self.dispatch_request()
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
2023-10-03 13:42:57     return self.view_functions[rule.endpoint](**req.view_args)
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask_cors/decorator.py", line 128, in wrapped_function
2023-10-03 13:42:57     resp = make_response(f(*args, **kwargs))
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/flask_jwt_extended/view_decorators.py", line 115, in decorator
2023-10-03 13:42:57     return fn(*args, **kwargs)
2023-10-03 13:42:57   File "/app/app/account/routes.py", line 157, in delete_user_account
2023-10-03 13:42:57     current_user.delete_user()
2023-10-03 13:42:57   File "/app/app/models.py", line 45, in delete_user
2023-10-03 13:42:57     self.query.filter_by(user_uuid=self.user_uuid).delete()
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3899, in delete
2023-10-03 13:42:57     delete_op.exec_()
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1697, in exec_
2023-10-03 13:42:57     self._do_exec()
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1928, in _do_exec
2023-10-03 13:42:57     self._execute_stmt(delete_stmt)
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1702, in _execute_stmt
2023-10-03 13:42:57     self.result = self.query._execute_crud(stmt, self.mapper)
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3541, in _execute_crud
2023-10-03 13:42:57     return conn.execute(stmt, self._params)
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
2023-10-03 13:42:57     return meth(self, multiparams, params)
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
2023-10-03 13:42:57     return connection._execute_clauseelement(self, multiparams, params)
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1124, in _execute_clauseelement
2023-10-03 13:42:57     ret = self._execute_context(
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
2023-10-03 13:42:57     self._handle_dbapi_exception(
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1510, in _handle_dbapi_exception
2023-10-03 13:42:57     util.raise_(
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
2023-10-03 13:42:57     raise exception
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
2023-10-03 13:42:57     self.dialect.do_execute(
2023-10-03 13:42:57   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
2023-10-03 13:42:57     cursor.execute(statement, parameters)
2023-10-03 13:42:57 sqlalchemy.exc.IntegrityError: (pyodbc.IntegrityError) ('23000', '[23000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The DELETE statement conflicted with the REFERENCE constraint "fk_sessions__user_uuid__users". The conflict occurred in database "sqldb-web-prod-001", table "dbo.sessions", column \'user_uuid\'. (547) (SQLExecDirectW)')
2023-10-03 13:42:57 [SQL: DELETE FROM users WHERE users.user_uuid = ?]
2023-10-03 13:42:57 [parameters: ('65510044-9406-4D68-A505-29A84EA7D50B',)]
2023-10-03 13:42:57 (Background on this error at: http://sqlalche.me/e/13/gkpj)

@Svenstar74 @rodriguesk I am still unable to test it on my local. Try the new migration I've just pushed.
I think the problem here is that mssql db doesn't set ondelete action
for our foreign keys. I tried the new migration and now I see the action was changed in my local db.

Even if there are still some errors left, you could solve them by moving in this direction.

Update: It's looking good.
I pulled the recent changes and also rebuilt the docker backend stuff and the account was deleted successfully.
Only thing worth mentioning: Deleting may take a few seconds, so if I delete the account (and get logged out) and login immediately afterwards, I'm logged in even though the account is deleted.

note the different behaviour of the 3 foreign keys. Change if needed.

@rodriguesk feel free to merge when ready

Ok, I’m thinking I should switch the method to DELETE before merging.On Oct 6, 2023, at 4:46 AM, Daniil Mashkin @.***> wrote:External Email
@rodriguesk feel free to merge when ready
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>


Flickering at startup on OS 10.13.4

I have been using the screen saver for a while and then recently updated to High Sierra
Since then the screensaver always flickers at the start for a few seconds before it settles
I have a Macbook Pro 13 inch and the display settings are set to more space

++++

++++++++++

Im also on 10.13.4 (17E202). My screen flickers a few seconds after startup.

Also having this issue. "Show with clock" does resolve, but the clock is then shown.

I've noticed that the flickering happens when I hover the front camera... really weird (MacBook Pro 2017 15¨)


CB-1489 SecretValue is duplicated and VaultConfig should be configurable

let's wait for every reviewer to approve

why is everyone added as reviewers?

@keyki unfortunately CODEOWNERS file caused this, github automatically adds every code owner as a reviewer


Add module to write data to tables in GCP bigquery

Add module to support write of reth-indexer data to GCP bigquery.
New module, gcp_bigquery.rs, that will interoperate with existing reth-indexer process / constructs to support writing of parsed data to GCP bigquery.

Support creation / deletion of tables in GCP bigquery according to events specified in reth-indexer-config.json
New block in reth-indexer-config.json with GCP settings and credentials files
Reads / parses CSV files generated by indexer.rs to GCP-compatible formats
Utilizes gcp-bigquery-client library to write
All GCP-related logic and constructs abstracted behind GcpBigQueryClient (in gcp_bigquery.rs)

The following changes here include temporary / tactical modifications to indexer.rs to facilitate testing if/as needed.
Modifying the indexer.rs in an elegant way to accommodate multiple writers is out of scope for this particular PR / integration.
Linked issue for project feature

the latest changes allow for integrating either datasource writer (or both) - a vector of datasources are constructed and passed down through all write functions.

thanks again for the review!   make some edits to address each point.   i'm new to rust, so still learning the constructs.  if there is a better way i could have addressed some of the edits pls don't hesitate to let me know happy to refine / polish it further -

thanks for the review, def. missed some earlier comments (think they were minimized so missed).  will take another sweep through later but improved the error handling for some of the methods to be more canonical / idiomatic rust.


No support for the "red tab" ST7735 displays

The ST7735 display comes in two versions, referred to at Adafruit as "green tab" and "red tab" for some reason (even though the "green tab" ones often come with black tabs, and "red tab" ones often have green tabs). Those two kinds require different initialization code.
The MicroPython driver has a separate class for this, called ST7735R. Not sure how it would be best handled here.

I will make a pull request with the additional class, and then we can discuss it.


migrate_down_to("base") does not downgrate since v0.10.0

Hi,
We run some pytest that make use of pytest-alembic to test some migrations. At the end of such tests, we run migrate_down_to("base") and we've noted that it does not downgrade correctly since v0.10.0 (the schema persists in the test database).
This does not happen in v0.9.1 or earlier.
Thanks!

Can you elaborate what exactly is not downgrading correctly?
I wrote a reproducible example that tests creating a schema in 1 revision, then downgrading to base and asserting it was undone. This appears to work correctly, so there must be some particular aspect that my test is not checking which applies to your process/history.

@DanCardin maybe this is related. On test_upgrade my 44'th migration fails on unique violation error insert. Looks like on this step all insertions in this table already in db, because if i select data in this migration - i see all data, which can be there only after all migrations apply. Maybe, you have thread parallel job, which migrate to head?

@hectormauer As I said before, without more detail I can't repro the issue. I'm going to close this, but if you can describe the issue in a way that helps me reproduce the behavior change, I'd be happy to reopen the issue.

We have exactly the same problem. It might be due to the fact that we are using branches. I tried using version 0.9.1 as suggested by the author, and it works there.

I wonder if https://github.com/schireson/pytest-alembic/pull/110 will fix this incidentally, if it's related to branched histories

Does not help. I did install the git version: pip install git+https://github.com/schireson/pytest-alembic
Its doesn't execute the downgrade function.
Maybe I'll have time to set it up separately later and can give you something to reproduce. At the moment we have to use the 0.9.1 version.

Just re-taking a look through the issues, did you end up resolving this? or otherwise arriving at a MCVE?

Sorry @DanCardin, I no longer work with the Code base that encountered that issue. We just pinned to a previous version, 0.9.1 I think to work around this.
I won't be able to give you a MCVE, so happy to close this issue if you want.


Month error budget burn chart has wrong window

Currently, few panel in dashboard use 32 days time window, It should be 30 days
error: execution: expanding series: the query time range exceeds the limit (query length: 776h1m9.796s, limit: 768h0m0s) (err-mimir-max-query-length). To adjust the related per-tenant limit, configure -store.max-query-length, or contact your service administrator.: details:

Hi @evalsocket!
This comes from Month error budget burn chart panel and is done to make sure we get the full month (although non-required data is filtered then). I guess that the error message you get there is from a Prometheus cloud vendor like AWS or a cortex installation with strict limits.
You can change the Grafana dashboard and change the `[31d:1h] range to a shorter window that adjusts to your needs/limits.
Best,


Add HTML parser

Use some existing, non-strict HTML SAX-parser or port AdguardTeam/AdguardForAndroid#981 to C/C++.

Merged in pull-requests/9


feathers-client in peerDependencies ?

feathers-client package may be in peerDependencies aside admin-on-rest on package.json
I'm not sure, what do you think of that ?

Hi @fonzarely, are you talking about 6bedf17e74b305328472e7a7b46c6ed83739147f?

Yes, you should add 'feathers-client' so that npm/yarn hit a warning when installing 'aor-feathers-client'.

i think you are right.

hey @wedneyyuri or @fonzarely Do you want to do a PR on that?
I am using aor-feathers-client with feathers-client 1.9.x, but some months ago they released 2.x
Can you check if it works with 2.x?

It does not seems to work with feathers-client 2.x since I'm bumping on a bug with my api 'id/_id'. I do not see a way to make admin-on-rest to manages the mapping. It might be a know bug, I'm not sure.

Hi @fonzarely, I'm using<EMAIL_ADDRESS><EMAIL_ADDRESS>and<EMAIL_ADDRESS>and everything is working fine.

I'm bumping on a bug with my api 'id/_id'. I do not see a way to make admin-on-rest to manages the mapping. It might be a know bug, I'm not sure.

You can check https://github.com/josx/aor-feathers-client/issues/16 or https://github.com/josx/aor-feathers-client/issues/16#issuecomment-302902856

Thanks ! this is what I was looking for.

So i merged @fonzarely PR https://github.com/josx/aor-feathers-client/pull/19
But if @wedneyyuri is sure about it is working on 2.x we need to change peerdep to >1.9.x or something like that

No problem for me since I could fix the _id/id issue.


MSSQL Service Bindings/ Instances are not being deprovisioned

I have been trying to figure out why running:  helm delete --purge causes the bindings and instances not to be deprovision in Azure Cloud.
After much time spend I was able to get this error message:
svcat get instances -n dev1
                    NAME                      NAMESPACE       CLASS        PLAN                    STATUS
+-------------------------------------------+-----------+----------------+-------+-----------------------------------------+
  nservicebus-sql-instance         dev1        azure-sql-12-0   basic   DeprovisionBlockedByExistingCredentials

It seems that that is a bug.
What can be used to clean up ectd database and Azure resources?
I also use the database connection being generated thru provisioning via deployment.yaml:
env:
        - name: ASPNETCORE_ENVIRONMENT
          value: "Release"
        - name: SQL_HOST
          valueFrom:
            secretKeyRef:
              name: rabbitmq-sql-secret
              key: host
        - name: SQL_DATABASE
          valueFrom:
            secretKeyRef:
              name: rabbitmq-sql-secret
              key: database
        - name: SQL_USERNAME
          valueFrom:
            secretKeyRef:
              name: rabbitmq-sql-secret
              key: username
        - name: SQL_PASSWORD
          valueFrom:
            secretKeyRef:
              name: rabbitmq-sql-secret
              key: password
        - name: NServiceBus__ConnectionStrings__Persistence

I'm also seeing the exact same issue with MSSQL resources using Helm delete --purge, DeprovisionBlockedByExistingCredentials.
Is this something to do with the way helm is deleting things, or an issue with OSBA?

Hey @kdcllc and @sam-cogan,
The most likely answer is this is related to how Helm deletes things. In general, there isn't any guarantee on order of deletion with Helm, however Service Catalog (via the Broker). There is, however, an order required for the resources service catalog creates.
In the case above:
svcat get instances -n dev1
                    NAME                      NAMESPACE       CLASS        PLAN                    STATUS
+-------------------------------------------+-----------+----------------+-------+-----------------------------------------+
  nservicebus-sql-instance         dev1        azure-sql-12-0   basic   DeprovisionBlockedByExistingCredentials

This status message indicates that that deprovision of the instance is blocked by the existence of a binding. When you do the Helm delete, it is probably issuing the deletes for those Service Catalog resources in parallel or in very short sequence, without regard to the ordering. Things should eventually progress, although those operations are all asynchronous and you can sometimes get into longer backoff waiting periods. For example, when the ServiceInstance is deleted and there is still a binding, Kubernetes/Service Catalog will enter a backoff loop trying to delete it.
It is also possible there is some issue, however, so if you are still seeing this I'd love to look into it more. If you're able to reproduce this, it would be helpful if you can share the Helm charts that you're using (or at least a version of it that creates those resources).

Yeah I am still seeing it, pretty much every time I delete a deployment. I have left the deployment in this state for multiple days and it still does not get cleaned up, and it doesn't seem that I can manually delete them either. Here's an example of the Helm chart used for this:
`apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
name: "{{ .Release.Name }}-{{ .Values.App.Name }}-sqlserver"
namespace: {{ .Values.NameSpace }}
spec:
clusterServiceClassExternalName: azure-sql-12-0-dbms
clusterServicePlanExternalName: dbms
parameters:
location: {{ .Values.Location }}
resourceGroup: "{{ .Release.Name }}-RG"
alias: "{{ .Release.Name }}-{{ .Values.App.Name }}-sqlserver"
firewallRules:
- startIPAddress: "<IP_ADDRESS>"
endIPAddress: "<IP_ADDRESS>"
name: "AllowAll"
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
name: "{{ .Release.Name }}-{{ .Values.App.Name }}-appdb"
namespace: {{ .Values.NameSpace }}
spec:
clusterServiceClassExternalName: azure-sql-12-0-database
clusterServicePlanExternalName: {{ .Values.App.Database_SKU }}
parameters:
parentAlias: "{{ .Release.Name }}-{{ .Values.App.Name }}-sqlserver"

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
name: "{{ .Release.Name }}-{{ .Values.App.Name }}-logdb"
namespace: {{ .Values.NameSpace }}
spec:
clusterServiceClassExternalName: azure-sql-12-0-database
clusterServicePlanExternalName: {{ .Values.App.Database_SKU }}
parameters:
parentAlias: "{{ .Release.Name }}-{{ .Values.App.Name }}-sqlserver"

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
name: "{{ .Release.Name }}-{{ .Values.App.Name }}-appdb-binding"
namespace: {{ .Values.NameSpace }}
spec:
instanceRef:
name: "{{ .Release.Name }}-{{ .Values.App.Name }}-appdb"
secretName: "{{ .Release.Name }}-{{ .Values.App.Name }}-appdb-secret"

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
name: "{{ .Release.Name }}-{{ .Values.App.Name }}-logdb-binding"
namespace: {{ .Values.NameSpace }}
spec:
instanceRef:
name: "{{ .Release.Name }}-{{ .Values.App.Name }}-logdb"
secretName: "{{ .Release.Name }}-{{ .Values.App.Name }}-logdb-secret"`

@sam-cogan thanks for the additional info. Could you share the state of the binding?
svcat get binding <whatever it is called>

My guess is that the binding is failing to delete for some reason. I'll try out your chart and look into it more!

This is what I see:
        NAME               NAMESPACE        INSTANCE              STATUS

+-----------------------------+-----------+---------------------+------------------+
client13-app-apdb-binding     default     client13-app-appdb     UnbindCallFailed

@jeremyrickard I am getting the same  exceptions.

Thanks @sam-cogan and @kdcllc. Will take a dive into this and root cause it.

@sam-cogan I'm attempting to reproduce this today using the chart example you gave above and not having much luck. I don't believe we changed anything in version 1.0.1, but if you could try the latest OSBA and also share the OSBA logs (ideally start osba with log level set to debug) when you see the failure, it would be appreciated:
helm install azure/open-service-broker-azure --name osba --namespace osba \
  --set azure.subscriptionId=$AZURE_SUBSCRIPTION_ID \
  --set azure.tenantId=$AZURE_TENANT_ID \
  --set azure.clientId=$AZURE_CLIENT_ID \
  --set azure.clientSecret=$AZURE_CLIENT_SECRET

I was able to catch some logs
time="2018-07-06T04:16:41Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:42Z" level=debug msg="binding complete" bindingID=9d3514fe-80d1-11e8-b821-0e2b5de3ad56 instanceID=9e5d2eb8-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:42Z" level=debug msg="received binding request" bindingID=319b9be1-80d2-11e8-b821-0e2b5de3ad56 instanceID=31b5ed8c-80d2-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:42Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:16:42Z" level=debug msg="binding complete" bindingID=de64a1fa-80d1-11e8-b821-0e2b5de3ad56 instanceID=de80709f-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:42Z" level=debug msg="received binding request" bindingID=9d3514fe-80d1-11e8-b821-0e2b5de3ad56 instanceID=9e5d2eb8-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:43Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:43Z" level=debug msg="binding complete" bindingID=319b9be1-80d2-11e8-b821-0e2b5de3ad56 instanceID=31b5ed8c-80d2-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:43Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:16:44Z" level=debug msg="received binding request" bindingID=9d3514fe-80d1-11e8-b821-0e2b5de3ad56 instanceID=9e5d2eb8-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:44Z" level=debug msg="received binding request" bindingID=de64a1fa-80d1-11e8-b821-0e2b5de3ad56 instanceID=de80709f-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:45Z" level=debug msg="received binding request" bindingID=319b9be1-80d2-11e8-b821-0e2b5de3ad56 instanceID=31b5ed8c-80d2-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:45Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:45Z" level=debug msg="received binding request" bindingID=9d3514fe-80d1-11e8-b821-0e2b5de3ad56 instanceID=9e5d2eb8-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:45Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:16:46Z" level=debug msg="received binding request" bindingID=de64a1fa-80d1-11e8-b821-0e2b5de3ad56 instanceID=de80709f-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:46Z" level=debug msg="received binding request" bindingID=319b9be1-80d2-11e8-b821-0e2b5de3ad56 instanceID=31b5ed8c-80d2-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:47Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:47Z" level=debug msg="received binding request" bindingID=de64a1fa-80d1-11e8-b821-0e2b5de3ad56 instanceID=de80709f-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:47Z" level=debug msg="received binding request" bindingID=319b9be1-80d2-11e8-b821-0e2b5de3ad56 instanceID=31b5ed8c-80d2-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:47Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:16:48Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:48Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:16:49Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:49Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:16:49Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:50Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:16:50Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:51Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:16:51Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:52Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:16:52Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:53Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:16:59Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:16:59Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:17:10Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:17:10Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED
time="2018-07-06T04:17:31Z" level=debug msg="received unbinding request" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56
time="2018-07-06T04:17:32Z" level=error msg="unbinding error: error executing service-specific unbinding logic" bindingID=5b868769-80d1-11e8-b821-0e2b5de3ad56 error="error dropping user \"iinqk5yvv9\": mssql: The database principal owns a schema in the database, and cannot be dropped." instanceID=5b906a27-80d1-11e8-b821-0e2b5de3ad56 status=UNBINDING_FAILED

I googled The database principal owns a schema in the database, and cannot be dropped. Looks it is for security reason, a schema owner can't be deleted unless it transfers the ownership to any other database principle (usually dbo). We can make OSBA list and transfer the schema ownerships in unbinding. Should it?

I think that's a lot more work than just changing the order of the deprovosioning process. If the databases were dropped before the users were dropped from the server, wouldn't that achieve the same effect?

I think that's a lot more work than just changing the order of the deprovisioning process. If the databases were dropped before the users were dropped from the server, wouldn't that achieve the same effect?

No can do. The lifecycle of a service is this:

Created (provision)
App needs to use it (bind)
App no longer needs to use it (unbind)
Service no longer needed (deprovision)

Just because one app (possibly out of many) no longer needs to access a given service instance, doesn't mean it's safe to make that service instance go away (e.g. drop the db in this case). Others may still be using it.
In terms of enforcing this lifecycle-- that's not even our decision. The platforms that utilize brokers such as ours (for instance Kubernetes Service Catalog or Cloud Foundry) follow and enforce that model.

I googled The database principal owns a schema in the database, and cannot be dropped. Looks it is for security reason, a schema owner can't be deleted unless it transfers the ownership to any other database principle (usually dbo).

I don't have much experience with SQL Server, but this isn't very surprising to me. I ran into what I assume was the same thing when implementing the PostgreSQL module...
In PostgreSQL, every object in a schema (tables, for instance) is owned by some "role" (which is really a principal that could be either a user or a group). In my first, naive attempt to create that module, I didn't really do anything special with ownership. Here's what happened: If a bound user created objects in the schema (run a database migration, for instance), all those objects belonged to that role (user). At that point, we couldn't unbind (drop) that role (user) because it's not allowed to orphan all those objects they created.
I suspect the same is going on here.

We can make OSBA list and transfer the schema ownerships in unbinding. Should it?

That seems complicated. Even if it worked, there would be another issue lurking around the corner (without an unbind ever coming into play):

DB is provisioned
App 1 binds
App 1 runs some migrations; now owns all objects in schema
App 2 binds
App 2 can't read/write any of the objects even though they bound successfully

Here's how I solved for both of these problems in PostgreSQL. When provisioning a database, I created a role (group) with the same name as the database and assigned ownership of that new database to that group. Upon bind, the newly created user is assigned to the role (group) that owns the database and (very important) is altered to that the default role (group) assumed by the user when they connect to the database is the role (group) that owns the database. The result is that any objects that get created by that user will belong to the group; they will not belong directly to the user. At that point, unbinding a user is a simple matter of dropping them from the group and then dropping that user entirely.
Again-- I don't count myself as a SQL Server expert, but it seems something similar to the above is what should be happening.
@zhongyi-zhang I think you know SQL Server considerably better than I do. Do you have thoughts on if it makes sense to make SQL Server behave more like what I am doing for PostgreSQL. If so, do you know how to achieve it?

I'm attempting to reproduce this today using the chart example you gave above and not having much luck.

afaict, reproducing this will require creating things in the schema after binding. (Something our tests don't do.) Have you?

@krancour AFAIK, how you solved it in PostgreSQL can't be achieved in MSSQL. Azure MSSQL does have a group concept for user management system. But it is for Azure/Windows Active Directory accounts.\
To be honest, I think users have the responsibility to execute something like ALTER AUTHORIZATION ON schema::<schema_name> TO db_owner if they created a schema and want to leave the schema in the database then unbind.

I think users have the responsibility to execute something like ALTER AUTHORIZATION ON schema::<schema_name> TO db_owner if they created a schema and want to leave the schema in the database then unbind.

If that means that an unbind cannot be accomplished before a bound user takes some manual action, that, frankly, creates a lot of undesirable friction in the provision/bind/unbind/deprovision lifecycle.
I believe @jeremyrickard has uncovered some options for how this can be done, but I'm not sure where he stands at the moment with proving out the concept.
References:
https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/ownership-and-user-schema-separation-in-sql-server
https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/authorization-and-permissions-in-sql-server

As it is not implemented in svcat, the workaround for now is to manually delete the binding records from the broker store (the redis). Then the instance deletion can work as your expectation -- it can succeed if the resource is no longer existed.

That sounded promising, so i manually deleted the redis entry for key "binding:{externalId-guid}", and the binding did indeed disappear from the list of svcat get bindings, but deprovisioning of the instance still fails.
catalog-controller-manager logs show 409 errors returned by the broker:
I0314 13:04:15.828036       1 controller.go:396] Dropping ServiceInstance "pr-412/some-db" out of the queue: Deprovision call failed; received error response from broker: Status: 409; ErrorMessage: <nil>; Description: <nil>; ResponseError: <nil>
I0314 13:04:15.828161       1 event.go:221] Event(v1.ObjectReference{Kind:"ServiceInstance", Namespace:"pr-412", Name:"some-db", UID:"2efb0ec7-4510-11e9-87cf-d2d452015806", APIVersion:"servicecatalog.k8s.io/v1beta1", ResourceVersion:"1484", FieldPath:""}): type: 'Warning' reason: 'DeprovisionCallFailed' Deprovision call failed; received error response from broker: Status: 409; ErrorMessage: <nil>; Description: <nil>; ResponseError: <nil>

@pabloromeo TL;DR please also delete the instance entry and retry.
The 409 was expected. OSBA only accepts deprovision request for instances in states provisioned, provisioning_failed, and updated_failed. Other states are considered as in progress state, including the deprovisioning_failed. Because the async engine in OSBA would continue retrying the failed deprovisioning job by fetching from the async task store.  For  your case, upgrading OSBA to get the fix for Azure Go SDK might help. But I am not sure if the async task store of your OSBA deployment is broken too... So I just recommend to brutally delete the redis entry -- that should always work.

I'm having the same issue deleting appinsights instances/bindings.

Looks svcat supports abandoning bindings/instances now: https://github.com/kubernetes-sigs/service-catalog/blob/master/docs/tasks/stuck_instance.md. Could you have a try?


Onboarding Highlights Ship Review

Task/Issue URL: https://app.asana.com/0/1206329551987282/1208291253556033/f
Description:
This PR includes changes and fixes that have been addressed during the Ship Review.
Commits are mostly self contained and address each Ship Review comment, so you can review each commit separately if you prefer.
The PR also includes the copy translations.
Steps to test this PR:
Test Scenario 1, 2, and 3 of Ship Review Testing section
Definition of Done (Internal Only):

[ ] Does this PR satisfy our Definition of Done?

Copy Testing:

[ ] Use of correct apostrophes in new copy, ie ’ rather than '

Orientation Testing:

[ ] Portrait
[ ] Landscape

Device Testing:

[ ] iPhone SE (1st Gen)
[ ] iPhone 8
[ ] iPhone X
[ ] iPhone 14 Pro
[ ] iPad

OS Testing:

[ ] iOS 15
[ ] iOS 16
[ ] iOS 17

Theme Testing:

[ ] Light theme
[ ] Dark theme

Internal references:
Software Engineering Expectations
Technical Design Template

Added a note to the asana task with the scenarios in them. Couple of comments here too.

I addressed the PR feedback and replied to your Asana comments. I also fixed other bugs I found during testing. All explained in Asana task


Delay network to device processing

Task/Issue URL: https://app.asana.com/0/488551667048375/1202701239936870/f
Description
Delay the network to device processing not to be so CPU intensive
Steps to test this PR
Optional. Smoke test for AppTP

Current dependencies on/for this PR:

develop

PR #2123   👈

This comment was auto-generated by Graphite.