New command: spo web applicationcustomizer ensure

Usage
spo web applicationcustomizer ensure
Description
Ensure an application customizer is added to a site.
Options

Option
Description

-t, --title <title>
The title of the Application Customizer

-u, --webUrl <webUrl>
The site to add the Application Customizer on.

-i, --clientSideComponentId  <clientSideComponentId>
The Client Side Component Id (GUID) of the application customizer.

--clientSideComponentProperties  [clientSideComponentProperties]
The Client Side Component properties of the application customizer.

Examples
Ensures an application customizer is added to the sales site.
m365 spo web applicationcustomizer ensure --title "Some customizer" --clientSideComponentId  799883f5-7962-4384-a10a-105adaec6ffc --webUrl https://contoso.sharepoint.com/sites/sales

Additional Info
This functionality can be achieved by the spo customaction commands. However, I'm lazy... I don't want to search for what options I need for an application customizer.
We should reuse the functionality though.

Great suggestion for a convenience command. I'd suggest adding -i to --clientSideComponentId and -u to --webUrl.

Updated it!

It would be also helpful to have an example for the properties option, to make it clear what's the format that we're expecting.

I could give this a go if I may 😄 !

Nice @MathijsVerbeeck! 👏

Hi @martinlingstuyl
I'm currently implementing this issue, and for a specific web it works perfectly fine.
I am however  struggling with creating this to work tenant-wide with the current specs. Currently, what we accept is the ClientSideComponentId and that's it. The issue here is that, if the SPFx application in the app-catalog is not deployed to all sites in the organization, the list containing the tenant wide extensions will throw an error, because the component with the specified ClientSideComponentId is not found.
If however, we choose to make this solution available to all sites in the environment, a record will automatically be created in the tenant wide extensions list, so I don't really see a use for this, as we have the command app deploy for this, and we currently in this command do not specify from which solution the ClientSideComponentId originates, so it's impossible for us to identify the correct SPFx solution in the catalog which could deploy this app.
I'm not sure how we should go further on deploying an Application Customizer to the tenant app catalog... Do you have any suggestions by any chance?

Hi @MathijsVerbeeck,
I'd certainly think this is useful. I've recently wanted to deploy apps myself and only later on add some tenant-wide configuration.
There's a hidden list on each app catalog that contains the manifests of the installed apps. You can check it out at /Lists/ComponentManifests. You'll find information like ClientSideComponentId there, so checking if an app is deployed to the app catalog, using only the ClientSideComponentId would be fairly easy. The listitems there also contain a SolutionId, which is helpful when finding the app in another list: the Apps for SharePoint list (<appcatalogurl>/AppCatalog). The SolutionId can be found in the AppProductID column there. Also: the 'Added to all sites' column that's visible in the list (when you browse it in the UI) has the internal name SkipFeatureDeployment.
Checking those two lists and relevant columns would help give you the information you need so you can throw an intelligible error message to the user of the CLI when the app has nog been added or has not been enabled on all sites.
Would that be an idea?

Hi @martinlingstuyl
Makes sense. I'll implement it the way that you just suggested and will send you a message if I'm 'blocked' again or have a question.

Awesome @MathijsVerbeeck.
I'm seeing other issues come up as well: Listing/removing these configurations, listing/adding/removing listview commandset extensions. Would be nice to have an entire set of this! 😁

Perhaps it could be interesting to either make a helper function for adding the tenant-wide extension or making it a seperate command tenant extension add, tenant extension disable, .... But let's start with this one first so that we have a decent base!

Ah, this will need some discussion indeed!

I'd certainly think this is useful. I've recently wanted to deploy apps myself and only later on add some tenant-wide configuration.

@martinlingstuyl how did you went through this scenario? Have you extended the existing entry, or removed it and added a new one with the desired configuration? I think this should determine what this command should do?
As for tenant extension, it's too broad, because it would indicate something that's available m365-wide, while here, we're talking about something for the SharePoint tenant, so spo tenant would be clearer, before we do that though, let's clarify this what this command should do.

how did you went through this scenario? Have you extended the existing entry, or removed it and added a new one with the desired configuration? I think this should determine what this command should do?

I think I've done both things multiple times...

For spo tenant applicationcustomizer add we'd still have to clarify its logic: should the command update the existing entry overwriting the properties and webtemplate or shall it fail with an error if an entry already exists?
It's a good idea to split the commands up into two as you suggested.

Hi @waldekmastykarz, @MathijsVerbeeck, after some thought I think I'm leaning towards the following:

Split the command specs into two (spo tenant applicationcustomizer set and spo web applicationcustomizer set. This will make the flow much clearer, as we discussed.

Using the set verb instead of add. This might be clearer as we're setting configuration for an existing application. It will overwrite the entry if it already exists. Also its clearer because add might suggest that you could also deploy a package to the appcatalog with it. We're not actually adding an app. That should be done separately.

For the spo web section it will get the existing customaction and update it, or create a new one. For the tenantwideextension it will get the existing item and update it, or create a new listitem.

For the tenantwide deployment variant, we check the existence of the app and if there's in fact an applicationcustomizer that can be deployed tenantwide. The extra checks offer extra value here, I'd say.

For the site deployment we do not check the existence of the app, as we would need to execute quite some http calls to check the tenantwide and site collection app catalogs.

Something like that. What are your thoughts on this. Does it make sense?
We could extend this with more commands in the future:

spo tenant applicationcustomizer list

spo tenant applicationcustomizer get

spo tenant applicationcustomizer remove

spo web applicationcustomizer list

spo web applicationcustomizer get

spo web applicationcustomizer remove

spo tenant commandsetcustomizer set

spo tenant commandsetcustomizer get

spo tenant commandsetcustomizer list

spo tenant commandsetcustomizer remove

spo list commandsetcustomizer list

spo list commandsetcustomizer set

spo list commandsetcustomizer get

spo list commandsetcustomizer remove

If we want to combine add and set in one command, I suggest we should use the ensure verb which we use for this purpose in other places. That will keep it consistent and will more clearly set expectations. Other than that, the spec makes sense. 👍

Ok, I'll update the specs and create some new issues.

@martinlingstuyl A quick check - How would you like to check if a custom action already exists? As currently, the command customaction get only supports filtering on the id property or title property. Is it OK that I only check for the title option? I will also add a check that the clientSideComponentId matches the clientSideComponentId returned from the customaction get command.

@martinlingstuyl A quick check - How would you like to check if a custom action already exists? As currently, the command customaction get only supports filtering on the id property or title property. Is it OK that I only check for the title option? I will also add a check that the clientSideComponentId matches the clientSideComponentId returned from the customaction get command.

Yes, I would implement it like that!

Thinking about it some more @MathijsVerbeeck... having second thoughts. What's important to check here is the clientSideComponentId. That id should only be registered once to a site in case of application customizers. Otherwise you get unpredictable results I believe. Titles can differ or be written with slight differences and you would not notice you are ensuring something else.
So I guess we'd better take the clientSideComponentId as the linking pin here. Of course this means that you cannot use customaction get. Instead you can use the customaction list I think. Or we should build the Rest request manually here so we can use $filter.
Thoughts?

I do agree that filtering on clientSideComponentId may be better, as we can change the title.
Personall, to retrieve the customaction, I wouldn't use the customaction list command for this. I'd rather write the rest filter as this will limit the results and thus make the command quicker. Is this fine for you?

That's okay @MathijsVerbeeck, it will query less data, which is better. We may implement an spo applicationcustomizer get command later where we allow to get the customizer by either Id, Title or clientComponentId. When we have that we can update this command to share code.

By the way @MathijsVerbeeck, we haven't discussed it, but concerning scope: shall we just pick the Site scope for everything here? If people request it we could add a scope option later.

@martinlingstuyl I'm fine using the scope 'Site' to start, we could indeed extend this later if requested.
Will try and finish the PR later today!

Thinking about it some more @MathijsVerbeeck... having second thoughts. What's important to check here is the clientSideComponentId. That id should only be registered once to a site in case of application customizers. Otherwise you get unpredictable results I believe. Titles can differ or be written with slight differences and you would not notice you are ensuring something else.

@martinlingstuyl what if you have a configurable application customizer that can be registered/enabled multiple times with different parameters?

Yeah, I was doubting if that is a thing. Couldn't find people doing that and have a vague memory that it causes problems running them multiple times. But it could be a case of assumptions being someone's mother..
Do you have experiences to the contrary @waldekmastykarz?

I'm not building customer solutions these days so can't tell what are the odds of someone actually doing it, but it's technically possible, so we should at least consider it in our decision.

Ok, what is your suggestion in that case: compare on title just to be sure?
@nicodecleyre, @MathijsVerbeeck, @Jwaegebaert, you guys by any chance have experience with registering a single application customizers multiple times on the same site (with different props for example)

@waldekmastykarz, an idea would be:

create a separate add command to be able to deploy multiple customizers of the same clientSideComponentId.
for the ensure command, do use the clientSideComponentId, as an ensure based on title does not really make sense.
throw an error on the ensure command when there happen to be multiple instances of the same customizer.
create a separate set command to be able to update properties of instances of the same customizer.

@nicodecleyre, @MathijsVerbeeck, @Jwaegebaert, you guys by any chance have experience with registering a single application customizers multiple times on the same site (with different props for example)

I have never done this unfortunately.

Ok, what is your suggestion in that case @waldekmastykarz: compare on title just to be sure? I'm thinking: how useful is an ensure when you can create an unwanted duplicate by a small typo.
@nicodecleyre, @MathijsVerbeeck, @Jwaegebaert, you guys by any chance have experience with registering a single application customizers multiple times on the same site (with different props for example)

Hi @martinlingstuyl , it's technically possible:

Thanks @nicodecleyre, so what do you think, guys? What would make sense to you? ensure by title?

Couldn't we combine the two? Have a first check on clientSideComponentId, and if multiple matches are found also have a check on the title or maybe let the user decide which one they wish to update if multiple matches are found?

Couldn't we combine the two? Have a first check on clientSideComponentId, and if multiple matches are found also have a check on the title or maybe let the user decide which one they wish to update if multiple matches are found?

The only thing that is unique about a custom action is the Id parameter, you can add a custom action with the same title. The same applies to the name paramter and so on..
So I would suggest, if multiple matches log the different Ids and let the user decide. The same applies for other commands like for example pp card get, when multiple matches occur, it logs the cardids of the matches

We don't have an id option though, so letter the user decide is a bit hard.

We don't have an id option though, so letter the user decide is a bit hard.

Why not provide an option set title or id?

We don't have an id option though, so letter the user decide is a bit hard.

Why not provide an option set title or id?

We could provide title, clientSideComponentId or id, and then if either clientSideComponentId or title is specified and multiple matches are found prompt the user to specifiy the id value of the applicationcustomizer that he wishes to update? Does that sound reasonable @martinlingstuyl ?

Since there can be multiple instances of the same customizer enabled, perhaps we should revisit our stance and stick to just add, and leave disambiguation to the user, who can better express their intent in custom logic.

I was leaning towards the same,@waldekmastykarz.
Sorry for sending you on a wild goose chase @MathijsVerbeeck 😂 I'll update the specs.
Also I think we'll run into the same with the tenant command. Will look through the issues and update accordingly.

Have you already updated the specs? I believe that I see no change, or it may just be me :D

I just did @MathijsVerbeeck. (and I'm busy updating the others) You may continue the work :)


Update sbt to 1.9.6

About this PR
📦 Updates org.scala-sbt:sbt from 1.9.4 to 1.9.6
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "sbt" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scala-sbt", artifactId = "sbt" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, version-scheme:early-semver, commit-count:1

Codecov Report
Patch coverage has no change and project coverage change: +0.03% :tada:

Comparison is base (bdcb2e0) 89.50% compared to head (dc87c12) 89.54%.

:exclamation: Current head dc87c12 differs from pull request most recent head a4bec5d. Consider uploading reports for the commit a4bec5d to get more accurate results

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #1149      +/-   ##
===========================================
+ Coverage    89.50%   89.54%   +0.03%
===========================================
  Files          124      124
  Lines        10028    10028
  Branches       782      782
===========================================
+ Hits          8976     8980       +4
+ Misses        1052     1048       -4

see 8 files with indirect coverage changes

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


[feature] Auto Updater

As title says, i think if u add auto updater it would be much simplier than downloading evert new update from github

May be we should first start with an update checker. That would be easier to realize using e.g. GitHub API to get the meta data of the latest release and then compare it to the current version (if the current version is a regular release).
https://api.github.com/repos/skylot/jadx/releases/latest

May be we should first start with an update checker.

@jpstotz wait, this is already implemented (check this class), if new version available notification info should appear in right top corner of main window.
As for auto update, I will try to use jdeploy.


Trust the borrow checker.

Nice! Well spotted, I had no idea the reference to f was extending the lifetime of the changes borrow.


Newest Grafana

Is your feature request related to a problem? Please describe.
It would be nice to have newest Grafana.
For example: v10.2
https://github.com/grafana/grafana/releases
Currently seems that there is only v9.1.6
https://github.com/grafana/grafana-operator/blob/172fa6695b30ec68f2309e4afb173e4f254e8314/controllers/config/operator_constants.go#L6
It also could be helpful to have option to choose which Grafana version to use?

Hey @gunpuz We generally avoid using the latest version of Grafana (or have up until now, mainly due to the fact that we could never dedicate the time to ensure 100% compatibility with the operator with every new release). Hopefully now that we've migrated under Grafana, officially, we can probably start aligning a bit better
You can override the Grafana image through the Grafana resource container spec: https://github.com/grafana/grafana-operator/blob/master/examples/grafana_deployment/resources.yaml#L22-L23
The operator will respect this field if set by a user, otherwise it will use the GrafanaVersion from operator_constants.go.
You can also override any other field by doing this, and the operator will keep it updated and reconciled based on your definition.

Setting as triage/accepted, as we should probably start doing this going forward, but haven't yet, however, low priority as a workaround exists.

@HubertStefanski I've done the upgrade before, and I can take care of maintaining the version of Grafana on a regular basis.
Several questions:

How often should we upgrade? Should we do it with every stable release or follow a set schedule?
Is there a standard checklist or test procedure to check compatibility, or does this change with each release? Do we need to test each new Grafana feature separately?
Wouldn't it be simpler to make the Grafana version a configurable parameter? We could set certain stable versions as defaults, and if a user wants to upgrade, they can do so at their own risk.

Hey @vladimirmukhin !

How often should we upgrade? Should we do it with every stable release or follow a set schedule?
IMHO, as soon as possible, a few days/week delay shouldn't really be an issue, as long as we're stable on the operator side.

Is there a standard checklist or test procedure to check compatibility, or does this change with each release? Do we need to test each new Grafana feature separately?
There isn't a checklist, Ideally we would have all of our supported features covered by unit tests, so we could update things automatically, with relative confidence.
Currently, the operator only supports a handful of Grafana resources (dashboards, data sources, plugins, folders etc.), as long as there isn't a breaking change on the operator-managed resources coming from the Grafana API, then we should be all good.
Albeit, now that we are under the Grafana organization, this feature set will be expanded, due to popular demand (we have an alerting proposal in the works by @theSuess in #1349)

Wouldn't it be simpler to make the Grafana version a configurable parameter? We could set certain stable versions as defaults, and if a user wants to upgrade, they can do so at their own risk.

Not sure if I understand, the Grafana version is configurable already through https://github.com/grafana/grafana-operator/blob/master/examples/grafana_deployment/resources.yaml#L22-L23
Here, the operator will read the Grafana CR, and the related container spec and use the values provided by the user, if those values aren't set we will use the default (from operator_constants). So right now it is possible to use a Grafana container image version specified by the user (you can even point it to your own mirror, if you run in disconnected or limited network modes)

@vladimirmukhin

At the moment, I'd say, the hardcoded version of Grafana is simply the one we use in our local development environments (some of us override it). Like @HubertStefanski mentioned, users are free to specify whatever image they want, there are no restrictions;
Grafana API changes from time to time. It's easy to catch big breaking (from operator's perspective) changes as they are tied to major versions (e.g. alerting), but minor updates can also bring some surprises (e.g. in one version you're allowed to change UID of a resource, in another - not). Until we introduce more E2E tests, it's a bit unsafe to bump versions without carefully reading changelog. At the same time, I wouldn't really expect many things to break as a result of minor version bump;
It, probably, wouldn't make sense to bump a version each time as we don't publish daily builds of the operator, and, like it was mentioned above, users can follow their own upgrade policy;
Some upcoming changes like #1349 would certainly come with version upgrades.

To be clear, I'm not against updates, just wanted to highlight that things are not that simple as long as operator development is not fully tied to Grafana itself :)

@vladimirmukhin personally, I update to a new Grafana version as quickly as I can. So far, I haven't seen any big issues together with the operator.  But if I would find any issues, I would revert the change and create an issue in this repo.
I think it would be a good idea to bump to version 10 to get it as a part of our build pipeline. But as Hubert and Igor points out, the operator isn't currently tied to a specific version of grafana.
So from my point of view, please provide a PR where we bump to the latest grafana 10 version.

You can select the Grafana container image e.g:
apiVersion: grafana.integreatly.org/v1beta1
kind: Grafana
metadata:
  name: grafana
  namespace: grafana
  labels:
    dashboards: "grafana"
spec:
  config:
    log:
      mode: "console"
    auth:
      disable_login_form: "false"
    security:
      admin_user: root
      admin_password: secret
  deployment:
    spec:
      template:
        spec:
          containers:
            - name: grafana
              image: grafana/grafana:10.3.1

Closed in #1558


Example from documentation dont work

I'm trying to use the https://github.com/moneyphp/money package for PHP (version 7.1 with Laravel 5.5 on debian).
The documentation has this section: http://moneyphp.org/en/latest/features/parsing.html#intl-localized-decimal-parser
But if i copy this code, they throw an exception "Cannot parse 1.000,00 to Money. Number parsing failed: U_PARSE_ERROR".
I have installed the intl extension. This section works fine: http://moneyphp.org/en/latest/features/parsing.html#intl-money-parser
Originally posted at: https://stackoverflow.com/questions/48624110/moneyphp-dont-work-like-in-documentation

Thanks for reporting this issue. Looks like the code is indeed wrong (probably a copy&paste error).
Please see #451 for the fixed example.


KafkaStreams + TopologyTestDriver example

This PR adds an example of how to test Kafka Streams applications based on Spring Kafka with the TopologyTestDriver.
Please,  let me know any feedback/suggestion as I'm not precisely familiar with Spring Boot 😅
Thanks! 🙏

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

@nachomdo Thank you for signing the Contributor License Agreement!

@nachomdo Thanks for this PR. It's been a while, but we decided to merge this PR before the 3.2.0 release after polishing some changes.


Enables Feign.Builder customization

This PR adds a new type named FeignBuilderCustomizer using which Feign.Builders can be customized. For example, a customizer bean can be defined to enable decode404 on all Feign instances created via @FeignClient. Refer FeignClientTests#testFeignBuilderCustomizerTest404() for a demonstration. Note that the test configures the customizer at the @FeignClient level, while it's possible to have it configured at the @EnableFeignClients level as well. See #1838 for additional details.
Please review and merge.
Thanks,
Venil

Codecov Report

Merging #1858 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master   #1858      +/-   ##
=========================================
+ Coverage   75.39%   75.4%   +0.01%
=========================================
  Files         209     209
  Lines        6340    6343       +3
  Branches      793     794       +1
=========================================
+ Hits         4780    4783       +3
  Misses       1222    1222
  Partials      338     338

Impacted Files
Coverage Δ

...rk/cloud/netflix/feign/FeignClientFactoryBean.java
76.25% <100%> (+0.92%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0c7994c...0088dc3. Read the comment docs.

I'd rather not introduce another class if possible. It is possible to have decode404 respond to properties.

I was trying to make the solution more generic and not just for decode404. If we don't want that, then could you tell me which properties class you're talking about?

There isn't a properties class. At this point, I'm looking for simplicity rather than increased complexity.

Do you suggest that I create a new @ConfigurationProperties class?

I don't know if FeignClientsRegistrar is created before @ConfigurationProperties or not, so. Not sure. You can certainly use the environment there. I'd also add resolve placeholders to the decode404.

Okay, I'll have a look. Thanks!

Is this superseded by #1942?

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.


Light mode is bonked for chapters

will .. check that. and fix it

@hkirat
I think #178  addresses this issue.
@aadeshkulkarni , can you please confirm here once ..

Yes, that's right.
@hkirat - have added before and after screenshots in #178.


How to Keep origin gif transparent

I am trying to split a gif to multi frames, then write some words on it by canvas, finally combine them to a new gif.
But when origin gif contains transparent, then new gif is not with transparent no longer. How should I fix it? It seems like that setTransparent() is not work for it.

It's been a while but I believe setTransparent is used by calling setTransparent(0xFF00FF) (or whatever color you'd like) before each addFrame() call (or analyzePixels()/writeImageInfo() if you want to get that low level)
https://github.com/twolfson/gif-encoder/blob/0.7.2/lib/GIFEncoder.js#L165-L174
https://github.com/twolfson/gif-encoder/blob/0.7.2/lib/GIFEncoder.js#L216-L229
https://github.com/twolfson/gif-encoder/blob/0.7.2/lib/GIFEncoder.js#L309-L318
https://github.com/twolfson/gif-encoder/blob/0.7.2/lib/GIFEncoder.js#L352-L385
https://github.com/twolfson/gif-encoder/blob/0.7.2/lib/GIFEncoder.js#L194-L214


Undefined symbol "RAND_egd" in file modules/ssl/.libs/libmod_ssl.a(ssl_engine_rand.o)

while trying to build the apache httpd 2.4.54 server (apr module version 1.6.1). It complains about the missing symbol when following compilation command fails:
httpd-2.4.54/srclib/apr/libtool --silent --mode=link gcc -std=gnu99    -m32    -L/var/opt/sun/xvm/uce/opt/server/lib   -o httpd  modules.lo buildmark.o -export-dynamic server/libmain.la  modules/aaa/libmod_authz_host.la modules/aaa/libmod_authz_core.la modules/cache/libmod_cache.la modules/cache/libmod_cache_disk.la modules/cache/libmod_socache_dbm.la modules/core/libmod_so.la modules/filters/libmod_reqtimeout.la modules/filters/libmod_filter.la modules/filters/libmod_deflate.la modules/http/libmod_http.la modules/http/libmod_mime.la modules/loggers/libmod_log_config.la modules/metadata/libmod_mime_magic.la modules/metadata/libmod_headers.la modules/metadata/libmod_setenvif.la modules/proxy/libmod_proxy.la modules/proxy/libmod_proxy_connect.la modules/proxy/libmod_proxy_ftp.la modules/proxy/libmod_proxy_http.la modules/proxy/libmod_proxy_fcgi.la modules/proxy/libmod_proxy_scgi.la modules/proxy/libmod_proxy_uwsgi.la modules/proxy/libmod_proxy_wstunnel.la modules/proxy/libmod_proxy_ajp.la modules/ssl/libmod_ssl.la modules/arch/unix/libmod_unixd.la modules/dav/main/libmod_dav.la modules/generators/libmod_autoindex.la modules/generators/libmod_cgi.la modules/dav/fs/libmod_dav_fs.la modules/sigvalidate/libmod_sigvalidate.la modules/mappers/libmod_dir.la modules/mappers/libmod_alias.la modules/mappers/libmod_rewrite.la  server/mpm/prefork/libprefork.la  os/unix/libos.la -L/var/opt/sun/xvm/uce/opt/server/lib -R/var/opt/sun/xvm/uce/opt/server/lib -lpcre          -lz                         /scratch/rmozes/apache_upgrade_2.4.54/httpd-2.4.54/srclib/apr-util/libaprutil-1.la -lexpat /scratch/rmozes/apache_upgrade_2.4.54/httpd-2.4.54/srclib/apr/libapr-1.la -luuid -lsendfile -lrt -lpthread -lsocket -lnsl
Undefined                       first referenced
symbol                             in file
RAND_egd                            modules/ssl/.libs/libmod_ssl.a(ssl_engine_rand.o)
ld: fatal: symbol referencing errors. No output written to .libs/httpd
I indeed couldn't find the symbol:
nm -gDC /var/opt/sun/xvm/uce/opt/server/lib/libssl.so | grep RAND_egd
OS: solaris 10 x86 machine (Oracle Solaris 10 1/13 s10x_u11wos_24a X86)
SSL: bash-3.2$ /var/opt/sun/xvm/uce/opt/server/bin/openssl
OpenSSL> version
OpenSSL 1.1.1o  3 May 2022
configdata.pm.txt

I indeed couldn't find the symbol:
nm -gDC /var/opt/sun/xvm/uce/opt/server/lib/libssl.so | grep RAND_egd

Note that this is a libcrypto symbol not libssl - so I would not expect the above command to find it.

bash-3.2$ nm -gDC /var/opt/sun/xvm/uce/opt/server/lib/libcrypto.so | grep RAND_egd
same result with libcrypto.so . not found

I see the exact same issue when compiling with openssl-1.1.1q

openssl was compiled with:
./Configure solaris-x86-gcc shared threads 386 no-ssl3 --prefix=/var/opt/sun/xvm/uce/opt/server --openssldir=/var/opt/sun/xvm/uce/opt/server
CNF_CFLAGS=-pthreads -Wa,--noexecstack
CNF_EX_LIBS=-lsocket -lnsl -ldl -pthreads -lrt

Please see also https://bz.apache.org/bugzilla/show_bug.cgi?id=66297
So far this looks to me like an openssl bug

./Configure solaris-x86-gcc shared threads 386 no-ssl3 --prefix=/var/opt/sun/xvm/uce/opt/server --openssldir=/var/opt/sun/xvm/uce/opt/server

EGD support is disabled by default, and this Configure line does not enable it. What is in your "openssconf.h" header file? I would expect to see lines like this:
#ifndef OPENSSL_NO_EGD
# define OPENSSL_NO_EGD
#endif

If the above lines are present then OpenSSL is declaring that EGD support is disabled. The openssl/rand.h header file contains these lines:
# ifndef OPENSSL_NO_EGD
int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes);
int RAND_egd(const char *path);
int RAND_egd_bytes(const char *path, int bytes);
# endif

So the declaration of RAND_egd is hidden in the event that OPENSSL_NO_EGD has been defined in opensslconf.h as I would expect.

openssl was compiled with: ./Configure solaris-x86-gcc shared threads 386 no-ssl3 --prefix=/var/opt/sun/xvm/uce/opt/server --openssldir=/var/opt/sun/xvm/uce/opt/server

You need to add enable-egd in there

@mattcaswell my files look the same as you mentioned
in (my) opensslconf.h file I see the same
#ifndef OPENSSL_NO_EGD
define OPENSSL_NO_EGD
#endif
and rand.h contains the same lines
ifndef OPENSSL_NO_EGD
int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes);
int RAND_egd(const char *path);
int RAND_egd_bytes(const char *path, int bytes);
endif
So if all is defined correctly how come the Apache compilation decided it should be enabled? Is it then a bug in their configure process? feel free to comment inside https://bz.apache.org/bugzilla/show_bug.cgi?id=66297 or I can link it to your answer here.
Thanks!

It seems likely to me that one of two things is happening:

A bug in the Apache build process is incorrectly detecting that EGD is enabled when it is not

or

There are 2 sets of OpenSSL headers being used somehow. One set of headers has EGD enabled and one set does not. The apache module is being built using a set of headers that show EGD as enabled, but it is ultimately linking against a library that does not have this support.

Either way this does not seem to be an OpenSSL issue.

@mattcaswell thanks for confirming this


.gitconfig: use diff-so-fancy for visualising diffs

Closes #626.

:+1:

I think you should use less --tabs=4 -RFX, as in 4 space indents everywhere including the beginning. 5 is such an odd number. 8 is the default (perhaps influenced by Torvalds).

I think you should use less --tabs=4 -RFX, as in 4 space indents everywhere including the beginning. 5 is such an odd number. 8 is the default (perhaps influenced by Torvalds).

The tab stops are indeed set in 4 space intervals, it's just offset by 1 (not really sure why, I assume it's to compensate for excess diff output).


Change request for Mailchimplist getMember function

I think it would be more practical if this wrapper created a MD5 hash of the email and converted it to lower case, so the method signature of getMember would be getMember(String email) and not getMember(subscriberHash). I would believe that most of the users of this wrapper store their emails as emails, and not as MD5 hashes of email (but then again, I am no expert).

The MailChimpList methods now accept either the member's email address or subscriber hash.

As of version 0.7.0 all APIs that expect an email address accept either the MD5 hash or email address


Config: Add a DELAY_AFTER_LOAD option to delay snapshot further after onload event

Type

[x] General Question or Disussion
[ ] Propose a brand new feature
[ ] Request modification of existing behavior or design

What is the problem that your feature request solves

The PDF and screenshot are generated too early. As you can see. I can only see a meaningless loading page in PDF and screenshot instead of actual content.
How badly do you want this new feature?

[ ] It's an urgent deal-breaker, I cant live without it
[x] It's important to add it in the near-mid term future
[ ] It would be nice to have eventually

They're generated when the page onload event fires.  If you're seeing pages show up empty in screenshot, it means those sites are doing some weird post-load AJAX to load their content (which is fairly unusual).
We can try adding a config var like DELAY_AFTER_LOAD=5 do add a 5s delay after page onload, but I can't promise it'll be finished within the next month.

Any updates?


Here my finished attempt to seed the qids into the wiki

See the logs of the test run
C:\Users\mors\AppData\Local\Programs\Python\Python37\python.exe C:/eprojects/git/ag-gipp/AnnoMathTeX/evaluation/wikipedia-export/mathqidupdater/add_qids.py
VERBOSE:pywiki:Found 2 wikipedia:en processes running, including this one.
WARNING: C:/eprojects/git/ag-gipp/AnnoMathTeX/evaluation/wikipedia-export/mathqidupdater/add_qids.py:16: FutureWarning: pywikibot.page.BasePage.latestRevision is deprecated for 5 years and 4 months; use latest_revision_id instead.
  oldid = page.latestRevision()

WARNING:py.warnings:C:/eprojects/git/ag-gipp/AnnoMathTeX/evaluation/wikipedia-export/mathqidupdater/add_qids.py:16: FutureWarning: pywikibot.page.BasePage.latestRevision is deprecated for 5 years and 4 months; use latest_revision_id instead.
  oldid = page.latestRevision()

INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already contains qid in attributes: " qid=Q11376"
INFO:root:Found target for Q11376.
INFO:root:Found target for Q161635.
WARNING:root:Skipping Q161635 as already contains qid in attributes: " qid=Q161635"
INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already replaced above.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already contains qid in attributes: " qid=Q11465"
INFO:root:Found target for Q11465.
INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already replaced above.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already replaced above.
INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already replaced above.
INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already replaced above.
Sleeping for 18.7 seconds, 2020-12-03 15:47:06
INFO:pywiki:Sleeping for 18.7 seconds, 2020-12-03 15:47:06
Page [[User:Physikerwelt/sandbox/Acceleration]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Acceleration]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992103955&oldid=992102363
INFO:root:Found target for Q11402.
WARNING:root:Skipping Q11402 as already contains qid in attributes: " qid=Q11402"
INFO:root:Found target for Q11402.
INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already contains qid in attributes: " qid=Q11376"
INFO:root:Found target for Q48103.
WARNING:root:Skipping Q48103 as already contains qid in attributes: " qid=Q48103"
INFO:root:Found target for Q11402.
WARNING:root:Skipping Q11402 as already replaced above.
INFO:root:Found target for Q11402.
WARNING:root:Skipping Q11402 as already replaced above.
INFO:root:Found target for Q48103.
INFO:root:Found target for Q11376.
INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already replaced above.
INFO:root:Found target for Q161635.
WARNING:root:Skipping Q161635 as already contains qid in attributes: " qid=Q161635"
INFO:root:Found target for Q161635.
Sleeping for 17.6 seconds, 2020-12-03 15:47:27
INFO:pywiki:Sleeping for 17.6 seconds, 2020-12-03 15:47:27
Page [[User:Physikerwelt/sandbox/Angular acceleration]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Angular acceleration]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992103994&oldid=992103133
INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already contains qid in attributes: " qid=Q11376"
INFO:root:Found target for Q11652.
WARNING:root:Skipping Q11652 as already contains qid in attributes: " qid=Q11652"
INFO:root:skipping Angular_frequency nothing was changed
INFO:root:Found target for Q48103.
INFO:root:Found target for Q48103.
WARNING:root:Skipping Q48103 as already replaced above.
INFO:root:Found target for Q165618.
INFO:root:Found target for Q165618.
WARNING:root:Skipping Q165618 as already replaced above.
INFO:root:Found target for Q161635.
INFO:root:Found target for Q161635.
WARNING:root:Skipping Q161635 as already replaced above.
INFO:root:Found target for Q161635.
WARNING:root:Skipping Q161635 as already replaced above.
INFO:root:Found target for Q41273.
INFO:root:Found target for Q46276.
INFO:root:Found target for Q41273.
WARNING:root:Skipping Q41273 as already replaced above.
Sleeping for 17.4 seconds, 2020-12-03 15:47:47
INFO:pywiki:Sleeping for 17.4 seconds, 2020-12-03 15:47:47
Page [[User:Physikerwelt/sandbox/Angular momentum]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Angular momentum]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104032&oldid=992097180
INFO:root:Found target for Q161635.
Sleeping for 16.4 seconds, 2020-12-03 15:48:08
INFO:pywiki:Sleeping for 16.4 seconds, 2020-12-03 15:48:08
Page [[User:Physikerwelt/sandbox/Angular velocity]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Angular velocity]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104077&oldid=992097205
INFO:root:Found target for Q2945123.
INFO:root:Found target for Q48103.
INFO:root:Found target for Q41273.
INFO:root:Found target for Q41273.
WARNING:root:Skipping Q41273 as already replaced above.
INFO:root:Found target for Q48103.
WARNING:root:Skipping Q48103 as already replaced above.
INFO:root:Found target for Q11402.
INFO:root:Found target for Q2945123.
WARNING:root:Skipping Q2945123 as already replaced above.
INFO:root:Found target for Q2945123.
WARNING:root:Skipping Q2945123 as already replaced above.
INFO:root:Found target for Q2945123.
WARNING:root:Skipping Q2945123 as already replaced above.
INFO:root:Found target for Q2945123.
WARNING:root:Skipping Q2945123 as already replaced above.
INFO:root:Found target for Q2945123.
WARNING:root:Skipping Q2945123 as already replaced above.
INFO:root:Found target for Q2945123.
WARNING:root:Skipping Q2945123 as already replaced above.
INFO:root:Found target for Q2945123.
WARNING:root:Skipping Q2945123 as already replaced above.
Sleeping for 17.6 seconds, 2020-12-03 15:48:27
INFO:pywiki:Sleeping for 17.6 seconds, 2020-12-03 15:48:27
Page [[User:Physikerwelt/sandbox/Center of mass]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Center of mass]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104128&oldid=992097229
INFO:root:Found target for Q11376.
Sleeping for 17.4 seconds, 2020-12-03 15:48:47
INFO:pywiki:Sleeping for 17.4 seconds, 2020-12-03 15:48:47
Page [[User:Physikerwelt/sandbox/Centrifugal force]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Centrifugal force]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104175&oldid=992101632
INFO:root:Found target for Q11376.
INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already replaced above.
INFO:root:Found target for Q11465.
INFO:root:Found target for Q11402.
INFO:root:Found target for Q11402.
WARNING:root:Skipping Q11402 as already replaced above.
INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already replaced above.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already replaced above.
INFO:root:Found target for Q161635.
INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already replaced above.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already replaced above.
INFO:root:Found target for Q161635.
WARNING:root:Skipping Q161635 as already replaced above.
Sleeping for 17.5 seconds, 2020-12-03 15:49:07
INFO:pywiki:Sleeping for 17.5 seconds, 2020-12-03 15:49:07
Page [[User:Physikerwelt/sandbox/Centripetal force]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Centripetal force]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104224&oldid=992097277
INFO:root:Found target for Q11465.
INFO:root:Found target for Q11376.
WARNING:root:Skipping Q11376 as already contains qid in attributes: " qid=Q186300"
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already replaced above.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already contains qid in attributes: " qid=Q3711325"
INFO:root:Found target for Q161635.
WARNING:root:Skipping Q161635 as already contains qid in attributes: " qid=Q161635"
Sleeping for 16.4 seconds, 2020-12-03 15:49:28
INFO:pywiki:Sleeping for 16.4 seconds, 2020-12-03 15:49:28
Page [[User:Physikerwelt/sandbox/Circular motion]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Circular motion]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104270&oldid=992097306
INFO:root:Found target for Q173817.
INFO:root:Found target for Q161635.
INFO:root:Found target for Q11465.
INFO:root:Found target for Q11376.
INFO:root:Found target for Q161635.
WARNING:root:Skipping Q161635 as already replaced above.
Sleeping for 17.7 seconds, 2020-12-03 15:49:47
INFO:pywiki:Sleeping for 17.7 seconds, 2020-12-03 15:49:47
Page [[User:Physikerwelt/sandbox/Coriolis force]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Coriolis force]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104325&oldid=992097342
INFO:root:Found target for Q1228250.
INFO:root:Found target for Q172137.
INFO:root:Found target for Q3268014.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q11376.
INFO:root:Found target for Q11465.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already replaced above.
INFO:root:Found target for Q107617.
Sleeping for 16.7 seconds, 2020-12-03 15:50:08
INFO:pywiki:Sleeping for 16.7 seconds, 2020-12-03 15:50:08
Page [[User:Physikerwelt/sandbox/Equations of motion]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Equations of motion]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104377&oldid=992097361
INFO:root:Found target for Q170282.
INFO:root:Found target for Q11465.
INFO:root:Found target for Q42213.
INFO:root:Found target for Q48103.
INFO:root:Found target for Q48103.
WARNING:root:Skipping Q48103 as already replaced above.
INFO:root:Found target for Q824561.
INFO:root:Found target for Q170282.
WARNING:root:Skipping Q170282 as already replaced above.
INFO:root:Found target for Q2028919.
INFO:root:Found target for Q3268014.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
Sleeping for 17.2 seconds, 2020-12-03 15:50:28
INFO:pywiki:Sleeping for 17.2 seconds, 2020-12-03 15:50:28
Page [[User:Physikerwelt/sandbox/Force]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Force]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104442&oldid=992101651
INFO:root:Found target for Q192510.
INFO:root:Found target for Q161635.
INFO:root:Found target for Q11652.
Sleeping for 15.1 seconds, 2020-12-03 15:50:50
INFO:pywiki:Sleeping for 15.1 seconds, 2020-12-03 15:50:50
Page [[User:Physikerwelt/sandbox/Frequency]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Frequency]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104484&oldid=992097411
INFO:root:Found target for Q3382125.
INFO:root:Found target for Q834020.
INFO:root:Found target for Q3268014.
INFO:root:Found target for Q891408.
INFO:root:Found target for Q834020.
WARNING:root:Skipping Q834020 as already replaced above.
INFO:root:Found target for Q3299367.
INFO:root:Found target for Q170282.
INFO:root:Found target for Q170282.
WARNING:root:Skipping Q170282 as already replaced above.
Sleeping for 17.9 seconds, 2020-12-03 15:51:07
INFO:pywiki:Sleeping for 17.9 seconds, 2020-12-03 15:51:07
Page [[User:Physikerwelt/sandbox/Harmonic oscillator]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Harmonic oscillator]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104537&oldid=992095195
INFO:root:Found target for Q161635.
INFO:root:Found target for Q3268014.
Sleeping for 17.4 seconds, 2020-12-03 15:51:28
INFO:pywiki:Sleeping for 17.4 seconds, 2020-12-03 15:51:28
Page [[User:Physikerwelt/sandbox/Jerk (physics)]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Jerk (physics)]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104591&oldid=992097461
INFO:root:Found target for Q16853908.
INFO:root:Found target for Q272621.
INFO:root:Found target for Q2597952.
INFO:root:Found target for Q46276.
INFO:root:Found target for Q41273.
INFO:root:Found target for Q3268014.
INFO:root:Found target for Q11376.
INFO:root:Found target for Q140028.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already contains qid in attributes: " qid=Q2397319"
Sleeping for 17.6 seconds, 2020-12-03 15:51:47
INFO:pywiki:Sleeping for 17.6 seconds, 2020-12-03 15:51:47
Page [[User:Physikerwelt/sandbox/Mass]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Mass]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104655&oldid=992101654
VERBOSE:pywiki:Found 2 wikipedia:en processes running, including this one.
INFO:root:Found target for Q41273.
INFO:root:Found target for Q1068463.
INFO:root:Found target for Q1068463.
WARNING:root:Skipping Q1068463 as already replaced above.
INFO:root:Found target for Q1068463.
WARNING:root:Skipping Q1068463 as already replaced above.
INFO:root:Found target for Q3268014.
INFO:root:Found target for Q41273.
WARNING:root:Skipping Q41273 as already replaced above.
INFO:root:Found target for Q41273.
WARNING:root:Skipping Q41273 as already replaced above.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q41273.
WARNING:root:Skipping Q41273 as already replaced above.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q3268014.
WARNING:root:Skipping Q3268014 as already replaced above.
INFO:root:Found target for Q41273.
WARNING:root:Skipping Q41273 as already replaced above.
INFO:root:Found target for Q41273.
WARNING:root:Skipping Q41273 as already replaced above.
INFO:root:Found target for Q41273.
WARNING:root:Skipping Q41273 as already replaced above.
Sleeping for 16.1 seconds, 2020-12-03 15:52:09
INFO:pywiki:Sleeping for 16.1 seconds, 2020-12-03 15:52:09
Page [[User:Physikerwelt/sandbox/Momentum]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Momentum]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104706&oldid=992098740
INFO:root:Found target for Q165618.
INFO:root:Found target for Q165618.
WARNING:root:Skipping Q165618 as already replaced above.
INFO:root:Found target for Q165618.
WARNING:root:Skipping Q165618 as already replaced above.
Sleeping for 16.8 seconds, 2020-12-03 15:52:28
INFO:pywiki:Sleeping for 16.8 seconds, 2020-12-03 15:52:28
Page [[User:Physikerwelt/sandbox/Moment of inertia]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Moment of inertia]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104756&oldid=992098343
INFO:root:skipping Motion nothing was changed
INFO:root:skipping Rotation nothing was changed
INFO:root:Found target for Q3711325.
INFO:root:Found target for Q3711325.
WARNING:root:Skipping Q3711325 as already replaced above.
INFO:root:Found target for Q3711325.
WARNING:root:Skipping Q3711325 as already replaced above.
INFO:root:Found target for Q3711325.
WARNING:root:Skipping Q3711325 as already replaced above.
Sleeping for 15.5 seconds, 2020-12-03 15:52:50
INFO:pywiki:Sleeping for 15.5 seconds, 2020-12-03 15:52:50
Page [[User:Physikerwelt/sandbox/Speed]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Speed]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104816&oldid=992098402
INFO:root:Found target for Q25342.
INFO:root:Found target for Q25342.
WARNING:root:Skipping Q25342 as already replaced above.
INFO:root:Found target for Q46276.
INFO:root:Found target for Q42213.
INFO:root:Found target for Q11402.
INFO:root:Found target for Q11402.
WARNING:root:Skipping Q11402 as already replaced above.
INFO:root:Found target for Q48103.
INFO:root:Found target for Q48103.
WARNING:root:Skipping Q48103 as already replaced above.
INFO:root:Found target for Q48103.
WARNING:root:Skipping Q48103 as already replaced above.
INFO:root:Found target for Q48103.
WARNING:root:Skipping Q48103 as already replaced above.
INFO:root:Found target for Q48103.
WARNING:root:Skipping Q48103 as already replaced above.
INFO:root:Found target for Q48103.
WARNING:root:Skipping Q48103 as already replaced above.
INFO:root:Found target for Q48103.
WARNING:root:Skipping Q48103 as already replaced above.
Sleeping for 17.4 seconds, 2020-12-03 15:53:08
INFO:pywiki:Sleeping for 17.4 seconds, 2020-12-03 15:53:08
Page [[User:Physikerwelt/sandbox/Torque]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Torque]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104869&oldid=992098427
INFO:root:Found target for Q11465.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already replaced above.
INFO:root:Found target for Q41273.
INFO:root:Found target for Q46276.
INFO:root:Found target for Q190291.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already replaced above.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already replaced above.
INFO:root:Found target for Q11376.
INFO:root:Found target for Q190291.
WARNING:root:Skipping Q190291 as already replaced above.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already replaced above.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already replaced above.
INFO:root:Found target for Q11465.
WARNING:root:Skipping Q11465 as already replaced above.
Sleeping for 17.3 seconds, 2020-12-03 15:53:28
INFO:pywiki:Sleeping for 17.3 seconds, 2020-12-03 15:53:28
Page [[User:Physikerwelt/sandbox/Velocity]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Velocity]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104930&oldid=992098744
INFO:root:Found target for Q42213.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q11402.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q25342.
INFO:root:Found target for Q11402.
WARNING:root:Skipping Q11402 as already replaced above.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q48103.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
INFO:root:Found target for Q42213.
WARNING:root:Skipping Q42213 as already replaced above.
Sleeping for 17.3 seconds, 2020-12-03 15:53:48
INFO:pywiki:Sleeping for 17.3 seconds, 2020-12-03 15:53:48
Page [[User:Physikerwelt/sandbox/Work (physics)]] saved
INFO:pywiki:Page [[User:Physikerwelt/sandbox/Work (physics)]] saved
INFO:root:Review the changes at https://en.wikipedia.org/w/index.php?type=revision&diff=992104983&oldid=992098477
VERBOSE:pywiki:Dropped throttle(s).
VERBOSE:pywiki:Closing network session.
VERBOSE:pywiki:Network session closed.

Process finished with exit code 0

Articles Angular frequency, Motion, Rotation, Newton's laws of motion unchanged (e.g., 'INFO:root:skipping Angular_frequency nothing was changed'). Maybe there is something wrong with your filter. Manually I see equations with QIDs in the respective articles.

@philsMINT can you do a code-review and provide specific feedback, i.e., which file, which qid, where is the = sign.


Implement bubble sort in Ruby

@jiegillet It looks like you know Ruby well enough to take this PR, so I assigned it to you.

For the sake of consistency, I'd suggest to modify the code such that it is accepted by rubocop. Of course, this is a matter of preference and you might have intentionally abstained from using it. (I am also just passing by after finding this project via Youtube's 3Blue1Brown channel, so I don't know where this project stands with regard to Ruby code conventions.)
The parentheses for the main() function (ie a function without parameters) strike me as particularly unconventional in Ruby. Also, the return keyword may be omitted, and Rubocop suggests to prefer each over for. Eventually, the result would be:
#!/usr/bin/env ruby

def bubble_sort(arr)
  (0..arr.length - 1).each do
    (0..arr.length - 2).each do |k|
      next unless arr[k] > arr[k + 1]
      arr[k + 1], arr[k] = arr[k], arr[k + 1]
    end
  end

  arr
end

def main
  range = [200, 79, 69, 45, 32, 5, 15, 88, 620, 125]
  puts "The range before sorting is #{range}"
  range = bubble_sort(range)
  puts "The range after sorting is #{range}"
end

main

Thanks for the input @andreaswachowski, I haven't written Ruby code in a while, so your suggestions are welcome. I also prefereach over for, although I'm not sure that next unless is better than a simple if in this case. No big deal though ^^

@jiegillet I agree with you that the next is debatable. I followed rubocop's suggestion here, but as mentioned often that's a matter of preference.

@andreaswachowski I implemented your changes except for the next, which I did not think was necessary.

Hey @jiegillet I made a forced update to my feature branch, should be up to date now (been busy at work haha)


avoid using max stream duration for no timeout cases

Setting maxstream duration for cases where VS does not specify timeout, does not allow to set timeout via envoy filters. Since max stream duration has some regressions, use the deprecated "MaxGrpcTimeout" similar to how we do for actual timeout cases.

[ ] Ambient
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[X] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

@vikaschoudhary16 PTAL if this solves your case?

In response to a cherrypick label: new pull request created: #42085

In response to a cherrypick label: new pull request created: #42086

In response to a cherrypick label: new pull request created: #42087


feat: add support for Google Cloud Storage in S3 plugin

Fixes #6877
Screenshots :

Video Demonstration :
Link

Summary by CodeRabbit

New Features

Added support for Google Cloud Storage as a service provider in the datasource configuration.

Tests

Introduced new test methods to validate datasource configurations for non-Amazon providers, including Google Cloud Storage.

Hi @nidhi-nair, Could you review this pr.

Thanks for the contribution @AnnaHariprasad5123 ! @NilanshBansal will be picking up the review for this PR, I have assigned it to him.

@AnnaHariprasad5123 spotless checks are failing on the PR.
Can you please run mvn spotless:apply from /app/server directory and commit the changes.

Hi @NilanshBansal, I run it. Everything is passed on my side. This is the screenshot :

HI @NilanshBansal  Sorry for this, Could you check again. Is it fine?

@AnnaHariprasad5123 Other than these changes rest LGTM!

Hi @NilanshBansal Good morning, I done the changes as you said, could you check now.

@AnnaHariprasad5123 Also after performing all the above changes can you please run mvn spotless:apply and then commit the changes as the spotless checks are failing.

Hi @NilanshBansal, Could you check again. I commit all changes after spotless check.

@AnnaHariprasad5123 thanks for your contribution 🙏 , the code LGTM.
The next tasks that I will perform before merging this PR will be:

[x] PR Code Review [done]
[ ] Design Copy testing
[ ] PR deploy preview and usability testing on all the different scenarios

If there is anything required from your end, I will let you know. Again, thanks a lot for your patience and perseverance ❤

@AnnaHariprasad5123 the Delete multiple files option is not working. Please check the screenshots below.

Hi @NilanshBansal, please review all the issues and let me know. I will make all the necessary changes at once.

@AnnaHariprasad5123 I have reviewed. Everything else LGTM from your PR perspective.
The Delete Multiple files is the only blocker found.

Hi @NilanshBansal,
Did you check the IAM permissions for the bucket? Have you tried performing the same operation with the AmazonS3 provider? I didn't make any changes to the query code, but it seems that the deleteMultipleFiles method is the only one not working. Can we raise an issue on this? I am currently occupied with other work and unable to continue this investigation. Please let me know what's your opinion.
Thank you.

I have already checked this issue. The exception is being raised from this try block, and I have already debugged the issue. I am confused because the single delete operation works, but deleting multiple files is not allowed. If this issue persists for all service providers, then I think we should create a new issue for this.

Hi @NilanshBansal,
Did you check the IAM permissions for the bucket? Have you tried performing the same operation with the AmazonS3 provider? I didn't make any changes to the query code, but it seems that the deleteMultipleFiles method is the only one not working. So, can we merge this PR and raise an issue on this?. I am currently occupied with other work and unable to continue this investigation. Please let me know what's your opinion.
Thank you.

Hey @AnnaHariprasad5123, I have tested the same functionality with the AmazonS3 provider and it works perfectly fine. This is only failing for Google Cloud Storage.

So, can we merge this PR and raise an issue on this?
Let me discuss this internally and get back, but as of now we would like to treat this as a blocker, which means we cannot proceed forward until this is resolved as we cannot ship a buggy feature. I hope you understand.

@NilanshBansal , I believe there is an alternative approach for handling batch deletions in GCS, different from Amazon S3. We could iterate through each file in listOfFiles and perform individual deletions, as single deletions are working. Do you think this is a good approach? If so, I will implement it and push the changes. Please share your opinion.

Hi @NilanshBansal, I'm trying to hide the deleteMultipleFiles flabel in root.json, located in the editor folder. However, the changes I made aren't showing up. Can you help me understand why?
           {
              "label": "Delete multiple files",
              "value": "DELETE_MULTIPLE_FILES",
              "hidden": {
                "path": "datasourceConfiguration.properties[1].value",
                "comparison": "EQUALS",
                "value": "google-cloud-storage"
              }
            }

"hidden": "{{datasourceConfiguration.properties[1].value}} == 'google-cloud-storage'"

"hidden": {
"path": "datasourceConfiguration.properties[1].value",
"comparison": "EQUALS",
"value": "google-cloud-storage"
}

@AnnaHariprasad5123 to view the change you may need to run this command before starting the server to compile the amazonS3Plugin, then only the changes will show up.
mvn -B clean compile && ./build.sh -DskipTests

Yes I do it every time. Even though not reflected. If you don't mind. Could you put that code snippet in that file and observe if change is reflected or not.

Hi @NilanshBansal, Is it working for your side? Please let me know.

@AnnaHariprasad5123 on debugging, I have found that we do not have the hidden option implemented for DROP_DOWN.options internally.
I am trying to figure out ways on how to hide this only for a particular scenario. I am trying to use evaluations to get this to work.

@AnnaHariprasad5123 until I am figuring out how to hide an option from the dropdown.
Can you invest in the above approach for adding the Delete Multiple Objects for Google Cloud Storage if that does not take much effort. If we can implement that, it would be the best approach. I am okay with the approach you suggested in this comment.
https://github.com/appsmithorg/appsmith/pull/33938#issuecomment-2159003305

Hi @NilanshBansal , It works for every S3 provider, Could you check for GCS and amazon S3. Let me know if any changes required.

Hi @NilanshBansal, Is this ok now. Let me know.

Hi @NilanshBansal Good morning, I've completed the necessary changes. Kindly consider merging my pull request when you get a chance.

Thank you for your contribution and patience @AnnaHariprasad5123! 🙏

All checks (spotless and ci) have passed on this code. Verified by creating draft CE and EE PRs with the same changes.


Queue length documentation incorrect

https://www.rabbitmq.com/maxlength.html
...it states that:
"The fields messages_ready and message_bytes_ready from rabbitmqctl list_queues and the management API show the values that would be limited."
This is incorrect, I just checked:
rabbitmqctl list_queues name messages_ready
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name    messages_ready
test_queue  0

My x-max-length limit value only shows up when checking the queue in the web console.

The docs try to explain that the number of messages in Ready state (and their bytes) is subject to limiting. We will see how this can be communicated clearer.
I’m not sure what your list_queue example proves; the command is not meant to display the limit, you have to list policies for that.

@michaelklishin I just followed precisely what the documentation said. The "show the values that would be limited" part from my original quote. I am not sure what else a reader is supposed to understand but for me it says "give that command to show the limits". Also this was not set up as a policy but as a queue argument, like the same documentation says it can be done.

@stderr-to-devnull I have changed the language, see the commits above. Yes, a limit can be set an optional queue argument but that is highly discouraged because all queue properties are immutable.
I will add a note on how to inspect the limits.

@michaelklishin Thank you, appreciated.


Windows Cmake RelWithDebInfo not working

Summary:
I'm having an issue getting TensorFlow to build with debug symbols in Windows using Cmake.
About my system:
Windows 10
Version 1607
Build 14393.693
Cmake version 3.7.1
Visual Studio Community 2015
Clone tensor flow repository from https://github.com/tensorflow/tensorflow
git clone https://github.com/tensorflow/tensorflow.git
Change directory to tensorflow\tensorflow\contrib\cmake
cd gitFolder\tensorflow\tensorflow\contrib\cmake
Make build directory, change to directory
Mkdir build
cd build
Use cmake
Cmake .. -A  x64 -DCMAKE_BUILD_TYPE=RelWithDebInfo ^
-DSWIG_EXECUTABLE=C:\tools\swigwin-3.0.10\swig.exe ^
-DPYTHON_EXECUTABLE=C:\Users\ian\Anaconda3\python.exe ^
-DPYTHON_LIBRARIES=C:\Users\ian\Anaconda3\python35.lib ^
-Dtensorflow_ENABLE_GRPC_SUPPORT=OFF
Note:
Swig, python executable directory and python library directory will change based on your system. I tried at with the GRPC support enabled (this is the default) but I got build errors related to GRPC. Because we will be handling remote web requests with ProsodyMaker, I didn’t think we needed the GRPC support.
Open the solution in Visual Studio.
Change build mode to RelWithDebInfo x64
Build
Result:
Most projects build, but sadly not the one that I’m interested in, tf_label_image_example. The errors I received are:
Link1120 1 Unresolved externals pywrap_tensorflow
Link1318  Unexpected PDB error; OK(0) tf_tutorials_example_trainer
Link1318  Unexpected PDB error; OK(0) tf_label_image_example
LNK2019	unresolved external symbol "class tensorflow::Status __cdecl tensorflow::NewServer(class tensorflow::ServerDef const &,class std::unique_ptr<class tensorflow::ServerInterface,struct std::default_delete > *)" (?NewServer@tensorflow@@YA?AVStatus@1@AEBVServerDef@1@PEAV?$unique_ptr@VServerInterface@tensorflow@@U?$default_delete@VServerInterface@tensorflow@@@std@@@std@@@Z) referenced in function "void __cdecl PyServer_New(class tensorflow::ServerDef const &,class std::unique_ptr<class tensorflow::ServerInterface,struct std::default_delete > *,struct TF_Status *)" (?PyServer_New@@YAXAEBVServerDef@tensorflow@@PEAV?$unique_ptr@VServerInterface@tensorflow@@U?$default_delete@VServerInterface@tensorflow@@@std@@@std@@PEAUTF_Status@@@Z)	pywrap_tensorflow	C:\tesorflow\tensorflow\tensorflow\contrib\cmake\build\pywrap_tensorflow.obj

It looks like you need to place the binaries in your %PATH%. Can you try that?

Thanks for the response!
All binaries from the build? Meaning the ones that appear in the tensorflow\tensorflow\contrib\cmake\build\RelWithDebInfo folder?
I added C:\tesorflow\tensorflow\tensorflow\contrib\cmake\build\RelWithDebInfo to my path, and I'm rebuilding the solution. I'll reply after it's done building or trying to build.

Unfortunately, adding the build directory to path did not fix my issue. The build is failing with the same errors.

Oh wait, how did you change the build to x86_64? In visual studio, you have to make sure all projects are building for the right target. They are usually copied from the 32-bit x86 target, then you have to change all projects in the solution. Make sure

I used x64 as a flag for cmake, and then I change to x64 in Visual Studio's Solution Platform drop down menu. Is there something else I need to change in the individual project? My solution's configuration properties says that all projects are trying to build as RelWithDebInfo x64.

Visual studio project/solution files can be very annoying, because propagation of configuration sometimes needs a lot of manual setting on the dropdowns by hand. I can't remember the project view on the top of my head. Can you try the www.dependencywalker.com tool on the pywrap DLL and see if there's anything missing from there?

I'm not sure that I have a pywrap DLL. I have an obj and a lib. Is this a problem?

Yes. That's strange, it should have been produced by the build. Would you mind putting the build logs somewhere on pastebin?

Build Output.txt

Thanks! I'll take a look tomorrow. Ping if I drop this.

Any progress on this?

OK, it fails to build the pywrap DLL because it failed to compile the wrapper. And that's because it failed to resolve the C++ function. Could you find a way to get the command-line that's running on this? It should be trying to link against the C++ tensorflow lib. We'd need to check the symbols in the C++ tensorflow lib and find out what symbols are out there. Maybe they're x86 symbols, or they have the wrong linkage.
194>pywrap_tensorflow.obj : error LNK2019: unresolved external symbol "class tensorflow::Status __cdecl tensorflow::NewServer(class tensorflow::ServerDef const &,class std::unique_ptr<class tensorflow::ServerInterface,struct std::default_delete<class tensorflow::ServerInterface> > *)" (?NewServer@tensorflow@@YA?AVStatus@1@AEBVServerDef@1@PEAV?$unique_ptr@VServerInterface@tensorflow@@U?$default_delete@VServerInterface@tensorflow@@@std@@@std@@@Z) referenced in function "void __cdecl PyServer_New(class tensorflow::ServerDef const &,class std::unique_ptr<class tensorflow::ServerInterface,struct std::default_delete<class tensorflow::ServerInterface> > *,struct TF_Status *)" (?PyServer_New@@YAXAEBVServerDef@tensorflow@@PEAV?$unique_ptr@VServerInterface@tensorflow@@U?$default_delete@VServerI

Just above there's
196>utils.obj : fatal error LNK1318: Unexpected PDB error; OK (0) ''
195>utils.obj : fatal error LNK1318: Unexpected PDB error; OK (0) ''

CC @mrry just in case

I set Visual Studio's MSBuild output level to diagnostic, and I'm rebuilding the solution. I believe that will give the command line that's running underneath, let me know if I misunderstood the request. I'll post an attachment when it finishes running.

Hmm, I guess the problem is that we don't test with -Dtensorflow_ENABLE_GRPC_SUPPORT=OFF very often, and that option has bit-rotted... in particular, I don't think we've tested the Python support with it disabled.
I think the correct fix is to ensure that tensorflow/core/distributed_runtime/server_lib.cc is compiled and linked in even when -Dtensorflow_ENABLE_GRPC_SUPPORT=OFF. That will ensure that the unresolved symbol is defined in any case. Does that sound right? I'm preparing a fix now.

Sounds good thanks!
On Jan 25, 2017 1:52 PM, "iantheconway"<EMAIL_ADDRESS>wrote:

I set Visual Studio's MSBuild output level to diagnostic, and I'm
rebuilding the solution. I believe that will give the command line that's
running underneath, let me know if I misunderstood the request. I'll post
an attachment when it finishes running.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/7019#issuecomment-275243912,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AT_SbWbdw5bj2GTvNJAxnSs796gjb4bMks5rV8QNgaJpZM4LrjZ8
.

Excellent, thanks! As I mentioned, I got another issue when I tried to build RelWithDebInfo with GRPC support on. Would it help if I tried to build with GRPC support on again and got back to you with info if it still fails?

That would indeed be useful, thanks! (I typically build with RelWithDebInfo locally, so I'm surprised that it isn't working with gRPC... but it's possible that I have something in my environment that causes it work.)

Hey, I tried pulling again after the commit was pushed, and the build still failed for me. I noticed my CMake version is 3.7.1 and that the CMake instructions say to use 3.5 up to 3.6, could that be an issue? Everything else on my system seems to be fine. The errors I'm getting are:
Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK1318	Unexpected PDB error; OK (0) ''	tf_label_image_example	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1
Error	LNK1318	Unexpected PDB error; OK (0) ''	tf_label_image_example	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1
Error	LNK1318	Unexpected PDB error; OK (0) ''	tf_tutorials_example_trainer	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1
Error	LNK1318	Unexpected PDB error; OK (0) ''	tf_tutorials_example_trainer	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1
Error	LNK1318	Unexpected PDB error; OK (0) ''	compare_graphs	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1
Error	LNK1318	Unexpected PDB error; OK (0) ''	compare_graphs	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1
Error	LNK1318	Unexpected PDB error; OK (0) ''	transform_graph	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1
Error	LNK1318	Unexpected PDB error; OK (0) ''	transform_graph	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1
Error	LNK1318	Unexpected PDB error; OK (0) ''	summarize_graph	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1
Error	LNK1318	Unexpected PDB error; OK (0) ''	summarize_graph	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1
Error	LNK1318	Unexpected PDB error; OK (0) ''	pywrap_tensorflow	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1
Error	LNK1318	Unexpected PDB error; OK (0) ''	pywrap_tensorflow	C:\tensorflow_1_25_17_b\tensorflow\tensorflow\contrib\cmake\build\utils.obj	1

Possibly related to this Stack Overflow question? http://stackoverflow.com/questions/4256524/lnk1318-unexpected-pdb-error-ok-0

Hmm. It was a fresh clone with a fresh Cmake build, so I don't think deleting project temp files would help, but restarting Windows is always worth a try. I'll let you know if that works. Thanks.

Restarting did not help for me, my build failed with the same errors. However, it seems that it's failing with or without the gRPC support, so my issue must not be related to the issue you fixed. I think I'll try on a fresh machine to see if it's an issue with my environment.

A fresh build on a separate machine did not fix my PDB errors.
 Any ideas about this one?
Also, @mrry you said that RelWithDebInfo builds fine for you, right? Do you use Visual Studio or do you use MSBuild like in the instructions? Thanks.

This is how we run the build:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/ci_build/windows/cpu/cmake/run_build.bat

@iantheconway I only ever build using MSBuild from the Command Prompt, like in the instructions. If you're using Visual Studio, it ought to work, but there may be some configuration mismatch. In particular, the build is pretty massive, and Visual Studio's UI doesn't always make it easy to find the root cause of a build failure. It'd be great if you could capture the complete build output when building from a clean repository, as that will probably contain the information we need to fix it.

Will do, thanks.

build_output.txt This is what Visual Studio is outputting.

Could you do this?

Kill the PDB server (beter yet, reboot)
Remove all PDB files
Tell us what version of MSVC you are running
What cmake generator are you running
Use the msbuild command as in the instructions

And see if it works. If that works, then we can try to narrow it down to a GUI problem.

Thanks for sharing the new build output. Is it possible that you're using the 32-bit toolchain? If I remember correctly, the default version of the compiler and linker (even when compiling x64 code) is a 32-bit executable. TensorFlow generates quite a large binary (and debug symbols), which might exhaust the address space of a 32-bit compiler/linker.
It's a little tricky to force VS to use the 64-bit toolchain, and I believe that's why I started using the command-line tools instead. This article on MSDN covers how to set the 64-bit toolchain from the command line. I'm not 100% certain (can't find a reference right now) but I think that if you run devenv.exe from a command prompt configured this way, you will get the 64-bit tools when you compile from within Visual Studio.

@drpngx I will try this and let you know the results
@mrry That would make sense. After I try the command line build, if I try the vcvarsall command from the article you sent followed by devenv.exe that might work, right?
Thanks.

That might work indeed! (If not, you'll at least be in the right environment to run msbuild.exe :)....)

I tested it today. Using MSBuild, I was able to build all executables in RelWithDebInfo :). I'll try devenv.exe and hopefully that will allow me to use Visual Studio to build. Thanks for all the help.

@mrry
Sorry post here as is not really related but I had a quick question if you don't mind and didn't want to open an issue just for that.
When building with CMake if the Test COMPILER_OPT_ARCH_NATIVE_SUPPORTED fails it won't use any of the instructions available (gcc march=native shows them enabled, mavx, mfma, msse etc) ?
A non fresh clone or something like that could influence at all?
Thanks a lot.


Unable to place campfires

I can do it with 1.10.1 but ever since 1.10.2 it would not do anything when I clicked/activated with key press to build the campfires. I tried changing between the quick and realistic build types and nothing. It never even prompted me to decide between the two. I assume its a load order issue but with it being an esm i can't really move it around much more then I tried unless I missed something.  I am using frostfall and have a total of 170 plugins enabled. Also using v2.0,7 of MO.

I'm having the same issue, I'm running a straight install of SRLE Extended LOTD with no other mods on top of it. Modlist here. The other Campfire features work fine. I can gather wood and create objects, but nothing happens when I try to make a campfire

I plan on having a fix for this available either this weekend or early next week.

This should now work much better in Campfire 1.11.


Ced sonpy implementation

Alternative to spike2io based on sonpy (close source package but official) from ced.

Hello @samuelgarcia! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file neo/rawio/cedrawio.py:

Line 33:1: E303 too many blank lines (3)
Line 36:1: W293 blank line contains whitespace
Line 54:1: W293 blank line contains whitespace
Line 58:13: E265 block comment should start with '# '
Line 59:13: E265 block comment should start with '# '
Line 61:13: E265 block comment should start with '# '
Line 64:17: E265 block comment should start with '# '
Line 66:17: E265 block comment should start with '# '
Line 68:17: E265 block comment should start with '# '
Line 71:17: E265 block comment should start with '# '
Line 73:17: E265 block comment should start with '# '
Line 74:17: E265 block comment should start with '# '
Line 75:17: E265 block comment should start with '# '
Line 76:1: W293 blank line contains whitespace
Line 78:54: E225 missing whitespace around operator
Line 78:62: E225 missing whitespace around operator
Line 78:63: W291 trailing whitespace
Line 79:17: E265 block comment should start with '# '
Line 81:1: W293 blank line contains whitespace
Line 82:17: E265 block comment should start with '# '
Line 83:17: E265 block comment should start with '# '
Line 84:1: W293 blank line contains whitespace
Line 85:1: W293 blank line contains whitespace
Line 86:1: W293 blank line contains whitespace
Line 87:17: E303 too many blank lines (3)
Line 88:17: E265 block comment should start with '# '
Line 90:17: E265 block comment should start with '# '
Line 92:17: E265 block comment should start with '# '
Line 93:1: W293 blank line contains whitespace
Line 95:17: E265 block comment should start with '# '
Line 96:1: W293 blank line contains whitespace
Line 97:1: W293 blank line contains whitespace
Line 98:17: E303 too many blank lines (2)
Line 101:100: E501 line too long (101 > 99 characters)
Line 102:1: W293 blank line contains whitespace
Line 104:1: W293 blank line contains whitespace
Line 107:100: E501 line too long (103 > 99 characters)
Line 123:1: W293 blank line contains whitespace
Line 127:1: W293 blank line contains whitespace
Line 130:1: W293 blank line contains whitespace
Line 160:1: W293 blank line contains whitespace
Line 167:1: W293 blank line contains whitespace
Line 169:1: W293 blank line contains whitespace
Line 171:1: W293 blank line contains whitespace
Line 174:62: E202 whitespace before ')'
Line 178:57: W291 trailing whitespace
Line 179:56: E202 whitespace before ')'
Line 181:1: W293 blank line contains whitespace
Line 183:1: W391 blank line at end of file

@luiztauffer : could you validate this ?

Hello @samuelgarcia.
I would like to read .smrx files. Here is the link :
https://sparc.science/datasets/27?type=dataset  (look under the “Files” tab > primary).
For that, I tested your code. But I have a problem with the installation of sonpy package. I am using python 3.9 as required. It seems to be installed, but when I want to read parse_header(), I get the error message : AssertionError: sonpy must be installed.
Even though I want to import sonpy in an other version of python (3.7.5), I have the error :
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/legouee/miniconda3/lib/python3.7/site-packages/sonpy/__init__.py", line 10, in <module>
    import sonpy.darwin.sonpy as lib
ImportError: dlopen(/Users/legouee/miniconda3/lib/python3.7/site-packages/sonpy/darwin/sonpy.so, 2): Symbol not found: __ZdlPvSt11align_val_t
  Referenced from: /Users/legouee/miniconda3/lib/python3.7/site-packages/sonpy/darwin/sonpy.so
  Expected in: /usr/lib/libc++.1.dylib
 in /Users/legouee/miniconda3/lib/python3.7/site-packages/sonpy/darwin/sonpy.so

On your side, is it possible to read these files ? Do you have any idea why I am getting this error ?
I thank you.

Hi Elodie.
I think you should ask directly to CED for sonpy support.
As I wrote in the code : sonpy is close source and distributed as compiled by CED directly. Too bad!!
For me with python3.8 on ubuntu20.4 import sonpy works without problems.
About your file. I can open "Pig-820_Nodose-002.smrx" without problem but it do not contain any signals.
Maybe it contain other object like event or spiketrain but they are not implemented.
One day, if I have time I will extend the spike2io which is the pure python/numpy implementation to 64bit.
I guess the internal structure is not so diffrents between smr and smrx.
Sam

Ok. I thank you very much @samuelgarcia for your answer.

Ready to review (and merge maybe)

@JuliaSprenger : having this merge in the master would be very very helpfull :)


docs: fix documentation sdk url

Proposed changes
/api/sdk was changed to /sdk, this PR fixes the URL.
Types of changes

[x] Docs (documentation only changes)

Checklist

[x] I have read the CONTRIBUTING documentation
[x] I have read the WRITING DOCUMENTATION guidelines

Codecov Report

Merging #28 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #28   +/-   ##
=======================================
  Coverage   91.17%   91.17%
=======================================
  Files          71       71
  Lines        1201     1201
=======================================
  Hits         1095     1095
  Misses        106      106

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3cdd74e...a3f0ee9. Read the comment docs.


Outline pane not following the right module after module renaming?

I post this, as it seems to be a not reported issue. Please, redirect the thread in case I am wrong, or in the case it has been solved in recent updates (being up-to date is anyway a cost and a risk, so I am not always up to date:)
Spyder IDE 5.1.5
Python 3.9.12 64-bit | Qt 5.9.7 | PyQt5 5.9.2 | Windows 10 (in Anaconda)
Issue:
The outline pane is not always linking to the right module. The issue caused a lot of trouble to me, because I happened to edit a certain module, thinking it was another one.
Example

I am working on diffraction_from_slit_simple_simple.py
I click on a given bookmark in the outline pane (which reports the RIGHT filename on it)
The editor OPENS the previous version of the file diffraction_from_slit_simple.py, and make me edit this.
See picture belows.

The same is happening with mymodule.py

After clicking on "x" function, the editor throws me to untitled0.py

How to reproduce it
I have not spent time on this yet. It happens after renaming, but not all of the times.
If this issue is not known, I can further investigate this.
Thanks for your cooperation,
Mike

Hey @capitanevs, thanks for reporting. This is a duplicate of issue #15517 and it's fixed in our latest version (5.4.2).
Since it's still not available in Anaconda, you have two options:

Use our Windows installer, which you can find here.

Create a new environment with conda-forge packages. For that, you need to close Spyder, open the Anaconda Prompt and run the following commands there:
 conda create -n spyder-env -c conda-forge spyder
 conda activate spyder-env
 spyder


syncset migration add step to delete addon migration object

Signed-off-by: Yashvardhan Kukreja<EMAIL_ADDRESS>

/lgtm


D435 with two T265

Required Info

Camera Model
{ D435,T265}

Operating System & Version
{Linux (Ubuntu)

Kernel Version (Linux Only)
{5.3.0-28-generic}

Platform
{PC}

SDK Version
{legacy / 2.32.1299 and 2.32.1331 }

Language
{python}

Segment
{0thers }

Issue Description
<
Hi guys, I need some serious help.
I am trying to connect one D435 depth camera together with two T265 on the same machine, and I have hard time doing it. The machine is a Ubuntu 18.04 and I am using the precompiled SDK with the Python bindings. I am also trying the same code on Win10.
I want to open the D435 in a thred and the two T265 in a separate thread.
When using the legacy version (2.32.1299), once depth camera is started, trackers are not available in a separate thread error when calling context.devices is 'Unable to open device interface'. This error is well documented by other Git issues.
But when upgrading to 2.32.1331, even though trackers are now available in the separate thread, the input from the D435, both depth and RGB, become laggy and skips many frames.
Any ideas?
Will this be fixed with the upcoming release? In this case, when will it be released?
Thank you,
Agostino

I'm having almost the same problem: I want to run the D435 on one thread and T265 from python. I'm working on windows 10 with SDK 2.32.1331 and the color and depth streams from the D435 realsense camera have frequent pauses of about half a second.
Can you help me with that?
Thank you
Giulia

Same issue & same platform - but noticed also that this lag in the RGB stream is present even in realsense viewer with the new version (2.32.1331).  Lag is present in the following configurations:
Depth only: Sometimes Lag
IR only: No Lag
Depth + IR: Always Lag in both streams
RGB only: Sometimes Lag
RGB + depth: Always Lag in both streams
RGB + dpeth + IR: Always Lag in all streams
Thanks for your help,
Vasha

Hi vdutell,
I made the same tests, and I have the same results! Also the Realsense Viewer is crashing!

Any insights from anyone?


Add lab exercise for the security and governance using Kubernetes policy engine Kyverno

Outline the high level topic of the lab
Kyverno is an open source policy engine and a CNCF incubating project. Kyverno can be used to enforce pod security and other best practices. Some relevant infomation can be found here:
Enforcing Security Best Practices for Amazon EKS using Kyverno
Enforcing Security Best Practices for Amazon EKS using Kyverno
Provide the flow of the lab exercise, including what sample application components will be used
Lab exercise would include the following:

Installing and configuring Kyverno
Identifying and deploying relevant policies
Viewing and understanding policy reports
Advanced exercises for automation, cost, image verification, etc can be included as well.

What additional AWS infrastructure or EKS addons/components will need to be created or installed to support this lab?
Kyverno Policy Engine - Already available as EKS Add-on (via project sleek)
What additional software or configuration will be required in the Cloud9 IDE?
Policies are written in YAML so a YAML editor will be required
Are enhancements to the retail sample application required to support this lab exercise?
No other enhancements should be required

Hi there, @svennam92! Do you have any suggestions on what you all would like to see in such a module? Are you thinking this would go as an additional section here or as a sub-page like here? I'd be glad to work something up based on what you think would be most helpful in the context of the workshop.

Any feedback on the above? Would this be better for a live discussion, @shapirov103?

https://github.com/aws-samples/eks-workshop-v2/pull/800


Make errors returned by ANTLR from parsing DMN files friendly

Errors produced by ANTLR when parsing DMN files are not user friendly (e.g. when parsing using kogito-maven-plugin). We need to make sure the errors are explanatory.

Example log: mvn-clean-install.log

What is the suggestion in this specific case @baldimir ? How should look the error message form your point of view please?

It is hard to tell. I think we need to first do an analysis what errors we get from ANTLR.


Update tableview.py

Suggestions for improvements and fixes for some bugs I found and managed to fix.
Allows loading empty list and disable pagination
#<-- Resets pagination, if rowdata is an empty list (ex: sql query does not match)
in build_table_data
#self.goto_first_page() #<-- load_table_data() runs again here
Pagination button actions
#<-- Only execute the action if there is more than one page
Fixes pagination bug when typing 0
#<-- if you type 0 in the 'paging entry' it goes to the first page
'reset_table' - suitability for changes:
logic adequacy, for reset to be executed even when there is only one page
#<-- reset tableview even when there is only one page
change the reset/reload symbol to ↺ as it is more intuitive for most people
naming of pagination buttons to allow external bind

I'll try to spend some time reviewing this later this week.

Translation into Brazilian Portuguese


Extract parser into its own crate

Hey there! I am interested in using the parser from this library in one of my own projects. Would it be possible to extract it into its own crate? Great work on this project, and hope to hear from you soon.
Ian

This would be a nice improvement - not just for the use case of using the parser or type system outside of this project - it would probably cut down on compilation time for the test suite when working on isolated parts.
I imagine looking at the setup used by e.g. gluon would be useful; we probably would want the entire source code to still live in this repository and all released in lockstep with each other.
I'll see what I can do. Hopefully something that can be done before the 1.0 release.

Now that the repo is restructured, a good next step would be to extract the parser into it's own crate.

Just had a look at it. It seems the parser depends on the ast. So I guess that has to be moved into the parser.

See also graphql-parser which uses pest.

By the way, is there any reasons why you didn't use a parser library such as combine (the one which I recommend) ? Is there any complexities with the grammar?

Everybody watching this issue might be interested in #138

Tracked in #138


⚠ Samsung has degraded performance

In 923f36d, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2631 ms

Resolved: Samsung performance has improved in 420e5a9.


App-Cleaner.sh asks for password/fingerprint way too many times

Branch

[x] master
[ ] draft

Guide
How to clean uninstall apps on macOS using AppCleaner open source alternative
Operating system and version
macOS Big Sur 11.1
Description
I have been testing the app cleaner script a few times these last few days.  Works great so far.
One thing I noticed with a AppStore app is that the delete process asked me to give my admin password/fingerprint for a lot of files instead of asking for that once and then just doing the rest.
Maybe this could somehow be collected into one "move to trash" call instead of asking the password many times?
Would love to see this improved further and a big thank you for even starting the process of building thins.

Hey @chrisspiegl, I agree one "move to trash" operation is way better!
Thankfully, I found a workaround. Let me know if the latest version of app-cleaner.sh works as expected.

I'll try it next time I need it. Thanks.

I'll try it next time I need it. Thanks.


[EventRequest]Table 39 Purchase Line

Due to Polish Localization App building, we need two publishers in Table 39. Before and after VAT amounts updating we need to handle VAT Base Amount.
Function: UpdateVATAmounts
// START
OnBeforeUpdateVATAmounts(Rec);
// STOP
GetPurchHeader;
PurchLine2.SETRANGE("Document Type","Document Type");
PurchLine2.SETRANGE("Document No.","Document No.");
PurchLine2.SETFILTER("Line No.",'<>%1',"Line No.");
...
IF "VAT Base Amount" <> 0 THEN
"VAT %" :=
ROUND(100 * ("Amount Including VAT" - "VAT Base Amount") / "VAT Base Amount",0.00001)
ELSE
"VAT %" := 0;
END;
END;
END;
// START
OnAfterUpdateVATAmounts(Rec);
// STOP
Publishers signatures: LOCAL [IntegrationEvent] OnBeforeUpdateVATAmounts(VAR PurchaseLine: Record "Purchase Line")
LOCAL [IntegrationEvent] OnAfterUpdateVATAmounts(VAR PurchaseLine: Record "Purchase Line")

Hi,
thanks a lot for all publishers added for us. Could you give me some ETA for this one? It's the last one missing for our big app and we are waiting for your feedback. Is there any related issue with this request?
Thanks in advance
Wojciech

Hi,
it looks that this publisher is already available. Issue can be just closed.
Regards
Wojciech


Issues with training M3GNet potential on GPUs.

Email (Optional)
No response
Version
v0.8.5 and v0.7.1
Which OS(es) are you using?

[ ] MacOS
[ ] Windows
[X] Linux

What happened?
Dear developers,
I'm trying to train a M3GNet potential using the same code in the tutorial (https://matgl.ai/tutorials%2FTraining a M3GNet Potential with PyTorch Lightning.html).
Training the potential on a CPU went smoothly without any issues. However, when I switched to a GPU node for training, I ran into several errors.
I made the following adjustments to the code to enable training on a GPU node.
trainer = pl.Trainer(max_epochs=1, accelerator="gpu", devices=[0], logger=logger, inference_mode=False)
trainer.fit(model=lit_module_finetune, train_dataloaders=train_loader, val_dataloaders=val_loader)
Then the following error occurs,

I also tried to set the default device to one specific gpu, but I encountered another error:

Do you have any suggestions on fixing these errors ? Thanks in advance.
Code snippet
No response
Log output
No response
Code of Conduct

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

Please read the documentation on how to train on gpus. We have specifically added a section in the documentation. There is a proper pytorch way to do this.

Thanks, I've already gone through the documentation before reaching out about this problem.
I found that change the "generator" parameter in Dataloader function solved this issue.
https://stackoverflow.com/questions/68621210/runtimeerror-expected-a-cuda-device-type-for-generator-but-found-cpu
data_loader = data.DataLoader(
...,
generator=torch.Generator(device='cuda'),
)