Synchronous bridging

This will probably not belong here since it's more an implementation detail, so apologies in advance! I'm slowly porting my code to asyncio as it's mostly I/O based but am hitting an issue with bridging it with synchronous modules, in this case I'm looking at how aioes could be coupled with the excellent elasticsearch_dsl module. Wrapping aioes as a connection is no problem, but at one point one needs to bridge the regular connection call made in elasticsearch_dsl to the asynchronous aioes equivalent, somewhat like this -
import asyncio

@asyncio.coroutine
def target(value):
    return "{} world".format(value)

def intermediary(value):
    """Return result from coroutine target()
    """

@asyncio.coroutine
def call():
    result = intermediary('hello')
    print(result)

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(call())

I've been pulling my hair out about this one, but whatever I can think of I end up with something blocking. Would there be any pattern applicable to these type of situations?

Closing this, have found the way to bridge via greenlets.


Rewarded add on iOS

https://user-images.githubusercontent.com/22657089/114540097-93816b00-9c6e-11eb-8c99-ec0996546a79.MP4
I'm trying to show an advertisement with a reward, but it either does not appear at all or is shown for half a second and throws an event that you can give a reward ... It does not show at all on the emulator, it just does not load ... Package version 2.0.0

Uploading IMG_0113.MP4…

@Ildar7sins - Do you mind sending over your integration code? It would also help to enable verbose logs via AppLovinMAX. setVerboseLogging(true);, then sending over the logs so we can triagae.

I use this example https://dash.applovin.com/documentation/mediation/react-native/getting-started/rewarded-ads
lovin.log

@Ildar7sins - Are you still experiencing this issue?

Yes

We need our SDK's verbose logs, as requested above. More info can be found here.

@Ildar7sins - Are you still experiencing this issue?


Clarify usage of set_bridgestan_path in examples

Closes #156

I agree this is a doc issue.  The updated language makes sense to me, but I'm not really the intended audience.  @gil2rok, what do you think of these additional comments in the doc and the examples?  Do you imagine these changes would have helped you understand what we have in mind for the use case of set_bridgestan_path()?

Yes, this type of comment would have helped clarify when / how to use set_bridgestan_path(). Thanks!


Use BipedalLocomotion::GlobalCoPEvaluator to compute the global CoP

With this PR BipedalLocomotion::GlobalCoPEvaluator is used to compute the global CoP for the walking controller. Thanks to this we centralize the code used to compute the quantity in all the projects

@g-cervettini, here you can find  how to use  BipedalLocomotion::GlobalCoPEvaluator


AttributeError: 'ControlModel' object has no attribute 'reset' with AnimateDiff

In Automatic1111 when I use AnimateDiff in combination with ControlNet I get the error below at the console.  It was working a few days prior, but started getting it when I updated ControlNet. Not 100% sure if this is a ControlNet or AnimateDiff issue, but wanted to post it here first.  If any questions or need additional information please let me know, thanks!
*** Error running process: C:\Users\shaun\ai\stable-diffusion-webui\extensions\sd-webui-controlnet\scripts\controlnet.py
    Traceback (most recent call last):
      File "C:\Users\shaun\ai\stable-diffusion-webui\modules\scripts.py", line 718, in process
        script.process(p, *script_args)
      File "C:\Users\shaun\ai\stable-diffusion-webui\extensions\sd-webui-controlnet\scripts\controlnet.py", line 1117, in process
        self.controlnet_hack(p)
      File "C:\Users\shaun\ai\stable-diffusion-webui\extensions\sd-webui-controlnet\scripts\controlnet.py", line 1102, in controlnet_hack
        self.controlnet_main_entry(p)
      File "C:\Users\shaun\ai\stable-diffusion-webui\extensions\sd-webui-animatediff\scripts\animatediff_cn.py", line 248, in hacked_main_entry
        model_net.reset()
    AttributeError: 'ControlModel' object has no attribute 'reset'

Sorry, the recommendation I got from discord was to open this issue with sd-webui-controlnet project; I didn't notice that was a different project.  Closing this issue.


CSS values and units tasks for Fx68

See https://trello.com/c/99AKTpVj/186-css-values-and-units-level-4-fx-68 for the original trello card.
Acceptance criteria

[x] change 'currentColor' keyword to be a computed value (except for 'color' property) — documented appropriately.

[x] Fix support for the 'ch' length unit to match spec (fallback for no '0' glyph, vertical metrics) — documented appropriately.

@chrisdavidmills Maybe I'm wrong but these seem to be internal changes that don't really get represented in our docs.
I added a line about the fallback size for when the size of the 0 glyph can't be calculated to the length page https://developer.mozilla.org/en-US/docs/Web/CSS/length
I'm not sure there is any change to make with regard to currentColor, but if you think there is let me know.

That is a reasonable conclusion to come to; it happens sometimes. I am OK with that.

ok - so I've now added these to the 68 for developers notes. Unless we can think of anything that needs documenting this is probably done.

Again, set bugs to dev-doc-complete, and add a quick comment saying what docs work you did, even if is just a quick note in the Fx68 rel notes..

set dev-doc-complete on 760385
set dev-doc-complete on 282126

Perfect; we can close this now.


Export MJML not working on demo?

Was just trying out the dynamic data demo, when clicking 'export HTML or export mjml' the template variables are not replaced when chucking them into a html/mjml viewer.
Am I doing something wrong? I have not changed anything on the link, just wanted to see if it replaced the merge tags on export
https://email.maocanhua.cn/editor?id=834&userId=107

The mergetag in the demo is only used as variables. The exported template does not do the replacement step.
To replace template variables, just add the following code.


Increase PHPStan's level

Leftovers for level 2:
 ------ -----------------------------------------------------------------------------
  Line   lib/Doctrine/ODM/MongoDB/Aggregation/Stage/Match.php
 ------ -----------------------------------------------------------------------------
  452    Call to an undefined method Doctrine\ODM\MongoDB\Query\Expr::maxDistance().
  474    Call to an undefined method Doctrine\ODM\MongoDB\Query\Expr::minDistance().
 ------ -----------------------------------------------------------------------------

@alcaeus I'm pretty sure I was asking you about it some time ago but I can't really remember the answer nor find anything useful on gitter...
 ------ ----------------------------------------------------------------------
  Line   lib/Doctrine/ODM/MongoDB/Proxy/ProxyFactory.php
 ------ ----------------------------------------------------------------------
  126    Call to an undefined method Doctrine\Common\Proxy\Proxy::__wakeup().
 ------ ----------------------------------------------------------------------

Technically the method is there as it's inside of a path that checked for __wakeup existance. I was trying getting rid of it with assert(method_exists($proxy, '__wakeup') to no avail. Ideas?
To get to level 4 we need to fix Annotation's $value typehint as it hints against string while it can be anything:
 ------ --------------------------------------------------------------
  Line   lib/Doctrine/ODM/MongoDB/Mapping/Driver/AnnotationDriver.php
 ------ --------------------------------------------------------------
  65     Call to function is_array() will always evaluate to false.
  143    Call to function is_array() will always evaluate to false.
 ------ --------------------------------------------------------------

To deal with level 5 we again need to tweak Common stuff:
 ------ ------------------------------------------------------------------------------------------------------------------------------------------------------
  Line   lib/Doctrine/ODM/MongoDB/Mapping/Driver/AnnotationDriver.php
 ------ ------------------------------------------------------------------------------------------------------------------------------------------------------
  73     Parameter #1 $map of method Doctrine\ODM\MongoDB\Mapping\ClassMetadata::setDiscriminatorMap() expects array, string given.
  266    Parameter #1 $reader of class Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver constructor expects Doctrine\Common\Annotations\AnnotationReader,
         Doctrine\Common\Annotations\Reader given.
 ------ ------------------------------------------------------------------------------------------------------------------------------------------------------

Also I have no clue so far why PHPStan is complaining about:
 ------ ----------------------------------------------------------------------------------------------------------------------------------------
  Line   lib/Doctrine/ODM/MongoDB/Aggregation/Expr.php
 ------ ----------------------------------------------------------------------------------------------------------------------------------------
  170    Parameter #2 $expression of method Doctrine\ODM\MongoDB\Aggregation\Expr::operator() expects
         array<Doctrine\ODM\MongoDB\Aggregation\Expr>|Doctrine\ODM\MongoDB\Aggregation\Expr, array|Doctrine\ODM\MongoDB\Aggregation\Expr given.
 ------ ----------------------------------------------------------------------------------------------------------------------------------------

Call to an undefined method Doctrine\ODM\MongoDB\Query\Expr::maxDistance().

You can remove the maxDistance and minDistance helpers. The methods in Expr were removed in 0323fb187447c6250062477c16414c195424a0d7 when we dropped geoNear commands completely in favor of the respective pipeline stage. I apparently forgot to throw them out in the match aggregation pipeline stage.
As for the undefined __wakeup method, did you try calling it conditionally, e.g. if method_exists(...) { $proxy->__wakeup();? If it still reports an error, this is something that may be an issue in PHPStan.
Last but not least, the argument type mismatch doesn't make any sense. The typehint for operator is array|self[]|self while the typehint for anyElementTrue is array|self, which should be perfectly safe for passing to operator. Again, this might be an issue with PHPStan.

PHPStan 0.10 was released. Maybe we should use it here?

Heh I still need to fix stuff in other Doctrine packages :/ Maybe I can schedule some time tomorrow to get back to this, I'll see how much stuff needs to change with 0.10

@malarzm can you rebase and continue this or would you prefer me to take over?

FWIW I'm trying to rebase this

So this PR is again merge'able but I need to revisit levels 3 and higher as I stopped fixing errors by then just to get through all the conflicts today. BTW @jmikola I've found interesting error that might be worth fixing in the driver (but not sure if it should so I'm not opening an issue there yet):

PHPDoc tag @throws with type MongoDB\Driver\Exception\Exception is not subtype of Throwable

Reported the exception issue to the driver: https://github.com/mongodb/mongo-php-driver/issues/940. In the meantime, we can just ignore the error entirely.

Regarding assertions, we should make sure assertion checks are enabled on travis-ci to make sure we're triggering an error instead of using assert only for documentation purposes in PHPStan.

I finished up fixing stuff including level 7. @malarzm I think it'd be good if you could take a look at fixes from later commits.

LGTM 👍


Update to go 1.18

Related Issue: https://github.com/stolostron/backlog/issues/23946
Description of changes
Update to go 1.18
update packages

/retest


Add Regression Tests for Web Cmdlets' Regex Patterns

Summary of the new feature/enhancement
The web cmdlets currently are lacking in terms of regression tests. The only tests currently verifying the regex patterns used are here:
https://github.com/PowerShell/PowerShell/blob/920b671fb41bdaa3cfc0ce030a41e81c4860d330/test/powershell/Modules/Microsoft.PowerShell.Utility/WebCmdlets.Tests.ps1#L1904
The cmdlets use a half-dozen different regex patterns for various purposes; we should add tests to ensure they work correctly going forward.
See also #12099 -- both that PR and the new tests should be backported to 7.0 branch as a bugfix.
Details
This is the tool we are supposed to use:  https://www.microsoft.com/en-us/security-risk-detection/
The description of the requirement are here:
https://docs.microsoft.com/en-us/security-risk-detection/concepts/seed-files

@TravisEz13 If I understand right you will make the tests internally so the site list will be not public. We are not going to change, share or distribute the pages. We are not going to download any artifacts like pictures - we need only html. We are not going to check these sites and distribute any information about it - we are going to test only that our code works correctly on the data.

@iSazonov  The HTML itself is also covered by the site's copyright.  So, until you propose exactly what site to use, I can't say if such usage would require permission from the site owner.

The HTML itself is also covered by the site's copyright.

How do sites like Binq and Google search work? They collect HTMLs, store local in cache, parse, analyze and so on.

until you propose exactly what site to use

We could start with *.office.com and *.microsoft.com sites

@iSazonov tl;dr: Because search engines have a systematic way to opt-out, it's not considered a copyright violation.  See https://www.practicalecommerce.com/Search-Engines-Indexing-and-Copyright-Law

The tasks to run these are now in private preview:  https://secdevtools.azurewebsites.net/


GC the SSL connection

Fixed in 4.2 release: https://github.com/emqtt/esockd/commit/061863b91fcb9f585504296b6b0e2b904901449c


Remote Access Authorization Error when trying to connect to Salesforce Inspector Reloadded

Make sure to read the troubleshooting section before creating an issue

[ ] I've read the common issues and the one I'm about to create is not one of those documented.

Describe the bug
We have installed the Salesforce Inspector Connected App and added the required profiles who need to use them.
while it works for system admin, it does not work for the non system-admin profiles.
Details are shown in the screenshot
To Reproduce
Steps to reproduce the behavior:

Go to Setup as Non-System Admin
Click on Salesforce Inspector and click Generate Token
See error - "Remote Access Authorization'"

Expected behavior
As soon as we launch Salesforce inspector and click generate token, it should start working.
Screenshots
This error is seen for a non system admin, while it works for system admin

Desktop (please complete the following information):

OS:  Windows
Browser: Chrome
Version: Latest Version

Additional context
Add any other context about the problem here.

Hi @sumanth86 ,
I won't be able to check for this bug until next week, sorry for the delay.
I'll come back to you if I can reproduce the error

Hi @tprouvot  Any update on this, we want to launch Salesforce Inspector Reloadded App to be used across the organization and with this issue it will be a blocker for us.

Hi @sumanth86 ,
Currently in holidays I don't have access to a computer, I'll try to check on Friday if I can and beginning of next week in the worst case scenario.
Did you checked if you could reproduce this error in an empty scratch org / dev org?

I was able to reproduce this in our Sandbox, I can try out in Dev Org.
Sandbox as refreshed recently - FYI

Yes the goal was to try on an empty environment without any of your congratulations.

I suspect its v60.0 issue that is causing Salesforce Inspector issue with users non-admins who are refreshed from production. @tprouvot

I'll try for the auth token, for the login as I think it's a permission issue (user needs login as permissions to be able to use the button)

what permissions should we provide at a profile level to launch the Salesforce Inspector?
why does it work for system admin and doesnt work for non-admin?


(NPUP-18) Implement string interpolation in the lexer.

Previously, the lexer would naively match anything between double quotes and
interpolated heredoc tags as part of a single string token.  It was then up to
the evaluator to parse the string and perform string interpolations.  However,
this is not what the Puppet language supports in terms of interpolation.
Puppet performs interpolation in the lexer and parser, resulting in AST nodes
containing children comprising the string (literal text, variables, and
expressions to render).
This commit completely changes how string interpolation is performed by the
native compiler.
Firstly, string tokens are emitted only for single quoted strings and
non-interpolated heredocs.  Double quoted strings and interpolated heredocs
result in a "string start" token, followed by any number of literal text
tokens, variable tokens, or an "interpolation sequence".  An interpolation
sequence has a interpolation token, any number of normal lexer tokens, and an
interpolation end token.  Interpolated strings without any variables or
interpolation sequences are transformed to non-interpolated string expressions
by the parser.
The lexer is also now responsible for performing lookahead for interpolation
sequences where the first immediate token could be a variable (e.g. "${foo}").
Additionally, the lexer now performs transformations of escape characters,
which was previously handled by the, now removed, "string interpolator".
Variable name validation is now done in the lexer.
Note that neither the lexer nor the parser aligns heredoc text containing a
margin specifier; that is still handled by the evaluator.  To fix this, we'll
need a semantic action when matching a string / interpolated string rule and
align the text in the resulting AST object.  It is done this way because the
lexer outputs a stream of tokens; the margin isn't known until the "string end"
token is encountered for the heredoc.
Secondly, the parser rules have been updated to produce an "interpolated
string" expression when interpolated string tokens are encountered.
Lastly, the evaluator has been updated to render the interpolated string
(similar to how it renders EPP expressions).  This removes the now-defunct
"string interpolator" that was previously responsible for parsing the string
and replacing interpolation expressions.
Also fixed in this commit:

Lexer exceptions now contain the range instead of just the starting iterator;
this allows for better error message highlighting.
Resource titles should support any expression that results in a string.

Looks like the unit test executable is crashing on Travis for some reason.  Going to try some magic to get a traceback.

A general question . something that was tricky in the Ruby implementation was getting the offsets right in interpolations / heredocs as they need to refer to positions in the original source. Maybe the deferral to deal with the left margin made that easier (it was a major headache in the Ruby impl).

Having the parser do the heredoc text alignment shouldn't impact the source positions of any tokens as they've already been recorded in the resulting AST.  It's something we'll have to do before serializing the AST anyway, so doing it upon populating the node in the AST makes sense (although it'll require a parser semantic action, a Boost Spirit construct, to implement and thus far our rules are semantic action free).

I am done with the review. All questions I had are answered. Merging.


BUG: stats.binom: Boost binomial distribution edge case bug?

Describe your issue.
When q is zero, the binom.ppf function returns -1.0. And when p is 1.0, the result should be n regardless of q.
Reproducing Code Example
from scipy.stats import binom

print(binom.ppf(q = 0.0, n = 4, p = 0.5)) # prints -1.0 (but should be 0.0?)
print(binom.ppf(q = 0.3, n = 4, p = 1.0)) # prints 0.0 (but should be 4.0?)

Error message
-

SciPy/NumPy/Python version information
1.8.1 1.23.1 sys.version_info(major=3, minor=9, micro=13, releaselevel='final', serial=0)

In the first example, the CDF at -1 is 0, so the result is not wrong.
print(binom.cdf(k=-1, n=4, p=0.5))  # 0

SciPy's convention is ppf methods with q=0 is to return -1. The rationale is discussed here.

SciPy's convention for ppf methods at q=0 is to return -1. The rationale is discussed in #15967 (comment).

This is a bit unfortunate, because such choice makes a simulation of the outcome of 100M dice rolls via binom.ppf more complicated than necessary and potentially error prone. The following code needs to handle edge cases (see comments):
from scipy.stats import binom
from random import random

def diceDistrib(k, N):
  result = []
  n = N
  for i in range(0, k - 1):
    q = random()
    p = 1.0 / (k - i) # be sure not to get p == 1.0 here
    if q > 0: # dodge -1 when q == 0.0
      cnt = int(binom.ppf(q, n, p))
    else:
      cnt = 0
    result.append(cnt)
    n -= cnt
  result.append(n)
  return result

print(diceDistrib(6, 100_000_000)) # [16664115, 16666144, 16677962, 16660692, 16663181, 16667906]

Yes, a better solution would be to use `binom.rvs` for such simulation, but I wanted to see if `binom.ppf` can also do the job and compare results.
from scipy.stats import binom

def diceDistrib(k, N):
  result = []
  n = N
  for i in range(0, k):
    cnt = binom.rvs(n, 1.0 / (k - i))
    result.append(cnt)
    n -= cnt
  return result

print(diceDistrib(6, 100_000_000)) # [16667252, 16668575, 16663811, 16674710, 16661590, 16664062]

Sorry. It wasn't my choice. I defended it in the past only to justify why we can't change it on a whim. Changing it would be backward incompatible, and SciPy has a lot of users, so more would be needed to justify such a change.
That said, this was just announced today, and we will be working on gh-15928 as part of the grant. We can definitely consider changing convention there.

@mckib2 can you see what Boost does here (without the wrapper)?
from scipy.stats import binom
binom.ppf(q = 0.3, n = 4, p = 1.0)  # prints 0.0 (but should be 4.0?)

@mborland would you be willing to check whether Boost's binomial PPF has a bug with p = 1?

@mborland would you be willing to check whether Boost's binomial PPF has a bug with p = 1?

Yes. I'll cross reference this issue from if there is a problem on our end.

@mdhaber the fix has been merged into Boost.Math.

Great, thanks!


network performance report

Add a new network performance report to consume the data created by the AresIndexer package:
https://github.com/OHDSI/AresIndexer/issues/1

The pivot table should sum the number of seconds required to execute the tasks.  Grouping by Package and Category should improve the view of the data.  If possible allow the pivot table component to switch functions (sum/count) and which measure is aggregated (number of tasks, sum of seconds)


code review

This PR has my notes for Review of this Repo.
I was unable to get the tests to run locally because of permission issues on the objects used for the test.
I had to make some modifications to the Dockerfile for the container to build, but I think they were due to space limitations on my machine, and they are not functionally different than what exists in the master branch


Using Prisma.XyzFindManyArgs breaks findMany typing in v4.16.0+

Bug description
We sometimes generate find options dynamically and use the Prisma.UserFindManyArgs type for this, e.g. in a case like this:
    const userFindMany: Prisma.UserFindManyArgs = {};

    if(true) { // Some condition is met
      userFindMany.where = { email<EMAIL_ADDRESS>};
      userFindMany.take = 1;
    }

    const users = await prismaClient.user.findMany({
      ...userFindMany,
      include: {
        userRoles: true,
      },
    });

    console.log(users[0].email); // This works
    console.log(users[0].userRoles); // But this doesn't

Starting with Prisma v4.16.0, the code above throws a typing error: TS2339: Property 'userRoles' does not exist on type [...]. I think this is probably caused by the new typing because of client extensions - but in my opinion, the code above should still work.
As a workaround, it's possible to write a custom type for userFindManyArgs, e.g. const userFindMany: { where?: Prisma.UserWhereInput; take?: number } = {};, but that's only a workaround for a breaking change.
How to reproduce
Use the code above, check if users[0].userRoles throws a typescript error.
Expected behavior
Same behavior as before - adding an include should always include the relations in the result typing.
Prisma information

// Add your schema.prisma
model User {
  id        Int      @id @default(autoincrement())
  email     String   @unique
  userRoles               UserRole[]
}

model UserRole {
  id        Int      @id @default(autoincrement())
}

// Add your code using Prisma Client
const prismaClient = new PrismaClient();

Environment & setup

OS: Windows
Database: PostgreSQL
Node.js version: v16.17.1
Typescript version: v5.1.6

Prisma Version
prisma                  : 4.16.2
@prisma/client          : 4.16.2
Current platform        : windows
Query Engine (Node-API) : libquery-engine 4bc8b6e1b66cb932731fb1bdbbc550d1e010de81 (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli 4bc8b6e1b66cb932731fb1bdbbc550d1e010de81 (at<EMAIL_ADDRESS>Format Wasm             : @prisma/prisma-fmt-wasm 4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81
Default Engines Hash    : 4bc8b6e1b66cb932731fb1bdbbc550d1e010de81
Studio                  : 0.484.0

Probably related/duplicated to #19962 (seems like I didn't go back far enough when checking if this issue already exists, sorry)

@Valerionn Are you using a client extension? If so, could you share it with us?

Hey, thanks for the report. We have worked on a fix and would appreciate if you could give it a try. If you have some time, install<EMAIL_ADDRESS>and<EMAIL_ADDRESS>and let me know how it went. Thanks.

Looks good to me, there are now no more typing errors with this version, thanks for the quick fix!


Installing Protobuf 3.0.0-beta-3 (was 3.0.0-beta-2)

There seems to be issues with the upgrade when generating files for objective-c. The podspec file given uses:
ms.dependency "Protobuf", "~> 3.0.0-alpha-4"
Thus, it defaults to the latest version. When you use the upgraded beta-3 release, it generates error:
#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
I have confirmed since projects which were previously running without error are now having that error without any other changes.
If you go in and do a pod install on any projects previously using 3.0.0-beta-2, then the error results.
Changing podspec to ms.dependency "Protobuf", "3.0.0-beta-2" solves currently.

Since the error is as below, does this mean that Protobuf 3.0.0-beta-3 is not generating for protobuf 3? My protobuf file starts with syntax = "proto3".
#import "GPBProtocolBuffers.h"
#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000
#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
#endif

Hi,
the transition from Protobuf 3.0.0-beta-2 to beta-3 introduces changes that require a new version of the Protobuf compiler (protoc) to be used. Please install the new version from https://github.com/google/protobuf/releases/tag/v3.0.0-beta-3 (you have to scroll down almost to the end of that release section to find the protoc-3.0.0-beta-3-osx-....zip downloads) and try again.
I don't know if we've already uploaded it to homebrew, which makes installation easier. @murgatroid99, do you know?

Changing podspec to ms.dependency "Protobuf", "3.0.0-beta-2" solves currently.

This is the right solution if you don't want to upgrade yet, and gRPC should be happy with it.

Thanks.
I checked homebrew and it has the following versions:
protobuf: stable 2.6.1 (bottled), devel 3.0.0-alpha-3.1
The osx package just gives me the protoc file? I have tried using the source code to install but that gives the following error when I try and pod install:
[!] /bin/bash -c
set -e
protoc --objc_out=. --objcgrpc_out=. *.proto
That occurs as follows:
Analyzing dependencies
Fetching podspec for HelloWorld from .
Downloading dependencies
Installing BoringSSL (3.0)
Installing HelloWorld (0.0.1)
[!] /bin/bash -c
set -e
protoc --objc_out=. --objcgrpc_out=. *.proto
--objcgrpc_out: protoc-gen-objcgrpc: Plugin killed by signal 11.
How would I install from the osx .zip which only has the new protoc?
Tried reinstalling grpc but that uses:
https://github.com/google/protobuf/archive/v3.0.0-beta-1.tar.gz
So overall seems that I have differing versions of protoc in each case.

hi , I've had the same problem. solves follow
Changing podspec to ms.dependency "Protobuf", "3.0.0-beta-2" solves currently.
but ,How can I upgrade Protobuf 3.0.0-beta-2,
brew info google-protobuf
grpc/grpc/google-protobuf: stable 3.0.0-beta-2, HEAD
https://github.com/google/protobuf/
Conflicts with: protobuf
/usr/local/Cellar/google-protobuf/3.0.0-beta-2 (153 files, 13.0M)
  Built from source on 2016-05-23 at 11:47:01 with: --without-python
From: https://github.com/grpc/homebrew-grpc/blob/master/Formula/google-protobuf.rb

this is homebrew protobuf info, i can't upgrade;
How can I upgrade without homebrew?
Can you provide a correct step or feasible steps?
thanks

@aa57779111 I was stating the version in the podspec file specifically. So here in the podspec template:
https://github.com/grpc/grpc/tree/master/src/objective-c
It uses ms.dependency "Protobuf", "~> 3.0.0-alpha-4".
I set that to use the specific version ms.dependency "Protobuf", "3.0.0-beta-2".
That will generate without the error even if you have a different version on your system.

@namsoila yep, I'm doing it in your way.also use 3.0.0-beta-2

@jcanizales
None of my podfiles will currently install and give the following:
[!] /bin/bash -c
set -e
protoc --objc_out=. --objcgrpc_out=. *.proto
--objcgrpc_out: protoc-gen-objcgrpc: Plugin killed by signal 11.
Any suggestions? I have installed Protobuf 3.0.0-beta-3 by doing a manual build from the source file. The osx version only has a since protoc file? Not sure how to install with just that.
Here is the output from protoc --version:
libprotoc 3.0.0
Previous projects will build fine but not new ones.

@jcanizales @aa57779111 I solved this by installing from source for everything.
Did brew rm for all protobuf and grpc elements.
Got the full 3.0.0-beta-3 source code file as a tar.gz file from https://github.com/google/protobuf/releases
Ran:
./autogen.sh
./configure --prefix=/usr/local
sudo make
sudo make install
Built grpc from source as here:
https://github.com/grpc/grpc/blob/master/INSTALL.md#build-from-source
Then removed the symbolic link that was pointing to the previous homebrew install
cd /usr/local/bin
rm protoc-gen-objcgrpc
Then within the install grpc folder followed this to set the new symbolic link:
https://github.com/grpc/grpc/tree/master/src/objective-c#no-homebrew
So
ln -s pwd/bins/opt/grpc_objective_c_plugin /usr/local/bin/protoc-gen-objcgrpc
Within the grpc folder from here: git clone https://github.com/grpc/grpc.git
Thanks.

Thanks, @namsoila , but one problem persists: after all fixes, the project still doesn't build with ld: library not found for -lPods» error


PR dependencies bot fails on this repo: "SHA and context has reached the maximum number of statuses"

I think this is because there are very few new commits merged to this repo relative to the number of times this check runs (on each comment). That results in the same SHA getting checked many times, which is hitting a limit at the GH API.
Merging any commit should fix this. Should maybe also run the dependency check less frequently to avoid in the future. A better solution would be welcome.

Trying to get https://github.com/submariner-io/enhancements/pull/112 fixed/merged to get a new SHA at HEAD and fix this.

I don't think an empty commit worked: https://github.com/submariner-io/enhancements/pull/125#issuecomment-1190726179
I don't even see the empty commit on GitHub's view of the commits on devel: https://github.com/submariner-io/enhancements/commits/devel
I think we need an actual commit. We may also want to turn down the frequency of the bot and/or otherwise reduce how much it runs to mitigate this issue for repos with lots of comments relative to commits.


feat: Added base test case for package testing

Changes

Added simple test case for checking package functional
Fixed example`s build.gradle file for launch

Codecov Report

:exclamation: No coverage uploaded for pull request base (dev@df5b34d). Click here to learn what that means.
 Consider uploading reports for the commit 90abda0 to get more accurate results

Additional details and impacted files
@@          Coverage Diff           @@
##             dev      #60   +/-   ##
======================================
  Coverage       ?   96.34%
======================================
  Files          ?        4
  Lines          ?       82
  Branches       ?        0
======================================
  Hits           ?       79
  Misses         ?        3
  Partials       ?        0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


chore(main): release 1.6.3

:robot: I have created a release beep boop
1.6.3 (2023-11-29)
Bug Fixes

Docker workflow (18ed935)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/agence-adeliom/adeliom-webcomponents/releases/tag/v1.6.3 :sunflower:


Add a more user-friendly domain alias for Northstar.

This has come up in offline discussions a few times. It probably makes sense to rename Northstar's subdomain to be more user-friendly now that people will be redirected there as part of the authorization process.
Aside from being less "weird", this also would help to re-inforce the idea that you should only enter your username or password when your browser says "_____" in the address bar.
Some ideas for consideration –

auth.dosomething.org
profile.dosomething.org
passport.dosomething.org
my.dosomething.org 😏

🛂

my. also has the benefit of fewer characters, thereby conserving electrons.

 As a user, I want to see profile.dosomething.org in the address bar when I log in so I'm not confused by superhero names.

References DoSomething/devops#221.

I've updated production Phoenix, Aurora, & Voting App to point to profile.dosomething.org. ✅


wallet does not open

Hi, my windows wallet closes immediately after opening it.

Hi @Dawidekk523 , can you provide more details on your issue?

Actual behavior:
Expected behavior:
How to reproduce it (as minimally and precisely as possible):

What are your environment parameters?

DeFiCh/app Version:
Operating System (OS):
– RAM (GB):
– CPU (Intel Core i5/i7/etc.):
Current free storage capacity:

Anything else we need to know?
Kindly .zip your app log, binary log & app config, and attach here for further investigation.

Hi,
App version is 2.11
Windows os
Ram 16 GB
Ryzen 5600x
About 100 GB
Can't open app so wont upload logs :/

I did it! Here is my logs file.
logs.log

Hi, finally decided on a computer format which helped! Now the question is that after entering "seed" the wallet does not show the same number of tokens as on the phone, 0 is everywhere, how to fix it? In the lower left corner there is information about correct synchronization

Hi @Dawidekk523 , did you backup your wallet.dat before deciding to reformat your PC? #988

I have never used a wallet for a computer before, I entered the phrase "seed" from the wallet that I use on the phone and thought both will sync funds

Hi @Dawidekk523 , ah I see, so you're installing the desktop app for the first time?
The DeFiChain Light Wallet app's & Desktop app's restoration methods are irrelevant; meaning to say you can't load the 24 words from mobile app on to the desktop app and neither can you load the wallet.dat (backup equivalent for desktop app) from the desktop to mobile. If you would like to use the desktop app — a full node wallet, please ensure that you regularly backup your wallet.dat; first half of this guide explains in details how to backup desktop app wallet.
If you would like to save the hassle of running a full node wallet, I'd suggest you use the mobile app.
The team is currently working on integrating the mobile & desktop app — so you can use the same 24 words account concurrently. As for now, these are 2 independent applications. Hope this resolves your issue.


isRaw is returning false if the expression contains other text content before the template delimiters

The isRaw method must return true also if the expression is text: {= rawMarkup }. I have created a new branch adding the test for this bug bug/isRaw
Once this issue and this will be solved I will make a new riot release

@GianlucaGuarini yes, it is only for expressions, haveRaw is for template and have its test. I thought I had mentioned it. Anyway, I will change the code for use isRaw only.
Just now I have problems with double-quote issues, the spaces is not the probleam, the double quotes is.
The compiler and tmpl use brackets.split which can deal with nested double quotes, the real problem is in this line of mkdom. It injects the the html, then the expressions are readed here and in other parts through getAttribute, but at this point the browser already altered them (usually by dividing them into several nodes).
Till now I have identified 3 different behaviors depending on where they are in the markup, and 3 variations in interpretation depending on where you are going to use (including raw html).
(Also, this regex in walkAttributes does not supports nested quotes inside the value. It needs brackets.split or another regex based in the name= part only (risky)).
Right now, I think the only solution is replacing double-quotes with another character that innerHTML does not alter, and revert it before the evaluation. I'm thinking in U+2057 (Quadruple Prime, ⁗).
After that, I'll start working on pre-compiled expressions, which should solve this problem.
Note: The same problem is for raw html (< and >) in attribute values.

@aMarCruz ok so I need to use haveRaw instead? If yes how should I treat the expressions like Hi {= html } { normalText }? Should I inject everything using innerHTML? Is this safe against XSS injections? Here is where I have implemented the new tmpl feature is it correct?

Just now I have problems with double-quote issues, the spaces is not the probleam, the double quotes is.

We can skip this issue for now, it has low priority, let's focus on the raw markup that is a great improvement

Yes, all as html. You can have both in a single node.
And you're right, I have enough the double quotes problem and you have many more :)

Ok so I will make a new release tonight using haveRaw that will render with innerHTML also the other expressions in the same node thank you

@GianlucaGuarini ok, I will push a fix for double quotes to tmpl and compiler, with isRaw removed. Will be v2.3.19 in the dev branch, and a working plucker with a test here. If pass your test please publish, I will be out of home tomorrow.

Ok thanks @aMarCruz keep it easy

@GianlucaGuarini , the dev branch of tmpl and compiler has the v2.3.19 already.
You can see in this test 4 cases, working with a custom version of riot+compiler using the new modules.
PS:
Your previous question about this line: It is not so easy, the expression is in a '#text" node, i.e. doesn't have innerHTML.
You need insert another element as container for the new nodes coming from the raw html. If you use parent.innerHTML = value the expression and sibling nodes is lost. I think the new nodes can't be riot tags.
In my test, I used this:
    // text node
    if (!attrName) {
      if (tmpl.haveRaw(expr.expr)) {
        var id = dom._riot_rawId, box
        if (id) {
          box = $('span[_riot_id="' + id + '"]', dom.parentNode)
          // `dom` is moved inside its parent? if so, we need recreate box always
          if (box) dom.parentNode.removeChild(box)
        }
        box = mkEl('span')
        dom.parentNode.insertBefore(box, dom)
        dom._riot_rawId = id = id || ++__uid
        setAttr(box, '_riot_id', id)
        box.innerHTML = value
        value = ''
      }
      dom.nodeValue = '' + value    // #815 related
      return
    }

but I don't know if is ok, sure is not performant.

I would simply say that if you use {= } in the same node all the markup will be rendered as innerHTML

@aMarCruz I wrote you on skype

closing this in favor of https://github.com/riot/tmpl/issues/2#issuecomment-207800489


Docs:

What is the improvement or update you wish to see?
While following the dashboard tutorial, after adding the search component in chapter11 we get hidration error.
While asking chatgpt i got this answer:
The useClient hook is typically used to determine if the code is running on the client side or server side. However, if you're still getting a hydration error, it's possible that the useSearchParams, usePathname, or useRouter hooks are being called on the server side before the client-side JavaScript has a chance to run.
Is there any context that might help us understand?

Does the docs page already exist? Please link to it.
https://nextjs.org/learn/dashboard-app/adding-search-and-pagination

Hey there, I am not able to reproduce this. Please open a new issue if you are still having trouble here. Thank you!


Receive an error when setting target price for item

Describe the bug
When requesting a the target price for the item, the script casts input to an int. This means that any input that doesn't start with a number will cause an error.
The errors aren't caught. This is extra irritating if the user is expecting to start their input with their monetary input (Dollar, Euro, Rupee)
To Reproduce
Steps to reproduce the behavior:

Install the required libraries
Run the script
Enter an amazon url to look at the price; I used https://smile.amazon.com/gp/product/B07KK9YGZ4/ref=ppx_yo_dt_b_asin_image_o00_s00?ie=UTF8&psc=1
Enter a string that doesn't start with a number; for example $20.00
See error

Expected behavior
The script should not error when taking a string; particularly with a monetary symbol at the beginning. Prompt the user to retry once then exit if it still errors
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: Ubuntu 18.04 (on WSL2)
Python: 3.8.6

Please assign to me

Submitted Pull Request #311 to resolve this.
Apologies for the multiple edits today; I was separating my code base into different branches and made mistakes along the way. Should be ironed out now.


Path cost tuner

Writing down a half-baked idea. How do you tune the cost function for pathfinding? Examples could be parameter tuning to make it worth going a little farther to get to a protected bike trail. Or maybe even a quick estimate without simulation of how many people might alter their route if you modify lanes.
The idea is to take all of the PathRequests that come from a Scenario, gather the throughput counts for all of them, make the lane edit or tune a parameter, calculate the difference in throughput, and display the result as a heatmap.

Working on gridlock, I found a good use case for this. I'm seeing lots of cars attempt turns that're less likely to be done in real life, like left turns without a stop sign. I want to cost these more. But how much more? Ideally we could fiddle with this parameter and get ~immediate feedback about the number of paths that'd include a particular movement or not.

Someone from an SVBC meeting last night had an interesting request: explaining induced demand to people is challenging, can we visualize it? Right now we're not modifying demand at all in abst, but maybe a small first step could also use this path tuner. Build a new road or edit some lane types, then recalculate all paths from the same scenario input. Except we'd calculate 4 paths for every request -- using each mode. If anybody switches over because of a change, then show that additional demand.

[ ] Filter by mode
[ ] Click a road and browse examples of paths that go through it that've changed
[ ] Launch this tool from edit mode


Bug in Urban Sound Classification using NN

https://github.com/aqibsaeed/Urban-Sound-Classification/blob/3f41ec2094f12107f9d336a12cb853b76f79e264/Urban Sound Classification using NN.ipynb does not run correctly. Specifically, the block
cost_history = np.empty(shape=[1],dtype=float)
y_true, y_pred = None, None
with tf.Session() as sess:
    sess.run(init)
    for epoch in range(training_epochs):
        _,cost = sess.run([optimizer,cost_function],feed_dict={X:train_x,Y:train_y})
        cost_history = np.append(cost_history,cost)

    y_pred = sess.run(tf.argmax(y_,1),feed_dict={X: test_x})
    y_true = sess.run(tf.argmax(test_y,1))

yields the following error:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-12-62c28f30e413> in <module>()
      4     sess.run(init)
      5     for epoch in range(training_epochs):
----> 6         _,cost = sess.run([optimizer,cost_function],feed_dict={X:train_x,Y:train_y})
      7         cost_history = np.append(cost_history,cost)
      8

/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.pyc in run(self, fetches, feed_dict, options, run_metadata)
    787     try:
    788       result = self._run(None, fetches, feed_dict, options_ptr,
--> 789                          run_metadata_ptr)
    790       if run_metadata:
    791         proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.pyc in _run(self, handle, fetches, feed_dict, options, run_metadata)
    973                 'Cannot feed value of shape %r for Tensor %r, '
    974                 'which has shape %r'
--> 975                 % (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape())))
    976           if not self.graph.is_feedable(subfeed_t):
    977             raise ValueError('Tensor %s may not be fed.' % subfeed_t)

ValueError: Cannot feed value of shape (0, 0) for Tensor u'Placeholder_1:0', which has shape '(?, 10)'

Please make sure that train_y have the correct shape and required data by printing it.

Thanks, I see the problem now. There are certain places where paths are hardcoded, and one of them is parent_dir = 'Sound-Data'. If this is set to an absolute path, then the line labels = np.append(labels, fn.split('/')[2].split('-')[1]) fails. This can be changed to
labels = np.append(labels, fn.split('/')[-1].split('-')[1])
and it seems to work as expected.
I really appreciate the rapid response!

P.S. Although now I have the following warning when running features, labels = parse_audio_files(parent_dir,sub_dirs):
/usr/local/lib/python2.7/site-packages/librosa/core/pitch.py:145: UserWarning: Trying to estimate tuning from empty frequency set.
  warnings.warn('Trying to estimate tuning from empty frequency set.')

Not sure about the warning. Please look into the documentation of Librosa for that. Make sure the audio file read is not empty before you extract features from it!

Make sure the audio file read is not empty before you extract features from it!

Good idea.  I'm using the UrbanSound8K dataset, I threw in a line to print out which file it is being parsed from the set. I should be able to report back if when/if it throws that warning a second time.

Hi there, can @aqibsaeed please clarify the method of defining the file paths and what changes need to be made in the code. Should I be running the python code in a directory called Sound-Data (with all the fold folders)


Parallel Coordinates

Colouring based on Configclusters (using e.g. HDBSCAN, which also allows having "noisy observations" with no affiliation)?
The clusters could create a base color which's color shading is determined by the final performance?
This might help identify communalities between well-performing configurations.

Can you describe this in a little more detail? The way we would understand it so far:

Do a clustering
Use the clustering to determine the colors in the Parallel Coordinate Plot
Is that correct?


Upgrade FontAwesome to 5.5

TODO: Delete old FontAwesome files after 5.5 doesn't appear to have negative effects.

Don't merge yet. Several icons are broken. Working through fixing them.

Fixed most of the icons that I could see. There may be a few quick fixes as we notice random icons are messed up, but for the most part should be 👌

Any reason not to just delete the old FontAwesome assets?

A few issues still:

[ ] Icons missing in library-view (file icon in listing, toolbar in file-view)
[ ] Icons in the context-menu of the library are missing
[ ] Icons in the site menu dropdown are missing (in the toolbar, where View Source and Download as Zip are)
[ ] The positioning of the + icon in "New" in the builtin pages header (top right) is off
[ ] Icon spacing against the text in the builtin pages dropdown is off
[ ] "Create new from folder" icon is missing

After we've got these issues settled I'm going to do a pass on the aesthetics.

[ ]  Icons missing in library-view (file icon in listing, toolbar in file-view)
[ ]  Icons in the context-menu of the library are missing
[ ]  Icons in the site menu dropdown are missing (in the toolbar, where View Source and Download as Zip are)
[ ]  The positioning of the + icon in "New" in the builtin pages header (top right) is off
[ ]  Icon spacing against the text in the builtin pages dropdown is off
[ ]  "Create new from folder" icon is missing


WHERE doesn't have an option for case insensitive, lower or uppercase

An option that can get the same results as a query like
SELECT mail FROM users WHERE LOWER(`mail`) =<EMAIL_ADDRESS>through $medoo->has, get or select would be great :D

The better way is using PHP native function to do that.

Yeah, and/or using case insensitive collaton in the database, already did, thanks.


Invalid market not filtering out from invalid filter

Need to confirm if Invalid Filter is working properly....see screenshot, should this market have been filtered out?

Also, this market isn't marked Invalid, not sure why not

depends on gas price. If you want to see if the filter is working, put an order in for like 25 or 50 cents

This failed doing 100 shares at 25 but worked doing 300 shares at 25
Also worked doing 100 shares at 50

@Chwy5 Do you know what the gas price was at the time? Another factor is how long until the market ends.

i do not

Assuming a relatively normal gas price that would make the trade $2 and the claim $1 and assuming the first market is 1 week from expiration and the second market is 3-4 months from expiration both of these would not trigger Invalid filtering.
The minimum profit for a taker needs to be > $10 and after fees + TVOM both of these end up generating a profit of $4-5.
This does demonstrate a potential issue however which is that someone can make a "best" bid that has a small share amount to make the filter not trigger by preventing the algorithm from looking at other orders. To remedy this we can just iterate the orderbook. Most of the calculation can be precomputed once so this won't be too much additional processing though it does make the filter O(n) instead of O(1) now.

This needs further review....Invalid trade 30xs @ 90 and 10 @ 99
I have a bid on invalid....this market is not being filtered out and I really think it should be....

So that order will profit someone $10 if they bet against invalid and the market isn't invalid.
What's the gas transaction cost in dai to place a trade and claim winnings? I'll bet it's higher than $10.
Also @nuevoalex is this true "This does demonstrate a potential issue however which is that someone can make a "best" bid that has a small share amount to make the filter not trigger by preventing the algorithm from looking at other orders"
The code says this? // A Market is marked as True in the invalidFilter if the any bid for Invalid on the book would be profitable to take were the market Valid
which seems to imply the above isn't right.

@joeykrug Yea I fixed it when I noticed that problem: https://github.com/AugurProject/augur/pull/7733
If the profit for this trade is only $10 it definitely won't show up as it must be > $10 after considering fees and TVOM

Oh cool
And yeah that's exactly my point

closing


Trouble with ACL's

This may be a noob question, but I'm having the darndest time figuring out how to get read-only access working for users. My understanding is that this should be the default, but after I create a user, I'm unable to view any of the entries. Everything works as expected when I used the admin user. All my settings are vanilla.
Here's a dump of my ldif:
# LDIF Export for dc=example,dc=com
# Server: ldap.default.svc.cluster.local (ldap.default.svc.cluster.local)
# Search Scope: sub
# Search Filter: (objectClass=*)
# Total Entries: 7
#
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on October 14, 2016 9:47 pm
# Version: 1.2.3

version: 1

# Entry 1: dc=example,dc=com
dn: dc=example,dc=com
dc: example
o: Example, Inc.
objectclass: top
objectclass: dcObject
objectclass: organization

# Entry 2: cn=admin,dc=example,dc=com
dn: cn=admin,dc=example,dc=com
cn: admin
description: LDAP administrator
objectclass: simpleSecurityObject
objectclass: organizationalRole
userpassword: {SSHA}3bBNNeG/iD21SXmifcP4Mn/6225uLmN8

# Entry 3: ou=groups,dc=example,dc=com
dn: ou=groups,dc=example,dc=com
objectclass: organizationalUnit
objectclass: top
ou: groups

# Entry 4: cn=users,ou=groups,dc=example,dc=com
dn: cn=users,ou=groups,dc=example,dc=com
cn: users
gidnumber: 500
objectclass: posixGroup
objectclass: top

# Entry 5: ou=users,dc=example,dc=com
dn: ou=users,dc=example,dc=com
objectclass: organizationalUnit
objectclass: top
ou: users

# Entry 6: cn=adambom,ou=users,dc=example,dc=com
dn: cn=adambom,ou=users,dc=example,dc=com
cn: adambom
gidnumber: 500
givenname: Adam
homedirectory: /home/users/adambom
loginshell: /bin/sh
mail<EMAIL_ADDRESS>objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: Savitzky
uid: adambom
uidnumber: 1001
userpassword: <password>

All my attempts to use ldapmodify with add of oclAccess control records failed.
E.g
ldapmodify -H ldap://somehost.net:389 -x -D "cn=admin,dc=example,dc=org" -w admin  -f /tmp/ldap.ldif -v
ldap.ldif
dn: olcDatabase={1}hdb,cn=config

changetype: modify

delete olcAccess: {0}

delete olcAccess: {1}

add: olcAccess

olcAccess: to *  by self write  by users read

ldapmodify just return
modifying entry "olcDatabase={1}hdb,cn=config" modify complete
But can't see any new olcAccess added to /etc/ldap/spad.d/cn=config/olcDatabse={1}hdb.ldif
Only two default olc are there
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by dn="cn
 =admin,dc=example,dc=org" write by anonymous auth by * none
olcAccess: {1}to * by self write by dn="cn=admin,dc=example,dc=org" write by
  * none

I was able to change permissions using this one-liner inside the container:
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f ldif
Where ldif is the file with the required modifications. Mine where:
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth
   by dn="cn=admin,dc=example,dc=org" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=example,dc=org" write by * read

My problem is a bit more subtle. How can I make this modification during setup time? I have tried putting it in the bootstrap together with my remaining ldif files, but it does not work. I suppose that the invocation of ldapmodify is different during setup time.

I was banging my head on this for hours...
I used this ldif:
dn: olcDatabase={1}hdb,cn=config
changetype: modify
delete: olcAccess
-
add: olcAccess
olcAccess: to attrs=userPassword,shadowLastChange by self write by dn="cn=admin,dc=vault-challenge,dc=com" write by anonymous auth by * read
olcAccess: to * by self write by dn="cn=admin,dc=vault-challenge,dc=com" write by * read

And executing with
$ ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f bla

This was a huge pain.

I get always an ldap_modify: No such object (32)
matched DN: cn=config
to this :(

@cutec-chris Can you supply your .ldif file?
Also watch out what kind of db you have.
This thread is using the old version which still pointed to hdb files.
In the readme.md needed information corresponding to this can be found.
I am able to edit my olcDatabase={1}**m**db,cn=config successfully.
Interestingly enough it does not care about my edits.
I even added the line
to * by * manage
If I then do some ldap querries trhough ldapsearch i just get
`
extended LDIF

LDAPv3
base <dc=leuber,dc=ch> with scope subtree
filter: (objectclass=*)
requesting: ALL

search result
search: 2
result: 32 No such object
numResponses: 1`
I hope we can find a solution for both of our problems.

This file uses {{ LDAP_BACKEND }} to be generic, worked for me:
https://devlab.vbi.vt.edu/dixonj16/dockerized-sufia/raw/master/docker/ldap/bootstrap/ldif/10_security.ldif


Tracking: SSCA violations in Aspire

[x] https://github.com/dotnet/aspire/issues/1419
[x] https://github.com/dotnet/aspire/issues/1670

Should be resolved with the following PRs:
https://github.com/dotnet/aspire/pull/1721
https://github.com/dotnet/aspire/pull/1722

Tracking issue were resolved.  SSCA steps in main VMR are green.  Closing.

Reopening since the issue in https://github.com/dotnet/aspire/issues/1419 is now occurring in 8.0.1xx builds. Link to internal build.


MKOB: Add 'config' menu item and dialog

Provide a 'Configure' menu item and dialog to allow setting the configuration options. Currently, the options must be set using Configure.py (or command shortcuts).
It would be nice if the configure dialog had the ability to show all of the system/Python information that Configure.py allows. With that, 'Configure' wouldn't need to be packaged in the bundle - making the bundle build process much simpler.

I've started working on a "Config" or "Preferences" dialog.  Right now, the preferences panel code in my local branch shows up the following (on a Mac - this is TkInter so it’ll look differently on different platforms):

All of these are being pulled from current config info at at initialization and saved as new config info on ’Save’.
I believe there are not currently any config options corresponding to an “Automatically connect at startup” setting or the “Hardware Interface” (None/GPIO/Serial port) setting?  I'll file a separate issue for that.

I've started working on a "Config" or "Preferences" dialog.  Right now, the preferences panel code in my local branch shows up the following (on a Mac - this is TkInter so it’ll look differently on different platforms):

All of these are being pulled from current config info at at initialization and saved as new config info on ’Save’.
I believe there are not currently any config options corresponding to an “Automatically connect at startup” setting or the “Hardware Interface” (None/GPIO/Serial port) setting?  I'll file a separate issue for that.

Filed issue #223 for the missing config options.

Filed issue #223 for the missing config options.

That looks great!
A few questions/thoughts...

What is 'Local Interface' at the top indicating?
I'm not sure 'Transmit to remote stations' is currently implemented in the code. I certainly is in config.py and can be set/displayed with Configure.py, but I think that currently, if you are connected to a wire the code is sent. What do we expect this option to be used for (a use-case)?
The 'Repeat Key Locally' reminded me that I need to take that into account in the changes I'm making to handle the key closer. If 'Repeat Key Locally' is 'off' than in Loop mode the loop shouldn't be energized when the local circuit is open (to keep the sounder from following the key) and in Key/Paddle & Sounder modes the code shouldn't send the key input to the sounder.

That looks great!
A few questions/thoughts...

What is 'Local Interface' at the top indicating?
I'm not sure 'Transmit to remote stations' is currently implemented in the code. I certainly is in config.py and can be set/displayed with Configure.py, but I think that currently, if you are connected to a wire the code is sent. What do we expect this option to be used for (a use-case)?
The 'Repeat Key Locally' reminded me that I need to take that into account in the changes I'm making to handle the key closer. If 'Repeat Key Locally' is 'off' than in Loop mode the loop shouldn't be energized when the local circuit is open (to keep the sounder from following the key) and in Key/Paddle & Sounder modes the code shouldn't send the key input to the sounder.

Patrick,
I'm really looking forward to using your Preferences panel. Here are a few comments. They're in top-to-down order as they appear on the panel, not in order of how important I think they are.

This first one's a nit. I'd be more comfortable if Serial Port came before GPIO interface. It's the option most users will be looking for, at least for the foreseeable future.
Shouldn't the 'Loop', 'Key & Sounder', and 'Keyer paddle' options apply to the GPIO interface as well as the serial interface? I for one would like to be able to connect a key and sounder driver directly to the GPIO pins of a Pi without having to go through an adapter cable to a USB port.
I should probably know this already, but what does 'Repeat key input locally' do? Isn't this the function of the 'Key & Sounder' interface?
Another nit: I think it would be clearer to say 'Server' rather than 'HostName'. This is an advanced feature though, so it's probably not terribly important. Advanced users will know what it's for.
I know why you say 'Initial' on the wire number and code speed options, but personally I'd leave off the 'Initial' part. As it stands, the implication is if I change the value and save it, it only has effect the next time I start the program. I'd much rather have any changes on the preference panel take effect immediately. In the case of these particular options, the changes would be reflected in the main GUI window.
Like it or not, we're going to have to revisit the terminology of 'code speed' and 'character rate'. Both terms are ambiguous. I don't have a good solution at the moment.

The preferences panel in its current form is something I can hardly wait to use. However, the complexity is going to be too much for many users. Before releasing the program for general use, I believe we'll want to restructure the preference panel so that only the basic options appear unless the user specifically requests the advanced options.
Finally, and I know this is controversial, I really want the settings on the main GUI window to be temporary ('non-sticky') -- at least until I've had a chance to try it. I know Chris and Chip feel differently, and I understand why, but I very much want to see how well it would work in practice.

Patrick,
I'm really looking forward to using your Preferences panel. Here are a few comments. They're in top-to-down order as they appear on the panel, not in order of how important I think they are.

This first one's a nit. I'd be more comfortable if Serial Port came before GPIO interface. It's the option most users will be looking for, at least for the foreseeable future.
Shouldn't the 'Loop', 'Key & Sounder', and 'Keyer paddle' options apply to the GPIO interface as well as the serial interface? I for one would like to be able to connect a key and sounder driver directly to the GPIO pins of a Pi without having to go through an adapter cable to a USB port.
I should probably know this already, but what does 'Repeat key input locally' do? Isn't this the function of the 'Key & Sounder' interface?
Another nit: I think it would be clearer to say 'Server' rather than 'HostName'. This is an advanced feature though, so it's probably not terribly important. Advanced users will know what it's for.
I know why you say 'Initial' on the wire number and code speed options, but personally I'd leave off the 'Initial' part. As it stands, the implication is if I change the value and save it, it only has effect the next time I start the program. I'd much rather have any changes on the preference panel take effect immediately. In the case of these particular options, the changes would be reflected in the main GUI window.
Like it or not, we're going to have to revisit the terminology of 'code speed' and 'character rate'. Both terms are ambiguous. I don't have a good solution at the moment.

The preferences panel in its current form is something I can hardly wait to use. However, the complexity is going to be too much for many users. Before releasing the program for general use, I believe we'll want to restructure the preference panel so that only the basic options appear unless the user specifically requests the advanced options.
Finally, and I know this is controversial, I really want the settings on the main GUI window to be temporary ('non-sticky') -- at least until I've had a chance to try it. I know Chris and Chip feel differently, and I understand why, but I very much want to see how well it would work in practice.

Responding to @leskerr 's comment...

I agree. I also proposed something in issue #223 to use a 'special' value for the 'Port' value that would indicate that it is a Raspberry Pi. In addition, it could indicate the 'Loop' number ("Loop" is a misnomer, as it could also be the pair of pins used for a key & sounder). That would eliminate the need to a separate option for the physical interface.
If we use the proposed solution for #1, then this goes away, as the option applies equally to either physical interface specified by the 'Port' value.
I had forgotten about this as well, but it basically means that the local key shouldn't be sounded locally. In the code that means that if it is a Loop interface the loop shouldn't be energized (so the sounder doesn't follow the key), if it is a Key&Sounder interface the key input shouldn't be echoed to the sounder. In both cases, the simulated sounder (computer audio) should not be sounded to follow the key.
Beyond the suggestion of 'Server', I might say 'KOB Server' or 'MorseKOB Server'.
I agree with Les. I would like changes in the preference window to take effect when I 'OK' out of the window. At the same time, I would like changes I make in the main GUI to be local (not saved). So, for example, if I use the configuration/preferences window to set the wire to '11', that should be saved as the default, and will be the wire value when I start a new instance of the app. If I change the wire value in the main GUI to 105, that should be transient (local to the currently running instance of the app and shouldn't affect other running instances and shouldn't be saved).

@leskerr To be fair to Patrick, I think the initial suggestion was to implement a single window with all options. That is a great start/improvement for beta testers (rather than having to use Configure.py to set values).
@pwdirks How hard is it to do tabs? Could we have a 'General' and 'Advanced' tab. Otherwise a 'General'/'Typical' window and then an 'Advanced' window.

Responding to @leskerr 's comment...

I agree. I also proposed something in issue #223 to use a 'special' value for the 'Port' value that would indicate that it is a Raspberry Pi. In addition, it could indicate the 'Loop' number ("Loop" is a misnomer, as it could also be the pair of pins used for a key & sounder). That would eliminate the need to a separate option for the physical interface.
If we use the proposed solution for #1, then this goes away, as the option applies equally to either physical interface specified by the 'Port' value.
I had forgotten about this as well, but it basically means that the local key shouldn't be sounded locally. In the code that means that if it is a Loop interface the loop shouldn't be energized (so the sounder doesn't follow the key), if it is a Key&Sounder interface the key input shouldn't be echoed to the sounder. In both cases, the simulated sounder (computer audio) should not be sounded to follow the key.
Beyond the suggestion of 'Server', I might say 'KOB Server' or 'MorseKOB Server'.
I agree with Les. I would like changes in the preference window to take effect when I 'OK' out of the window. At the same time, I would like changes I make in the main GUI to be local (not saved). So, for example, if I use the configuration/preferences window to set the wire to '11', that should be saved as the default, and will be the wire value when I start a new instance of the app. If I change the wire value in the main GUI to 105, that should be transient (local to the currently running instance of the app and shouldn't affect other running instances and shouldn't be saved).

@leskerr To be fair to Patrick, I think the initial suggestion was to implement a single window with all options. That is a great start/improvement for beta testers (rather than having to use Configure.py to set values).
@pwdirks How hard is it to do tabs? Could we have a 'General' and 'Advanced' tab. Otherwise a 'General'/'Typical' window and then an 'Advanced' window.

Hi Les,

On Jan 7, 2021, at 5:20 PM, Les Kerr<EMAIL_ADDRESS>wrote:
Patrick,
I'm really looking forward to using your Preferences panel. Here are a few comments. They're in top-to-down order as they appear on the panel, not in order of how important I think they are.
This first one's a nit. I'd be more comfortable if Serial Port came before GPIO interface. It's the option most users will be looking for, at least for the foreseeable future.
I laid it out that way so that the “Serial” option could immediately roll into the various “serial”-specific options (loop/sounder/keyer).  It sounds like perhaps doing away with a “Local Interface” (hardware type) selection is preferable anyway?  Opinions?
Shouldn't the 'Loop', 'Key & Sounder', and 'Keyer paddle' options apply to the GPIO interface as well as the serial interface? I for one would like to be able to connect a key and sounder driver directly to the GPIO pins of a Pi without having to go through an adapter cable to a USB port.
Ah - you’re probably right.  Then the “interface type” just becomes another first-class option.  I can do that.
I should probably know this already, but what does 'Repeat key input locally' do? Isn't this the function of the 'Key & Sounder' interface?
I think that was an option Ed requested to have keyboard-input still activate the sounder?  Ed?
Another nit: I think it would be clearer to say 'Server' rather than 'HostName'. This is an advanced feature though, so it's probably not terribly important. Advanced users will know what it's for.
I’m easy.  Unless anyone else has strong feelings on the topic, I’ll re-label it to “Server” or “Server URL”?  We don’t expect a URL-type like “http:”, though, right?  Just a DNS name?
I know why you say 'Initial' on the wire number and code speed options, but personally I'd leave off the 'Initial' part. As it stands, the implication is if I change the value and save it, it only has effect the next time I start the program. I'd much rather have any changes on the preference panel take effect immediately. In the case of these particular options, the changes would be reflected in the main GUI window.
Hmmm… I’d hoped to avoid creating a situation where you could change the current wire either from the main window OR from the config panel, especially because that introduces confusion about what will end up in the config file if the main window control is not “sticky” but only the “Preferences”/“Options” dialog changes the wire used the next time it’s started?  Almost better to make both wire change modes change the config, or none if “Initial” is not the expected mode of use?
Like it or not, we're going to have to revisit the terminology of 'code speed' and 'character rate'. Both terms are ambiguous. I don't have a good solution at the moment.
I remember quite a bit of discussion on that.  I don’t find the current terms (“minimum character speed” and “text speed”, I believe) very helpful.  To me at least, “code speed” speaks directly to how short dots and dashes are, and “character rate” pretty clearly suggests the rate at which characters appear.

I’m open to suggestions for clearer terms, though!

The preferences panel in its current form is something I can hardly wait to use. However, the complexity is going to be too much for many users. Before releasing the program for general use, I believe we'll want to restructure the preference panel so that only the basic options appear unless the user specifically requests the advanced options.

I’m expecting to make such a refinement but I’d probably prefer breaking out some options into a separate “Advanced” dialog as a separate change.

Finally, and I know this is controversial, I really want the settings on the main GUI window to be temporary ('non-sticky') -- at least until I've had a chance to try it. I know Chris and Chip feel differently, and I understand why, but I very much want to see how well it would work in practice.

I expect to try that model first.  It interacts somewhat with whether “Preferences” changes to wire # or code speed, for instance, affect the values currently in use via the main window and whether one or the other, both, or neither affect the configured values the program starts with the next time.  Besides users who typically want to start on wire 11 or some headlines wire, I think the strongest case for a non-sticky, consistent wire # and code speed at startup is the museum use case.  I’d think it advantageous if the main window could be twiddles by visitors to their heart’s content while powering off the display and re-powering it the next day will still guarantee a consistent startup setting but Chris seems to disagree with that expectation.
Thanks for the feedback!
73, N6PWD
-Patrick.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/MorseKOB/PyKOB/issues/169#issuecomment-756486259, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALTAYK4PZDH6IRGS52YIBHTSYZMVTANCNFSM4TKMTFEA.

Hi Les,

On Jan 7, 2021, at 5:20 PM, Les Kerr<EMAIL_ADDRESS>wrote:
Patrick,
I'm really looking forward to using your Preferences panel. Here are a few comments. They're in top-to-down order as they appear on the panel, not in order of how important I think they are.
This first one's a nit. I'd be more comfortable if Serial Port came before GPIO interface. It's the option most users will be looking for, at least for the foreseeable future.
I laid it out that way so that the “Serial” option could immediately roll into the various “serial”-specific options (loop/sounder/keyer).  It sounds like perhaps doing away with a “Local Interface” (hardware type) selection is preferable anyway?  Opinions?
Shouldn't the 'Loop', 'Key & Sounder', and 'Keyer paddle' options apply to the GPIO interface as well as the serial interface? I for one would like to be able to connect a key and sounder driver directly to the GPIO pins of a Pi without having to go through an adapter cable to a USB port.
Ah - you’re probably right.  Then the “interface type” just becomes another first-class option.  I can do that.
I should probably know this already, but what does 'Repeat key input locally' do? Isn't this the function of the 'Key & Sounder' interface?
I think that was an option Ed requested to have keyboard-input still activate the sounder?  Ed?
Another nit: I think it would be clearer to say 'Server' rather than 'HostName'. This is an advanced feature though, so it's probably not terribly important. Advanced users will know what it's for.
I’m easy.  Unless anyone else has strong feelings on the topic, I’ll re-label it to “Server” or “Server URL”?  We don’t expect a URL-type like “http:”, though, right?  Just a DNS name?
I know why you say 'Initial' on the wire number and code speed options, but personally I'd leave off the 'Initial' part. As it stands, the implication is if I change the value and save it, it only has effect the next time I start the program. I'd much rather have any changes on the preference panel take effect immediately. In the case of these particular options, the changes would be reflected in the main GUI window.
Hmmm… I’d hoped to avoid creating a situation where you could change the current wire either from the main window OR from the config panel, especially because that introduces confusion about what will end up in the config file if the main window control is not “sticky” but only the “Preferences”/“Options” dialog changes the wire used the next time it’s started?  Almost better to make both wire change modes change the config, or none if “Initial” is not the expected mode of use?
Like it or not, we're going to have to revisit the terminology of 'code speed' and 'character rate'. Both terms are ambiguous. I don't have a good solution at the moment.
I remember quite a bit of discussion on that.  I don’t find the current terms (“minimum character speed” and “text speed”, I believe) very helpful.  To me at least, “code speed” speaks directly to how short dots and dashes are, and “character rate” pretty clearly suggests the rate at which characters appear.

I’m open to suggestions for clearer terms, though!

The preferences panel in its current form is something I can hardly wait to use. However, the complexity is going to be too much for many users. Before releasing the program for general use, I believe we'll want to restructure the preference panel so that only the basic options appear unless the user specifically requests the advanced options.

I’m expecting to make such a refinement but I’d probably prefer breaking out some options into a separate “Advanced” dialog as a separate change.

Finally, and I know this is controversial, I really want the settings on the main GUI window to be temporary ('non-sticky') -- at least until I've had a chance to try it. I know Chris and Chip feel differently, and I understand why, but I very much want to see how well it would work in practice.

I expect to try that model first.  It interacts somewhat with whether “Preferences” changes to wire # or code speed, for instance, affect the values currently in use via the main window and whether one or the other, both, or neither affect the configured values the program starts with the next time.  Besides users who typically want to start on wire 11 or some headlines wire, I think the strongest case for a non-sticky, consistent wire # and code speed at startup is the museum use case.  I’d think it advantageous if the main window could be twiddles by visitors to their heart’s content while powering off the display and re-powering it the next day will still guarantee a consistent startup setting but Chris seems to disagree with that expectation.
Thanks for the feedback!
73, N6PWD
-Patrick.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/MorseKOB/PyKOB/issues/169#issuecomment-756486259, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALTAYK4PZDH6IRGS52YIBHTSYZMVTANCNFSM4TKMTFEA.

I had forgotten about this as well, but it basically means that the local key shouldn't be sounded locally. In the code that means that if it is a Loop interface the loop shouldn't be energized (so the sounder doesn't follow the key), if it is a Key&Sounder interface the key input shouldn't be echoed to the sounder. In both cases, the simulated sounder (computer audio) should not be sounded to follow the key.

There must be a rationale for this option that I'm not seeing. If you don't want to hear your key locally, you can uncheck the 'system sound' and 'local sounder' options. Is there a situation where you'd want to hear the Morse coming from the keyboard or the internet but not what's being sent on your local key?

@pwdirks How hard is it to do tabs? Could we have a 'General' and 'Advanced' tab. Otherwise a 'General'/'Typical' window and then an 'Advanced' window.

A separate 'Advanced' tab on the Preferences panel would be fantastic! But that's for the future. Let's implement the single panel as soon as possible.

I had forgotten about this as well, but it basically means that the local key shouldn't be sounded locally. In the code that means that if it is a Loop interface the loop shouldn't be energized (so the sounder doesn't follow the key), if it is a Key&Sounder interface the key input shouldn't be echoed to the sounder. In both cases, the simulated sounder (computer audio) should not be sounded to follow the key.

There must be a rationale for this option that I'm not seeing. If you don't want to hear your key locally, you can uncheck the 'system sound' and 'local sounder' options. Is there a situation where you'd want to hear the Morse coming from the keyboard or the internet but not what's being sent on your local key?

@pwdirks How hard is it to do tabs? Could we have a 'General' and 'Advanced' tab. Otherwise a 'General'/'Typical' window and then an 'Advanced' window.

A separate 'Advanced' tab on the Preferences panel would be fantastic! But that's for the future. Let's implement the single panel as soon as possible.

Another nit: I think it would be clearer to say 'Server' rather than 'HostName'. This is an advanced feature though, so it's probably not terribly important. Advanced users will know what it's for.

I’m easy. Unless anyone else has strong feelings on the topic, I’ll re-label it to “Server” or “Server URL”? We don’t expect a URL-type like “http:”, though, right? Just a DNS name?

Right, just a host name. No 'http'.

Like it or not, we're going to have to revisit the terminology of 'code speed' and 'character rate'. Both terms are ambiguous. I don't have a good solution at the moment.

I remember quite a bit of discussion on that. I don’t find the current terms (“minimum character speed” and “text speed”, I believe) very helpful. To me at least, “code speed” speaks directly to how short dots and dashes are, and “character rate” pretty clearly suggests the rate at which characters appear. I’m open to suggestions for clearer terms, though!

'Code speed' to me, with no further clarification, means the 'overall code speed'. In other words, if I'm copying text at a code speed of 20 words per minute, that means I copy twenty words every minute. The individual characters may be sent quickly with extra space between them, but I'm still copying code at 20 wpm.
'Character rate' is not so clear. Does it mean the number of characters I'm copying per minute? Or is it the rate of dots and dashes within each character. It's a problem. sigh...

Another nit: I think it would be clearer to say 'Server' rather than 'HostName'. This is an advanced feature though, so it's probably not terribly important. Advanced users will know what it's for.

I’m easy. Unless anyone else has strong feelings on the topic, I’ll re-label it to “Server” or “Server URL”? We don’t expect a URL-type like “http:”, though, right? Just a DNS name?

Right, just a host name. No 'http'.

Like it or not, we're going to have to revisit the terminology of 'code speed' and 'character rate'. Both terms are ambiguous. I don't have a good solution at the moment.

I remember quite a bit of discussion on that. I don’t find the current terms (“minimum character speed” and “text speed”, I believe) very helpful. To me at least, “code speed” speaks directly to how short dots and dashes are, and “character rate” pretty clearly suggests the rate at which characters appear. I’m open to suggestions for clearer terms, though!

'Code speed' to me, with no further clarification, means the 'overall code speed'. In other words, if I'm copying text at a code speed of 20 words per minute, that means I copy twenty words every minute. The individual characters may be sent quickly with extra space between them, but I'm still copying code at 20 wpm.
'Character rate' is not so clear. Does it mean the number of characters I'm copying per minute? Or is it the rate of dots and dashes within each character. It's a problem. sigh...

I think I suggested the 'Local Copy' option early on. I think we can drop it. I don't think any of the code currently uses it (yet to be implemented), so let's remove it.
I can add that to #223 to add a new option and remove that one.

I think I suggested the 'Local Copy' option early on. I think we can drop it. I don't think any of the code currently uses it (yet to be implemented), so let's remove it.
I can add that to #223 to add a new option and remove that one.

@pwdirks I agree that all options on one page gets us going and we can move things to an 'Advanced' tab/page later.

@pwdirks I agree that all options on one page gets us going and we can move things to an 'Advanced' tab/page later.

Anything remaining here?  If not, shall I file a separate issue to divide 'preferences' content between a 'General' and 'Advanced Settings' tab and close this issue?

Anything remaining here?  If not, shall I file a separate issue to divide 'preferences' content between a 'General' and 'Advanced Settings' tab and close this issue?

I think this is good for now. I'm working on the 'pick up updates' #236.

I think this is good for now. I'm working on the 'pick up updates' #236.

Basic preferences window has been merged to master; created issue #249, "Config/preferences should be split into General/basic and a separate "Advanced" tab", to follow up separating basic/advanced preferences into individual tabs.

Basic preferences window has been merged to master; created issue #249, "Config/preferences should be split into General/basic and a separate "Advanced" tab", to follow up separating basic/advanced preferences into individual tabs.


override create() and deploy() for projectrequest

Short description: Need to override deploy() call for project request, as currently if an unprivileged user is making a projectrequest post call, using the base class create(), this call would fail due to self.instance.metadata.resourceVersion line. As unprivileged user can't make this call.
More details:
What this PR does / why we need it:
Which issue(s) this PR fixes:
Special notes for reviewer:
Bug:

!verified

Fixed by https://github.com/RedHatQE/openshift-python-wrapper/pull/998


Add support for attachments from other services in Trello

Currently, attachments from other services in Trello (e.g, Google Drive) appear in draw.io section but cannot be accessed.

When you click on the draw.io power up, you only get the chance to create a new drawio drawing. Couldn't you simply add the ability to specify the file here and then pass that to drawio so that it loads that file and from then on, it's the same workflow. Seems simple from outside anyway :)

I'm in favour of switching to embedding as the only workflow. Direct editing via delete and create attachment is a hack and annoys more than it helps a lot of the time.
We'd have to allow existing diagrams to be edited somehow and need to think about how to treat uploading of files. Maybe open diagrams.net in a new tab in embed mode and let the user dictate the save point.


fix: fixed styling for modal headers (className fcc-modal)

[x ] I have read freeCodeCamp's contribution guidelines.
[x ] My pull request has a descriptive title (not a vague title like Update index.md)
[x ] My pull request targets the master branch of freeCodeCamp.
[x ] None of my changes are plagiarized from another source without proper attribution.
[x ] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Closes #35213

This PR is for https://github.com/freeCodeCamp/freeCodeCamp/issues/35213

@alan-nguy I have updated your PR body.  When you create a PR which you think will close an existing issue, please put Closes #IssueNumber in the body.  That way, if the PR gets merged, the issue will auto-close.
Thank you.

Can we have some screenshots for the result? Both in normal and night modes?

@RandellDawson thnx for the tip! Will keep in mind for next issue.

@raisedadead  There you go!

@raisedadead @RandellDawson Shouldn't the styling be there also for the Ask for Help and Watch a video modal just like in freecodecamp.org

@Nirajn2311 possibly in a separate PR?

@alan-nguy Thanks.

@Nirajn2311 @raisedadead  The styling do apply for the help and watch a video modals in light mode. But in night mode, the styling for those components do get overridden by a dark gray colour.
I've checked in production, in night mode the help and watch-a-video modal header background is dark green and the body is white but in the master branch, they are dark gray. Those changes seems to be applied recently.
Do we want a green background in the modal header and white background in the body in night mode or all dark gray? I'll be happy to make the changes once i get a confirmation.

Do we want a green background in the modal header and white background in the body in night mode or all dark gray?

I guess, it should be all dark gray

@alan-nguy @RandellDawson @raisedadead  .fcc-modal is a global class and used for several modals, but styles are placed for the class in .css file for specific component. Probably it would be better to place CSS rules for global class .fcc-modal in .css file somewhere above for global classes?

I agree with @DzmitryUr that the styling for .fcc-modal should be placed in a file that touches several components. I have moved the code to a global.css file.
I also added a minor css fix for night mode in the success completion modal. Attached are the styling results as per previous discussion

Visually, this all LGTM! Green headers for all popups on regular mode, and dark grey for night mode - just like the pictures. I checked, and there are no other earlier PR's that affect these files. As far as where the code should belong, I'm not sure where is best.

I like the look of what I see, but will defer to @raisedadead if using these particular CSS file is the ideal approach.

:sparkles: :sparkles: AWESOME!. :sparkles: :sparkles:
Thanks @alan-nguy, for this pull request and contributing to the code-base for the first time.
We will be looking forward for more contributions in future.
Cheers and happy contributing!


How to configure a pipeline to write to a private mongodb instance using the self-hosted IR?

Based on the paragraph below from the documentation on this page, it should be possible to "write" or copy "to" mongodb using the IR, The Visual configuration in V2 doesn't let you choose mongodb linked services as a sink.  What are the automation templates to configure that?
Prerequisites
To copy data from a MongoDB database that is not publicly accessible, you need to set up a Self-hosted Integration Runtime. See Self-hosted Integration Runtime article to learn details. The Integration Runtime provides a built-in MongoDB driver, therefore you don't need to manually install any driver when copying data from/to MongoDB.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 05eed8d3-001c-543f-afb2-823a2cff8a35
Version Independent ID: 1485e156-1eab-20ae-8fe6-ac82301fa846
Content
Content Source
Service: data-factory

@artieroggeband Thanks for the feedback, I assigned the case for further investigation.

@artieroggeband thanks for your feedback. ADF only support MongoDB as source but not sink - see the correct full matrix from https://docs.microsoft.com/en-us/azure/data-factory/copy-activity-overview#supported-data-stores-and-formats. The last sentence in Prerequisites section is wrong, i'll get it fixed right away.
#in-process


CI: policy trace had unexpected identity returned

Link: https://jenkins.cilium.io/job/cilium-ginkgo/job/cilium/job/master/1978/testReport/junit/(root)/runtime/RuntimePolicyImportTests_checks_policy_trace_output/
Failure output:
/home/jenkins/workspace/cilium-ginkgo_cilium_master/src/github.com/cilium/cilium/test/ginkgo-ext/scopes.go:383
Expected allowed identities [1 28734], but instead got [1 28734 36324]
Expected
    <[]int64 | len:2, cap:2>: [1, 28734]
to equal
    <[]int64 | len:3, cap:4>: [1, 28734, 36324]
/home/jenkins/workspace/cilium-ginkgo_cilium_master/src/github.com/cilium/cilium/test/runtime/Policies.go:1802

Logs: 9cc32cb8_RuntimePolicyImportTests_checks_policy_trace_output.zip

I believe this is due to test pollution leftover from the newly added FQDN tests.

I can't reproduce this locally by running the RuntimeFQDNPolicies test, and then running the RuntimePolicyImport test.

Issue re-occurred in the following builds:

https://jenkins.cilium.io/job/cilium-ginkgo/job/cilium/job/master/1988/testReport/junit/(root)/runtime/RuntimePolicyImportTests_checks_policy_trace_output/
https://jenkins.cilium.io/job/cilium-ginkgo/job/cilium/job/master/1983/testReport/junit/(root)/runtime/RuntimePolicyImportTests_checks_policy_trace_output/

This issue reoccurred several times today on master (see #6449).

The most recent documented failure:
https://github.com/cilium/cilium/issues/6449#issue-390470923
Expected
    <[]int64 | len:2, cap:2>: [1, 31542]
to equal
    <[]int64 | len:3, cap:4>: [1, 29722, 31542]

When retrieving the identities with label container:id.httpd2, only one was returned :
STEP: Getting all identities which contain label container:id.httpd2
time="2018-12-12T17:49:57Z" level=debug msg="running command: sudo cilium identity get --label=container:id.httpd2 -o json"
cmd: "sudo cilium identity get --label=container:id.httpd2 -o json" exitCode: 0 duration: 71.822034ms stdout:
[
  {
    "id": 31542,
    "labels": [
      "container:id.httpd2"
    ],
    "labelsSHA256": "6bc43f32a6e1ba7dd732cc2541be8fb702ba8008f7f81cd0f4d13ce29e64bbcb"
  }
]

But, cilium identity list in the bugtool shows the identity from the ToFQDNs test still exists:
29722   container:app=test
        container:id.httpd2
        container:id.service1
31542   container:id.httpd2
        container:id.service1

I don't understand why 29722 doesn't show up in the output of cilium identity get, but shows up in the output of cilium identity list.

The behavior where the identity is still in the output of cilium identity list but not in the output of cilium identity get is easy to reproduce.

Run the RuntimeToFQDNs test:

 ginkgo --focus="RuntimeFQDNPolicies" -v

Check that cilium identity list contains an identity with label container:id.httpd2:

...
46580   container:app=test
        container:id.httpd2
        container:id.service1
...

but cilium identity get --label=container:id.httpd2 -o json returns nothing:
$ cilium identity get --label=container:id.httpd2 -o json
level=info msg="Detected MTU 1500" subsys=mtu
Error: Cannot get identity for labels [container:id.httpd2]: [GET /identity][404] getIdentityNotFound

Turns out you need to specify all labels for the identity to resolve, not a subset of the labels (which is what policy trace uses):
$ cilium identity get --label=container:id.httpd2,container:id.service1,container:app=test -o json
level=info msg="Detected MTU 1500" subsys=mtu
[
  {
    "id": 46580,
    "labels": [
      "container:app=test",
      "container:id.httpd2",
      "container:id.service1"
    ],
    "labelsSHA256": "fd4881d7b289628c17b00b3aef9768ab5c6a91bf9cc9c27064de3c03490aa7f0"
  }
]

The latest hit of this issue was due to a test pollution issue from a prior test:
Expected allowed identities [1 13687 15810], but instead got [1 13687]
Expected
    <[]int64 | len:3, cap:3>: [1, 13687, 15810]
to consist of
    <[]int64 | len:2, cap:2>: [1, 13687]
the extra elements were
    <[]int64 | len:1, cap:1>: [15810]

Agent logs:
Nov 17 20:47:06 runtime cilium-agent[24319]: level=debug msg="UpdateIdentities: Adding a new identity" identity=15810 labels="[container:app=test container:id.httpd2 container:id.service1]" subsys=policy
...
Nov 17 20:50:15 runtime cilium-agent[9261]: level=debug msg="Removing identity references from policy cache" identity=15810 subsys=policy
...
Nov 17 20:50:20 runtime cilium-agent[9261]: level=debug msg="UpdateIdentities: Adding a new identity" identity=13687 labels="[container:id.httpd2 container:id.service1]" subsys=policy

$ git grep -C 3 app=test
test/runtime/fqdn.go-           vm.SampleContainersActions(
test/runtime/fqdn.go-                   helpers.Create,
test/runtime/fqdn.go-                   helpers.CiliumDockerNetwork,
test/runtime/fqdn.go:                   fmt.Sprintf("--dns=%s -l app=test", DNSServerIP))
test/runtime/fqdn.go-
test/runtime/fqdn.go-           Expect(vm.WaitEndpointsReady()).Should(BeTrue(), "Endpoints are not ready after timeout")
test/runtime/fqdn.go-   })

This is a different test creating pods with different identities, running immediately prior to the policies test here. The identity is not yet released at the time that this policies test runs. This policies test then prepares an exact list of expected identities, assuming that there are no other identities in the cluster remaining from prior tests. However, if the identity from the container in the earlier test is not yet garbage collected, it could interfere with this check in the test.