feat: aided_by tactic combinator for running tactics in the background

This implements a tactic combinator aided_by that automatically runs a tactic in the background. The syntax is essentially "aided_by" tacticSeq "do" (tacticSeq)?, with the first tactic sequence to be run in the background (e.g. aesop?) while the second tactic sequence is intractively entered. We also provide the sytax "by!" tacticSeq as a shorthand for "aided_by" aesop? "do" tacticSeq.
When elaborating each tactic in the (second) tactic sequence:

We launch a tactic in a separate thread, which on completion caches the resulting proof state if successful.
We wait briefly (50 ms by default) and then look for a proof state in the cache that matches the current goal and local context.
If we find a matching proof state, we use it to complete the proof with a TryThis action.
Otherwise the user continues proving interactively.
Observe that as the user works interactively, the tactic sequence is re-evaluated, and hence we check if the background task completed the proof at some stage.

Demos on Zulip at https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Aesop.20etc.20in.20the.20background/near/378824560

I'm a bit skeptical of an approach that relies on a fixed waiting time for the helper tactic to run. If it takes less, there's pointless delay, and if it takes more we just miss the answer? Neither is great.
I very much like the general idea of having tactics running automatically, but this doesn't feel like it is the right user interaction to drive it. I'm not sure I'll have time in the short term to think about this, so if others want to proceed here that's fine. But I'd prefer to think about this more.

I'm a bit skeptical of an approach that relies on a fixed waiting time for the helper tactic to run. If it takes less, there's pointless delay, and if it takes more we just miss the answer? Neither is great.
I very much like the general idea of having tactics running automatically, but this doesn't feel like it is the right user interaction to drive it. I'm not sure I'll have time in the short term to think about this, so if others want to proceed here that's fine. But I'd prefer to think about this more.

@semorrison The idea is not to have a fixed waiting time, at least as the main interface. The tactic keeps running in the background even after that time and if the result is found it records this. Then when the same tactic sequence is elaborated again (for example when continuing to prove), the result is offered.
The waiting time is a very short one only for quick disposal.

Playing around with this I notice that changing by to by# in some places causes the tactic proof to fail where it was previously succeeding. The first example I found of this was support_sum_eq_biUnion in Algebra.BigOperators.Finsupp. If the aided_by mode is only working in the background, shouldn't complete proofs be unaffected by it?

Playing around with this I notice that changing by to by# in some places causes the tactic proof to fail where it was previously succeeding. The first example I found of this was support_sum_eq_biUnion in Algebra.BigOperators.Finsupp. If the aided_by mode is only working in the background, shouldn't complete proofs be unaffected by it?

May be bugs fixed in the newer implementation. Will take a look.

A separate repository LeanAideTools has been made to allow this to be used. If the mode proves useful a fresh PR with the new code will be opened.


Relevent project dmlc/tensorboard

Hi,
Great effort. Looks like a lot of people are interested in using tensorboard in a larger context.
We have also been working on extracting tensorboard logging and rendering from tensorflow. https://github.com/dmlc/tensorboard
Would you be interested in joining force?
Thanks,
Eric

Hi @piiswrong , thanks for kind words, and thanks for the pointer!
What are your plans on https://github.com/dmlc/tensorboard - do you want it to be a standalone library, or to merge it into MXNet? For tensorboard_logger, I'd like to have it standalone to be able to use it from different frameworks (and not only deep learning) - if your goal is the same, then I'm all for joining forces, it's better to have one library that is actively supported and developed.

hey, could be grate to have it as standalone project. Many DL projects could take advantage of it.

I have extracted tensorboard from tensorflow as a standalone application.
bravomikekilo/mxconsole
It can present the logs without compile the whole tensorflow


Dynamically evaluate global object for webpackJsonp

What kind of change does this PR introduce?
bugfix (Issue: #4819)
Did you add tests for your changes?
There aren't any tests for JsonpMainTemplatePlugin...? I may just be totally missing them but I can't find them.
If relevant, link to documentation update:
N/A
Summary
Allows users to load Chunked modules in more than just the main browser thread (i.e. Worker threads)
Does this PR introduce a breaking change?
no
Other information
I followed the approach outlined in https://github.com/tc39/proposal-global
for evaluating the global scope dynamically (modified to prioritize the
window object if available)

I think this change is redundant, because it still loads chunks by creating script tag.
Some time ago I was forced to write my own template plugin, which supports both "web" and "webworker" environments. In my opinion, it would be great to merge JsonpTemplatePlugin and WebWorkerTemplatePlugin into one and use it in most cases. Node environment is more specific and need to have own template plugin, so checks like if (typeof global !== 'undefined') {} are unusable here.

I'm a fan of @johnthecat's suggestion so I'll close this in favor of some sort of implementation along those lines.

@jshcrowthe  Could you please reopen this pr? I need this badly.
What @johnthecat  said has limitations.  I use this plugin in Weixin App, there is no window in it.

@jshcrowthe never mind. I found I need global in CommonsChunkPlugin

@taoqf 你qq是什么，加一起讨论一下呗。我遇到同样的问题，打包微信端，我都打算自己批量替换window了，可是感觉不太好

@fengbaozhiling It is avaliable now, see https://github.com/webpack/webpack/pull/6200
npm i webpack@next

webpack.config
...
mode: 'production',
output: {
  globalObject: 'global'
}
,...

Gook luck!


Add TeamsInfo helper class, minor fix in ConversationUpdateBot scenario

Description
Adds the TeamsInfo helper class.
Testing
Tested manually, unit tests are coming next

Pull Request Test Coverage Report for Build 81688

3 of 36 (8.33%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.7%) to 86.745%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/botbuilder/src/teamsInfo.ts
2
35
5.71%

Totals

Change from base Build 81684:
-0.7%

Covered Lines:
4598

Relevant Lines:
5101

💛  - Coveralls

and we need some additional unit tests?


Identify all components of a piece

Pieces are given additional components to their numbers when they are split between counties. Coordinators need to be able to locate them
E0 U6 S9 C6: P21

A suggestion - if i could have a master list sent to me, i can go manually through any with a letter at the end and marry them up with what i have, then Kirk might be able to magic up a technique going forward so it updates in real time?

(I deleted my last comment of a few minutes ago)
I have just read Kirk's suggestion above - I have the logs of moves done since the 7th Feb and also have csv files of those, there are not a huge number so it would not take TOO long to put them together, then Kirk could perhaps work out a way of adding changes in real time as they happen, moving forward from now on

@johnt-freecen https://github.com/johnt-freecen  @rhodamackenzie https://github.com/rhodamackenzie
Yes the Coordinator will specify a year. That will set the filter.
If the file is then indexed on the piece number all associated piece numbers should appear together. (e.g. RG10_1111, RG10_1111A, RG_1111B etc) They will also be together in the ‘Home’ County of the original PARMS file before it was amended, with transferred to Counties interspersed between them. That is because they are in numerical order and the original TNA PARMS download is in numerical order. The other information requested just provides important information about the piece such as civil parishes etc.
If this is downloadable as a csv file the Coordinator can reconstruct their records from their part of this file.
At the moment a Coordinator has no easy way of knowing where parts of a piece have gone. They need a picture of their whole County. As Pat brings new Coordinators on board the move log will make less sense to them, whereas a simple, but large, table will be understandable.
I know the csv file will be large but for Somerset for instance I need to be able to see the pieces that have been transferred of created in Gloucestershire, Devon or Dorset, not just the ones that are still in Somerset. Why? Because I have the images in one block and have to manage them. If I filter by County I can no longer see the transferred pieces. If everything is in the csv file I can extract the parts of the csv file I need.
I hope that this makes sense.
Geoff
From: Kirk Dawson @.>
Sent: Sunday, May 9, 2021 7:42 AM
To: FreeUKGen/FreeCENMigration @.>
Cc: geoffj-FUG @.>; Mention @.>
Subject: Re: [FreeUKGen/FreeCENMigration] Identify all components of a piece (#1208)
@geoffj-FUG https://github.com/geoffj-FUG  @johnt-freecen https://github.com/johnt-freecen  @rhodamackenzie https://github.com/rhodamackenzie  Can I assume that the coordinator will specify a year? Will they also specify the original piece that may have had parts moved?
Without some degree of guidance it could be very time consuming task to look through all pieces to see if it has been split. We could start by finding all piece names that include and alphabetic character and look up the piece original piece number and see if they are different counties.
Alternatively perhaps we could look at combining the move results log to set up a collection that can be reviewed. Assuming that @rhoda https://github.com/rhoda  has kept them (I have not).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/FreeUKGen/FreeCENMigration/issues/1208#issuecomment-835527863 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AKCPIFMNCLEIK3I7LABBH53TMWV2BANCNFSM42X45UIQ .  https://github.com/notifications/beacon/AKCPIFMHWHV6QNFAJLSADEDTMWV2BA5CNFSM42X45UI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOGHGSJNY.gif

@geoffj-FUG where do you want to see the action link? On the main action page or within a county. There are arguments for both options.

Kirk
My thoughts .
It is a Coordinator function.
My logic says that it should be under Manage County.
Perhaps under Manage FreeCEN2 Pieces. An additional index item at the end of
the menu 'List specific piece breakup'. The County filter should not operate
so that any piece entered for anywhere will be listed. That will help
Coordinators communicate with each other over problems and help them
identify where a piece that is not in their County on TNA came from.
Geoff
From: Kirk Dawson @.>
Sent: Monday, July 12, 2021 1:45 PM
To: FreeUKGen/FreeCENMigration @.>
Cc: geoffj-FUG @.>; Mention
@.>
Subject: Re: [FreeUKGen/FreeCENMigration] Identify all components of a piece
(#1208)
@geoffj-FUG https://github.com/geoffj-FUG  where do you want to see the
action link? On the main action page or within a county. There are arguments
for both options.

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<https://github.com/FreeUKGen/FreeCENMigration/issues/1208#issuecomment-8779
46402> , or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKCPIFIQYEMHKIQHCLQDKRTTX
JQLPANCNFSM42X45UIQ> .
<https://github.com/notifications/beacon/AKCPIFONPGGH2IMB5BKBVL3TXJQLPA5CNFS
M42X45UI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOGRKGMIQ
.gif>

<https://home.mcafee.com/utm_medium=email&utm_source=link&utm_campaign=sig-e
mail&utm_content=emailclient?utm_medium=email&utm_source=link&utm_campaign=s
ig-email&utm_content=emailclient>
Scanned by McAfee
<https://home.mcafee.com/utm_medium=email&utm_source=link&utm_campaign=sig-e
mail&utm_content=emailclient?utm_medium=email&utm_source=link&utm_campaign=s
ig-email&utm_content=emailclient>  and confirmed virus-free.

@geoffj-FUG Before I go any further have a look at test3 for a possible implementation; not fully integrated .bbut is this what you had in mind

Kirk
Coordinators don't think in Civil parishes, they thing in piece numbers. So
the most useful option is option 2 and the least useful is option 3.
Looking at the length of the result there is a problem in that I either
scroll for a long time or cannot get near the piece I need with the
elevator. It would be easier if a Coordinator could type in the primary
piece number having selected a year and then the set with that primary
number would be displayed.
So selecting 1851:
Then 1927
The results for 1927, 1927A and presumably 1927B transferred to DEV would be
displayed together with a list of the Civil parishes in each piece. (The
list below is from the PARMS breakup exercise, the civil parishes would all
appear together in each piece).
11
Ashill
HO107_1927
Chard
Ashill
OK

52
Broadway
HO107_1927
Chard
Broadway
OK

121
Cricket Malherbie
HO107_1927
Chard
Cricket Malherbie
OK

136
Donyatt
HO107_1927
Chard
Donyatt
OK

138
Dowlish Wake
HO107_1927
Chard
Dowlish Wake
OK

199
Ilminster
HO107_1927
Chard
Ilminster
OK

200
Ilton
HO107_1927
Chard
Ilton
OK

215
Kingstone
HO107_1927
Chard
Kingstone
OK

333
Seavington St Mary
HO107_1927
Chard
Seavington St Mary
OK

334
Seavington St Michael
HO107_1927
Chard
Seavington St Michael
OK

338
Shepton Beauchamp
HO107_1927
Chard
Shepton Beauchamp
OK

367
Stocklinch Magdalen
HO107_1927
Chard
Stocklinch Magdalen
OK

368
Stocklinch Ottersay
HO107_1927
Chard
Ilminster
Amend to Stocklinch Ottersey
link updated
431
West Dowlish
HO107_1927
Chard
West Dowlish
OK

448
White Lackington
HO107_1927
Chard
Ilminster
Amend to Whitelackington
link updated
58
Buckland St Mary
HO107_1927A
Chard
Buckland St Mary
OK

107
Combe St Nicholas
HO107_1927A
Chard
Combe St Nicholas
OK

218
Knowle St Giles
HO107_1927A
Chard
Knowle St Giles
OK

414
Wambrook
HO107_1927A
Chard
Wambrook
OK

449
Whitestaunton
HO107_1927A
Chard
Whitestaunton
OK

469
Yarcombe
HO107_1927A
Chard
Combe St Nicholas
DEV
Geoff
From: Kirk Dawson @.>
Sent: Tuesday, July 13, 2021 10:36 AM
To: FreeUKGen/FreeCENMigration @.>
Cc: geoffj-FUG @.>; Mention
@.>
Subject: Re: [FreeUKGen/FreeCENMigration] Identify all components of a piece
(#1208)
@geoffj-FUG https://github.com/geoffj-FUG  Before I go any further have a
look at test3 for a possible implementation; not fully integrated .bbut is
this what you had in mind
<https://camo.githubusercontent.com/5bdcf8f0a124ce84f0d6fe81c62d6ce561180e19
ff9894f6940e2b0b17af96c8/68747470733a2f2f696d616765732e7a656e687562757365726
36f6e74656e742e636f6d2f3562363861653638346235383036626332626465666366302f383
73833343034612d323666362d343164612d616339362d363064363065326363383939>
<https://camo.githubusercontent.com/d653246a289b05be001175a4a22f75c220c78c05
bd185babe1b55327129fbc44/68747470733a2f2f696d616765732e7a656e687562757365726
36f6e74656e742e636f6d2f3562363861653638346235383036626332626465666366302f356
63331646162372d373532622d343037362d386530642d366561326634653930323131>
<https://camo.githubusercontent.com/c379cf31f1b55768ca3511d0a447ccc91aff8764
a9acd7ca060c8c54dc647875/68747470733a2f2f696d616765732e7a656e687562757365726
36f6e74656e742e636f6d2f3562363861653638346235383036626332626465666366302f323
86434373562632d313230312d346638372d383961392d653530363861326365636331>

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<https://github.com/FreeUKGen/FreeCENMigration/issues/1208#issuecomment-8786
88653> , or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKCPIFJ6DR4IEJEIZPQWXWDTX
OC7NANCNFSM42X45UIQ> .
<https://github.com/notifications/beacon/AKCPIFOQEXLY3P735NKVDRDTXOC7NA5CNFS
M42X45UI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOGRP3TDI
.gif>

<https://home.mcafee.com/utm_medium=email&utm_source=link&utm_campaign=sig-e
mail&utm_content=emailclient?utm_medium=email&utm_source=link&utm_campaign=s
ig-email&utm_content=emailclient>
Scanned by McAfee
<https://home.mcafee.com/utm_medium=email&utm_source=link&utm_campaign=sig-e
mail&utm_content=emailclient?utm_medium=email&utm_source=link&utm_campaign=s
ig-email&utm_content=emailclient>  and confirmed virus-free.

@geoffj-FUG I am sorry to say your suggestion is not implementable as the initial piece may already have an alphabetic character associated with it. I have spent 3 days trying to find a solution and reached a brick wall and in addition the "numeric" part is not numeric and may be 1-4 characters. Some other programmer may be able to develop such code but I cannot.

@geoffj-FUG @rhodamackenzie I came at the problem a different way.
There is an Action called Locate

It takes you to a piece number entry

Locate then looks for that piece number and any others that start with that number in the complete series.

I do not know what piece moves have been done for SOM so it may not be especially enlightening. But if @rhodamackenzie has a move file for SOM we could run it on test3 so you can get a better sense of the action.
It is running on test3

i can't attach a csv file here but have sent moves files by email to Kirk and Geoff, so we can test on test3

Thanks @rhodamackenzie  run on test3
Results for HO107_933 follow

Looks good!
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10
From: Kirk @.>
Sent: 21 July 2021 00:21
To: @.>
Cc: Mackenzie, @.>; @.>
Subject: Re: [FreeUKGen/FreeCENMigration] Identify all components of a piece (#1208)
CAUTION: External email. Ensure this message is from a trusted source before clicking links/attachments. If you are concerned forward this email to @.***
Thanks @rhodamackenziehttps://github.com/rhodamackenzie run on test3
Results for HO107_933 follow
[HO107_933]https://user-images.githubusercontent.com/2874694/126407265-85a087dc-6bbb-493f-abf5-b64ed36f685a.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/FreeUKGen/FreeCENMigration/issues/1208#issuecomment-883768644, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AO5M7OTCLCXZCMFW3EHM5FTTYYAIJANCNFSM42X45UIQ.
The University of Aberdeen is a charity registered in Scotland, No SC013683.
Tha Oilthigh Obar Dheathain na charthannas clàraichte ann an Alba, Àir. SC013683.

Kirk
Just tested this.
Looks good. It solves the problem.
It always helps to have different perspectives. Your solution is perfect.
Geoff

Kirk
This can be deployed and I will let the Coordinators know. I will put out an explanation that will assist with all the queries.
Geoff


how to handle radius case?

i need support
.square-wrapper{
/* background-color: #666666; */
border-radius: 30;
width: 100%;
height: 100%;
}
but image cahce still show me square

@terrylee2810 I don't know if it will help in your case, but there is a attribute rounded.  It's boolean. When true the image will be rendered rounded.
<IC:WebImage [...] rounded="true"></IC:WebImage>

Yeah one works on Android the other on iOS, so I am using both border-radius and rounded="true"


travis: fix go vet and fmt

Their error messages go to stderr so even when an error happens, the
length of the stdout is zero so the test passes wrongly.
Signed-off-by: FUJITA Tomonori<EMAIL_ADDRESS>

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@fa387c9). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #87   +/-   ##
=========================================
  Coverage          ?   34.55%
=========================================
  Files             ?       59
  Lines             ?    28029
  Branches          ?        0
=========================================
  Hits              ?     9685
  Misses            ?    17314
  Partials          ?     1030

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 fa387c9...8d4609e. Read the comment docs.


Add new ERROR if a GTFS dataset has GTFS files in sub-folders

A Pull Request is currently open to explicitly forbid sub-folders in GTFS.
It seems like there is a consensus on this issue and that the vote will be open shortly.
It would be nice to add this validator rule before the vote opens because the result of the acceptance tests could inform on what practices currently exist around subfolders in GTFS.
The new rule notice has an ERROR severity level, and the pseudo-code is:

if a GTFS input (zip file or URL) has sub-folders that contain .txt files from the spec (full list in the navigation of gtfs.org here) then generate the notice.

The PR to solve this issue should not be merged until #379 passes successfully and is merged.

Modified the description based on this clarification. Subfolders are acceptable, but ones that contain GTFS files are not.

Any thoughts on the naming of this error? @isabelle-dr @emmambd

invalid_GTFS_input
invalid_input_with_subfolders
invalid_GTFS_input_GTFS_files_in_subfolders
invalid_input_GTFS_files_in_subfolders :woman-raising-hand:

@qcdyx I think the last one is the most accurate, but also not sure of the typical best practices we use in naming errors cc @isabelle-dr
I've also updated the issue so it's clear that this PR should not be merged until #379 passes.

Update:
1.invalid_input_files_in_subfolder is used for naming this error. The reason for not using invalid_input_GTFS_files_in_subfolders is that it would be changed to invalid_input_g_t_f_s_files_in_subfolder in the validation report and it's not that user friendly.
2. Mac created zip files reproduce the entire folder, for instance, test.zip contains a "test/" directory that contains the GTFS files and the validator generates missing_required_file notice. A new issue is created for this problem.
https://github.com/MobilityData/gtfs-validator/issues/1532
@emmambd @isabelle-dr


Document MSVC doesn't straddle bit-fields

This PR documents existing behavior in the MSVC toolset.

@workingjubilee : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"

@corob-msft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Ah, I missed that. Thank you, cross-referencing it does seem appropriate.


git doesnt like https repos

git clone https://github.com/TheMozg/awk-raycaster
Cloning into 'awk-raycaster'...
warning: templates not found /jenkins/workspace/Port-Build/install/share/git-core/templates
fatal: Unable to find remote helper for 'https'

to enable https support, we need to build git with curl.

@IgorTodorovskiIBM @HarithaIBM Building with the latest 'dev' code on Nov 10, I see this:
git clone 'https://git.savannah.gnu.org/git/gnulib.git' 'gnulib'
Unknown CURL message received: 16777216

This prevents us from building m4 from 'git' (m4 itself as part of the build uses git to pull down gnulib)

appears to work with the latest git drop


chore: bdd-sbhg-1578703361 to 0.0.1

chore: Promote bdd-sbhg-1578703361 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Openldap seed don't working

Hi,
I'm trying to seed an ldif file to my local openldap with docker-compose. But, no records are seed in.
Here is my docker-compose file :
openldap:
    image: osixia/openldap:1.4.0
    container_name: openldap
    environment:
      LDAP_TLS: 'true'
      LDAP_ORGANISATION: "dadc"
      LDAP_DOMAIN: "dadc.com"
      LDAP_BASE_DN: "dc=dadc,dc=com"
      LDAP_ADMIN_PASSWORD: "admin"
      LDAP_TLS_CIPHER_SUITE: "NORMAL"
      LDAP_TLS_VERIFY_CLIENT: "allow"
    tty: true
    stdin_open: true
    volumes:
      - '/var/lib/ldap'
      - '/etc/ldap/slapd.d'
      - './ldif/06-ldapsample.ldif:/container/service/slapd/assets/config/bootstrap/ldif/01-ldapsample.ldif/'
    command: ['--copy-service']
    ports:
      - "389:389"
      - "639:639"
    hostname: "dadc.com"
  phpldapadmin:
    image: osixia/phpldapadmin:latest
    container_name: phpldapadmin
    environment:
      PHPLDAPADMIN_LDAP_HOSTS: "openldap"
      PHPLDAPADMIN_HTTPS=false:
    ports:
      - "8070:80"
    depends_on:
      - openldap

So when i run docker-compose, at the first try, the openldap container crash with the following output :
Start OpenLDAP...
Waiting for OpenLDAP to start...
Add bootstrap schemas...
config file testing succeeded
Add image bootstrap ldif...
*** /container/run/startup/slapd failed with status 68
*** Killing all processes...

Then, the container can start without any crash but no data are seeding into openldap.
Any ideas ?

Refer to #438


Check that tclsh is built before using it

After './configure', 'make clean' will display errors while trying to
clean doc due to the building of the .dep file.
No messages can be displayed as those will end up in doc/.dep and cause
errors.
closes https://trac.macports.org/ticket/54660

If only make clean is the problem and this is the only location where it is used, I would avoid the .dep target with a conditional:
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 5751a4e2..61315a58 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -119,7 +119,9 @@ all: man
 .dep: $(wildcard *.txt) asciidoc-deps.tcl
        $(INTREE_TCLSH) ./asciidoc-deps.tcl *.txt > $@

+ifneq ($(MAKECMDGOALS),clean)
 -include .dep
+endif

 .PHONY: man xml html

Thanks, I was wondering if I should have tried modifying the Makefile - I'll commit your patch


Displaying optgroup while live searching

I'd like to have a version of live search that shows an optgroup and all its children if the search term matches the optgroup.
This would make working with large data sets that have parent -> child relationships a lot easier. It both shows the context that the optgroup provides, and allows users to filter by it.
For example, a selectpicker with optgroups:
Math

Intro
Algebra
Calculus
Number Theory

Science

Intro
Geology
Physics
Explosions Lab
Then I search for Math and the following is shown:

Math

Intro
Algebra
Calculus
Number Theory
Then I search for Intro and the following is shown:

Math

Intro

Science

Intro
Then I search for Explosions Lab and the following is shown:

Science

Explosions Lab

Hi, is any update about this feature? I'm interesting on it, too.

Plus 1!

Dup of #31


backend reorg try - do not merge

Closes #???
Description
@sideninja this is the changes I mentioned

For contributor use:

[ ] Targeted PR against master branch
[ ] Linked to GitHub issue with discussion and accepted design OR link to spec that describes this work
[ ] Code follows the standards mentioned here
[ ] Updated relevant documentation
[ ] Re-reviewed Files changed in the GitHub PR explorer
[ ] Added appropriate labels

Btw this is a pretty big change and reorg than I anticipated, we can also skip

Let me go through it, I think addressing this is good, just need to understand the consequences first.

@bluesign let me respond on Monday. Sorry.

@sideninja no problem at all, it is big change, take your time.

@bluesign I agree with this approach.
I would just restructure the backend part, I would just rename backend package to adapters and then change the adapter.go to access.go and backend.go to sdk.go since they each adapt the responses to match the access API spec and the other to SDK.
I will give it a more detailed pass in the future when you finish it, but architecturally speaking I would say this is an improvement.

@sideninja great, I have few other places to tweak ( and rebase ) probably I will wait others PR to merge, if ok for you.

Yes, ofc tyt.

closing on favour of new one


Heapcheck missing symbols (cannot find pprof)

Heapcheck cannot load the symbols and returns this message:

*** WARNING: Cannot convert addresses to symbols in output below.
*** Reason: Cannot run 'pprof' (is PPROF_PATH set correctly?)
Note that pprof is in the PATH and I can run it from the command line.

I am running HEAPCHECK as LD_PRELOAD="/usr/lib/libtcmalloc.so.4" HEAPCHECK=normal python run.py, the full resulting log is here.
I tried setting PPROF_PATH to the path to the directory that contains pprof and the path to pprof itself with no success. I also tried to set PPROF_BINARY_PATH. What is the intended setting for these two environment variables? How can I make sure heapcheck finds the symbols?
Finally, can you explain what is the meaning of this warning and how to make sure heapcheck is working correctly?

Have memory regions w/o callers: might report false leaks

PPROF_PATH should point to pprof binary. if it doesn't work, check that pprof --help gives you anything. Also consider testing pprof binary from github.com/google/pprof as perl pprof bundled with gperftools is strongly deprecated.

I confirm that pprof --help worked correctly. Also, I was using perl pprof because strangely the one in github.com/google/pprof was not able to read the profile files when run manually as suggested in the error message.
I solved my bug in the meanwhile and I do not have an easy way to revert the code and investigate the issue with heapcheck at the moment, so I will close the issue for now. Thank you for your answer!

Hi - I'm having this issue now running the heap checker against MariaDB on CentOS 7.7.1908 with a fresh install of gperftools 2.6.1-1. pprof is in the path, in /usr/bin/pprof, and runs correctly, and I have tried setting PPROF_PATH to both "/usr/bin/" and "/usr/bin/pprof" in the service definition with the same result:
Sep  9 14:02:01 MariaDB-10-4-13-G0-C-163 sh: The 4 largest leaks:
Sep  9 14:02:01 MariaDB-10-4-13-G0-C-163 sh: *** WARNING: Cannot convert addresses to symbols in output below.
Sep  9 14:02:01 MariaDB-10-4-13-G0-C-163 sh: *** Reason: Cannot find 'pprof' (is PPROF_PATH set correctly?)
Sep  9 14:02:01 MariaDB-10-4-13-G0-C-163 sh: *** If you cannot fix this, try running pprof directly.
Sep  9 14:02:01 MariaDB-10-4-13-G0-C-163 sh: Leak of 32 bytes in 1 objects allocated from:


Properly set the max proof size weight on defaults and tests

Part of #12176.
This PR sets the default proof size weight correctly, so that it passes unit tests as intended.
The default max proof size is set at u64::MAX, because not all substrate-based chains require submitting PoV blocks to the relay -- standalone sovereign chains can safely ignore this weight component.
For parachains however, the proper parameter to set for the max proof size comes from the relay chain, and is stored a field called max_pov_size in this struct: https://github.com/paritytech/cumulus/blob/032540dbf9afc9f5a0d5db7279fc81048f3a168b/pallets/parachain-system/src/lib.rs#L526.

You chose u64::MAX as a default since it would get rejected by any sensible relay-chain config?

Because it allows chains that don't care about PoV sizes to safely ignore this weight component. Maybe I should write this in the docs somewhere so that people know that they should use u64::MAX for the proof size if their chain doesn't need to care about it.

if their chain doesn't need to care about it.

I guess this brings to mind that maybe this should be an Option value then... but i think for simplicity we don't need that.
But generally speaking, this kind of thing is what Rust is good at describing with explicit types, so just want to call that out.

But generally speaking, this kind of thing is what Rust is good at describing with explicit types, so just want to call that out.

Exactly what I said on element :P

I guess this brings to mind that maybe this should be an Option value then... but i think for simplicity we don't need that.

I thought about this, but it actually doesn't help much, because there's actually two default values: one defaults to max where it's being used to determine the maximum proof size for a block, and the other defaults to 0 where it's sensible for measuring the proof size of an actual operation.
Even if we create new types for this, we can't escape the fact that whenever you define the max block for a chain, you'd still have to manually define the max proof size, rather than relying on the 0 default. And if we try and do it the other way around and make the default u64::MAX instead, then we need to be very careful and weigh extrinsics appropriately, otherwise they would never be able to be placed in a block due to it exceeding max block.

Even if we create new types for this, we can't escape the fact that whenever you define the max block for a chain, you'd still have to manually define the max proof size, rather than relying on the 0 default. And if we try and do it the other way around and make the default u64::MAX instead, then we need to be very careful and weigh extrinsics appropriately, otherwise they would never be able to be placed in a block due to it exceeding max block.

Maybe we should get rid off the Default implementation for Weight at all. This would probably change a lot of code, but would it make more obvious to give these values some sensible values.

bot merge


Update README.md

package.json instead of webpack.config.js as first alternative
This PR contains a:

[ ] bugfix
[ ] new feature
[ ] code refactor
[ ] test update
[x] typo fix
[ ] metadata update

Motivation / Use-Case
I think that it is a typo from context
Breaking Changes
this is relative.. but I think, there is NO breaking change
Additional Info

aha.. ok.. because I was confused about it... webpack.config.js is mentioned as the most used use case, but it is not listed.. so I was thinking the first one item is webpack.config.js... sorry :)


Make visual display more compact

I think we could make the general display of the app more compact, furthermore some parts might be set-able on-the-fly

All popups should be optimized such that they fit on one page without scrolling when viewed with the laptop/ipad. I already tried to change flex-wrap to 'column', however this way the order of elements is wrong. I'd love to have something like flex-wrap-column but with order such as row, could not find anything on stackoverflow for that.
I suggest reducing rowHeight (curr. 40) to a lower value like 26 or 24. This way more values fit on one page and its easier to get a good overview. It also comes closer to the excel interface. I already tried to just change that, but then the page enumerator doesn't seem to display properly. Maybe this could be part of a settings-popup?

What do you guys think @daniel17903 @parttimenerd @christianstarck ?

Yes you are absolutely right. I just haven't spent much time on styling yet.
I made it that large so that you can see the images for rentals / items, for lower row heights they are not recognizable. Also everyone should be able to read the text. Do we really need to see more items on one page? You can use the browser zoom to make everything smaller / bigger which also affects the row count displayed per page.
We should also only display necessary inputs when creating / editing things. For example when creating a new rental we don't need to display the deposit_returned or returned_on fields.

Yes you are absolutely right. I just haven't spent much time on styling yet.
I made it that large so that you can see the images for rentals / items, for lower row heights they are not recognizable. Also everyone should be able to read the text. Do we really need to see more items on one page? You can use the browser zoom to make everything smaller / bigger which also affects the row count displayed per page.
We should also only display necessary inputs when creating / editing things. For example when creating a new rental we don't need to display the deposit_returned or returned_on fields.

Yes, but this also shrinks the font-size! I though of leaving the font size, but reducing the row heights. At the moment there is a lot of padding above and below the font which could be reduced. But you are right, that would shrink the images...
Very good idea! Didn't think of this :) should be rather easy to implement, I'll see if I find time tomorrow

Yes, but this also shrinks the font-size! I though of leaving the font size, but reducing the row heights. At the moment there is a lot of padding above and below the font which could be reduced. But you are right, that would shrink the images...
Very good idea! Didn't think of this :) should be rather easy to implement, I'll see if I find time tomorrow

Done:

Only display necessary fields

Still Todo:

Popup Styling


Equation 6 from the ST-GCN paper

This is in reference to the AAAI'18 paper "Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition". In equation (6) of the paper, we have the conditional expression, d(vtj,vti) <= K. Shouldn't it be d(vtj,vti) <= D instead? Looks like a small type to me.
Do correct me if I am wrong.
Thanks.

Yes. I think you are correct here. Thanks for spotting the typo!
@yysijie


Fix BltPixel::from conversion

Small fix in the conversion from a u32 to a BltPixel.
Because the precedence of the shift operator is stronger than the bitwise AND, the masks are shifted before applying, resulting in all channels being set to the blue channel.
Without the additional parenthesis, green: (color & 0x00_FF_00 >> 8) expands to green: (color & 0x00_00_FF) first.

Whoops, that was quite an oversight. Thanks for the fix!


GEODE-8214: Add new ServerDisconnect test

This test was designed to assist with debugging of issues discovered with boost::asio.

Note: This test passes on develop, but fails on feature/asio branch.


DD-PPO RL Baseline - Visual Input Size Not 256x256

I was wondering what exactly happens, when the input size of RGB and/or Depth Sensor is not equal to 256x256. I tried it with 400x300 and the program didn’t raise any errors and training seemed to work. What kind of transform is applied? I wasn’t able to find a direct answer by looking through the code. Is it a Center Crop (like CenterCropper from the Batch Obs Transforms) or does it stretch the image?

Closing the issue because it has not had recent activity. Feel free to re-open the issue, if you still have questions.


Re-add duplicates to AMR pipeline

CZID-7985
This PR re-adds duplicate reads that have been removed via the host filtering stage. This affects workflows that use raw_reads_0 and raw_reads_1 as sample input, i.e. in CZID samples that are uploaded directly for AMR analysis. This does not affect samples that were originally uploaded to other workflows (mNGS or ONT) since the non_host_reads and contigs inputs assume that they have duplicates already added back in. The most dramatic differences will be seen in FLASH samples.
The code here accomplishes this by taking in reads remaining after HISAT2 filtering in the host stage, as well as the duplicate cluster ids and sizes analysis from the dedup stage, and comparing them to the reads left after subsampling. Reads that remain after host filtering and are identical to one in the subsampled set of reads are interleaved with the subsampled reads before being fed to the rest of the workflow.
If the redup step sees that there are no cluster sizes >1 in the dedup output, it simply outputs the subsampled reads.
Example of a FLASH sample run on the current workflow:

Same sample run on the version in this PR:

This looks good but is there a case where we'll need to re-add the duplicates from the short-read-mngs side? I.e. when we're kicking off from a sample that has already been host filtered?

I looked into that last week and thought that wouldn't be an issue, but I looked again after reading your comment and it appears I made a mistake. That case does exist for short-read mNGS samples. Currently, the webapp uses the output of the short-read mNGS subsampling step as input to the AMR workflow, along with the contigs fasta output from the short-read mNGS postprocessing step. The task to generate contigs does use duplicates as part of its input, but the subsampled file is stripped of all duplicates. The context needed to reinsert duplicate reads is not present.
This PR would only affect samples uploaded directly to the AMR workflow, so samples already run on the short-read mNGS pipeline would not see any benefit.
However, there is a simple solution: update the webapp to use the nonhost fastq files generated by the NonhostFastq task in the experimental workflow instead of the subsampled task output. I will ask if this is something we can do, because that would make things much easier (and require no code changes to this PR).
If that is not the case and we wanted to avoid rerunning host-filtering, we would have to add four more parameters to the workflow for non-host reads before deduplication and subsampling, cluster ids and cluster sizes, and a flag to distinguish mNGS samples from ONT samples, logic to deal with those samples, and logic on the webapp side to include those files when running short-read mNGS samples on this workflow version and up.


Version 2 of string interning

Is your proposal related to a problem?
We currently have interning in Receive under a feature flag. It works but it could be improved a lot. We still allocate memory for each duplicate and then deduplicate later on.
Remote write requests and series responses will allocate new memory for each duplicated string. The most obvious pathological case is when querying histograms. The label le can be easily allocated thousands of times. This is even worse because of incoming duplicated data due to HA setup.
I think this leads to huge inefficiencies.
Describe the solution you'd like
We should avoid allocating memory for duplicated strings. This could be a per-request map of hash to []byte/string.
We should be able to use this same deduplication technique in remote write, series responses, and any other place.

BTW this problem will be totally fixed by Remote Write 2.0 https://docs.google.com/document/d/1PljkX3YLLT-4f7MqrLt7XCVPG3IsjRREzYrUzBxCPV0/edit#heading=h.3p42p5s8n0ui

That's true but I'd like to solve this problem at the RPC level once and for all so that all and future hot RPC paths would be protected from this issue automatically. Otherwise, we will have to implement this https://github.com/thanos-io/thanos/pull/5906, have a list of string refs like your proposal in the remote_write calls, etc.


Integrity check failed: Data seems to be missing.

Output of restic version
restic 0.16.3 compiled with go1.21.6 on windows/amd64
What backend/service did you use to store the repository?
Local folder.
Problem description / Steps to reproduce
# restic prune

enter password for repository:
repository 8ac455d3 opened (version 2, compression level auto)
loading indexes...
[0:03] 100.00%  89 / 89 index files loaded
loading all snapshots...
finding data that is still in use for 139 snapshots
[0:30] 100.00%  139 / 139 snapshots
searching used packs...
{<data/4ea0e0f4> <data/05ab9c75> <data/7efc8633> <data/78a978a5> <data/0944cce7> <data/e56e62b6> <data/40dfa726> <data/412d98c2> <data/9c41d0dd> <data/735a35e3> (128 more)} not found in the index

Integrity check failed: Data seems to be missing.
Will not start prune to prevent (additional) data loss!
Please report this error (along with the output of the 'prune' run) at
https://github.com/restic/restic/issues/new/choose
Fatal: index is not complete

Expected behavior
Pruning occours.
Actual behavior
An error is shown, asking to be reported.
Do you have any idea what may have caused this?
Maybe several BSOD during the last backup, due to an antivirus I cannot disable.
restick check --read-data, which is in progress, shows several packs not references in index and several files not found in index.

One single pack was corrupted.
I tried rebuild-index and repair index but I still get the same error with prune.
Is there a way I can repair the backup?

Then, I used forget for the snapshots that where repaired.

That is the reason why https://restic.readthedocs.io/en/latest/077_troubleshooting.html uses restic repair snapshots --forget.

Now prune works.

Please run restic check --read-data to make sure there are no further hidden defects.

restick check --read-data, which is in progress, shows several packs not references in index and several files not found in index.

Do you still have the output from check? The error reported by prune looks like a pack file disappeared for some reason. The mentioned BSODs could be the cause of that, in which case there's nothing restic can do to prevent the repository corruption.

There where some trees missing, but no pack was missing. There was a corrupted pack. Maybe I can get the full output tomorrow.
After the pruning, the subsequent check found another corrupted pack. No BSOD happened in this case.

There was a corrupted pack. Maybe I can get the full output tomorrow.
After the pruning, the subsequent check found another corrupted pack.

Corrupted pack files often hint at hardware problems. It might be a good idea to run a CPU / RAM stress test.

Do you still have the output from check? The error reported by prune looks like a pack file disappeared for some reason. The mentioned BSODs could be the cause of that, in which case there's nothing restic can do to prevent the repository corruption.

How can I share it privately?

Closing as there has been no feedback. Feel free to reopen it though.


Run SonarCloud only on pull requests to master

Run SonarCloud less often to reduce build times for normal CI builds.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: brampals sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Discord inactive

The Discord link in README is inactive. It seems to me Nostr-Rust related things are moved to https://github.com/rajarshimaitra/rust-nostr (I've joined the Discord link over there). The Discord link in this project's README can be changed to that link.
And, oh, by the way, do you have plans to deprecate this project, since there's rust-nostr now, @scsibug?

No, there are no plans to deprecate this project.  "Nostr-rust" is a fork of this, but only because Raj and I had disagreements over whether to be fully compatible with future Nostr events.  He is free to take the code and use it for any projects he want to start, but that has no impact on the goals of "nostr-rs-relay", which will continue to provide a small, fast, correct, and full nostr implementation (all current/future event types conforming to NIP-01).

I've updated the Discord link. The old one expired, the new one has no expiration.


fix markdown in src/3_branch.js

@dmitrig01 not exactly sure whats going on with the cordova mods. looks like someone changed sources and maybe didn't run make?

yea. probably a new version of something or other


Users should have a fast way to edit and re-run a recent job.

I don't think this will be a v1 feature so can we even say what priority it might have?

I thought Nico was working on this feature?

Oh really? @NPavie is this true?

hum i think this is a good idea but i don't remember saying I was working on it (if is said so, I had not the time to assess the issue)
Before the issues review, I was working on keeping job states in the backend to recover them on re-opening a window (that could be part of #32)

Oh, misunderstood then.

keeping job states in the backend to recover them on re-opening a window

Would we use that feature though? Or is it more about making the code more robust and preparing for the future?
Remember that currently we've left persistence out of the picture completely, to simplify things for both the users and the developers. When a job tab is closed, it is discarded and can't be brought back.
The design document describes how we could do persistence, but the way I think about that now is that's it's for a faraway future.

@bertfrees no both this issue and #32 are different than Pipeline-side persistence.
This issue came from a notepad of ideas that I had. We have not yet evaluated it as a feature or assigned it to anyone, nor have we scheduled it as part of any release.

In my last comment I wasn't talking about this issue (#28) or #32 but about what Nico said ("keeping job states in the backend to recover them on re-opening a window"). To me this sounds like a kind of persistence. When I say persistence I'm not talking about Pipeline-side persistence but also about e.g. closing a job tab and then bringing it back. To me what Nico said sounded like that: "recover on re-opening a window". Maybe I've just misunderstood again.

the new features work for me :)


MM-47067 : Migrate "components/suggestion/channel_mention_provider.jsx" to Typescript

Summary
Migrate channel_mention_provider.jsx to typescript
Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/21133
Fixes https://mattermost.atlassian.net/browse/MM-47067
Related Pull Requests
None
Screenshots
NA
Release Note
NONE

Hello @AbhinavVihan,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

E2E tests not automatically triggered, because PR has no approval yet. Please ask a developer to review and then try again to attach the QA label.

/update-branch

Error trying to update the PR.
Please do it manually.

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/254449

Thanks @AbhinavVihan
Tested, looks good to merge - pending e2e report
Well update here shortly

@M-ZubairAhmed Can you please approve the last workflow and merge? thanks


wasm-pack test --headless fails to run on macOS

🐛 Bug description
Tests in a crate that uses web-sys IndexedDB bindings fail to run on macOS:
https://github.com/paritytech/parity-common/pull/202#issuecomment-534574129
🤔 Expected Behavior
The tests should run as they do on linux.
👟 Steps to reproduce
https://github.com/paritytech/parity-common/pull/202/files#diff-354f30a63fb0907d4ad57269548329e3R46
🌍 Your environment
wasm-pack version: 0.8.1
rustc version: 1.37

Thanks for the report @ordian!
I don't have any macOS machine present so pretty hard for me to investigate this unfortunately... We would happily accept a pull request that resolves this and makes it work on macOS.

hi @ordian ! are you still running into this issue?

hey @ashleygwilliams! it seems like an incompatible chromedriver is installed by default on macOS
See https://github.com/paritytech/parity-common/issues/226#issuecomment-555554321]
We're using this workaround for now.
I'm not sure if it's a bug in https://github.com/rustwasm/wasm-pack/blob/15e354f19ccef26cb7baca5dacda1bcd2f9904a2/src/test/webdriver/chromedriver.rs though.


Include the 25th when matching counterpart dates

Hi
This is a tiny fix for the 25th as an inDate not being reloaded when calling reloadDates. The 25th can appear as an inDate on months with 30 days. An example is between June - July 2017 when using Sunday as the first day of the week.

Good find. Thanks.


Attachment size limited to 256MB

Describe the bug
I am unable to upload attachments larger than 256MB (according to the error).
Steps To Reproduce

Running Ubuntu 18.04 - used installation script
updated /etc/php/7.2/apache2/php.ini

memory_limit = 2048M
post_max_size = 2048M
upload_max_filesize = 2048M

Go to any page and try an upload file larger that 256MB
4: Get error "File is too big (filesize). Max filesize: 256MiB."

Screenshots

Configuration:

BookStack v0.25.1
PHP Version:  7.2.15
Apache 2

Sorry @kramester to see you're hitting issues here.
Looks like this is a limit set in the file-upload library.
We can look ot make this configurable as we have done for the timeout, Shouldn't be too tricky.
Have assigned to the next patch release.

Most excellent, thank you!

How is this fix enabled? I tried adding something like
<script>     window.uploadLimit = 512; </script>
to the Custom HTML head content but it didn't change anything.

@Zeigren Are you on the latest BookStack release?
Do you get the exact same error message? Please screenshot it if you can.
Might be an idea to open a new issue since this one is closed, otherwise comments may be missed.


Fix compatibility to Qt applications

This change renames two variables named "signals" to "unix_signals".
This is needed because Qt defines a macro "signals" that expands to nothing and is used by Qt's meta object compiler (which is kind of a C++ pre-processor) to add its signal-slot feature. This will cause compilation of backward.hpp to fail, when used from a Qt application, because the variable "signals" will be expanded to "" by the cpp pre processor.
I'm trying to use backward-cpp in a Qt application, but so far it only works, if I include it using:
#pragma push_macro("signals")
#undef signals
#include <3rdparty/backward-cpp/backward.hpp>
#pragma pop_macro("signals")

Thank you!


Release a new version.

Could you please, release a new version of PyCharlockHolmes with the support to python3?

@xtao

@xtao ajuda ai please!!

We need the new version, help us please

Hey, do you intend to launch a new release?

I'll release this in two weeks.

See: https://pypi.org/project/charlockholmes


Prepare Initial  Dev Environment

[ ]  automatic linting (eslint),
[ ]  typescipt
[ ] rollup

feel free to add more items, so I can proceed with them

If you could set this up, that would be amazing. I already have most of the code completed but didn't have time to scaffold a project.
Might be also nice to have:

[ ] prettier
[ ] jest

Looks good. Note that we have https://github.com/vega/vega-lite-dev-config to keep the dev environments consistent. See https://github.com/vega/vega-embed for an example. No need to use it if you don't find it useful, though. Happy to give you access to https://github.com/vega/vega-lite-dev-config if you want to make changes.

Cool, I'm going to start playing with project sckafolding

[ ] Github Action CI ideally with tests and auto release of tagged versions (again, look at embed for examples).


NFS and NetApp Files

There appear to be two more options besides Disks, Files, and BlobFuse. Can these be added to the comparison here?
https://docs.microsoft.com/en-us/azure/aks/azure-nfs-volume
https://docs.microsoft.com/en-us/azure/aks/azure-netapp-files

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

ID: dc89d962-27d5-2ebd-4e8d-092948eb92a3
Version Independent ID: 49e054ed-b4c7-f4d7-b88f-68a0ff61035d
Content: Operator best practices - Storage in Azure Kubernetes Services (AKS)
Content Source: articles/aks/operator-best-practices-storage.md
Service: container-service
GitHub Login: @mlearned
Microsoft Alias: mlearned

@dcbrown16
Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.

@SteveBurkettNZ Would you be able to help update this doc with this requested information? Let me know. Thanks :)

Any progress?

Thank you @dcbrown16 for the feedback!
We've added an item to our backlog and will prioritize accordingly.
#please-close


Problems on Windows 10

Hello,
While I am trying to use wasmedge sdk for windows 10, I got the error. Have you any suggestion for that? I have done the required steps for installation.
Thanks in advance!

It looks like the this doesn't contain the windows related part:
https://github.com/second-state/WasmEdge-go/blob/master/wasmedge/cgo.go#L3-L6
Do you know how to link with CGO on the Windows platform?


Expression Builder drag and drop - add multi-select

Allow use of control key and mouse click to select any set of nodes (not contiguous) much like a multi-select list behavior and then provide option to delete, copy, move, etc.

Like discussed via email, ctrl+shift allows to quickly select groups of nodes


Help implementing Arbitrary on an array of ArrayVec

This is a helpful library, and in many cases, I've found it to be more ergonomic than the quickcheck library.
One issue I'm struggling with, though, is implementing Arbitrary for an array of ArrayVec values. I think the ideal code would look like:
struct MyArrayVec(ArrayVec<[u8; 16]>); // Newtype-style wrapper

impl Arbitrary for MyArrayVec {
    // what goes here?
}

#[derive(Arbitrary)]
struct MyStruct {
  items: [MyArrayVec; 10],
}

But, I don't know the idiomatic way to do it. I see that the arbitrary! macro is not public in this crate (not that I would know how to use it). Perhaps the answer to this question could be added to a FAQ or HOWTO document. Thanks!

I see that the arbitrary! macro is not public in this crate (not that I would know how to use it).

Yeah, it's fairly opaque, but it's just for internal use to reduce repetition for all the Arbitrary standard library impls proptest provides.

But, I don't know the idiomatic way to do it.

This is going to be a bit tricky because ArrayVec would need to provide the Arbitrary impl or otherwise you'll get into orphan rule problems. cc @bluss (tho I doubt arrayvec would want to take on an optional proptest dependency).
I do think MyArrayVec is the approach you'll need to go with. I would look for inspiration from the impl<T: Arbitrary> Arbitrary for [T; N] and impl<T: Arbitrary> Arbitrary for Vec<T> implementations. In particular the last one should provide what you need but for the general case rather than for a fixed upper bound.

@Centril What do you think about creating an auxiliary builder struct type to be used just for playing nice with Arbitrary?

#[derive(Arbitrary)]
struct MyStructArbitraryBuilder {
  items: [Vec<u8>; 10],
}

impl MyStructArbitraryBuilder {
    fn to_my_struct(self) -> MyStruct {
        // ...
    }
}

I don't think this is composable with derive, and I'm not sure how to implement length limits in the Vec, but it could be a start.
I wonder if there would be a benefit to creating builder types like this, in general? So that I could create a Builder type for, say, MyArrayVec and deriving Arbitrary would be parameterized by a type that implements Builder.

[Vec<u8>; 10] seems semantically different tho? That will always generate 10 arrays with vectors of arbitrary size (within limits but details...). So indeed, I don't see how you can make that into ArrayVec<[u8; 16]> without doing some hacky discarding (but that will also be doing extra work for no gain). I think it's better/cleaner to dig into the impl<...> Arbitrary for Vec<T> code and extract the relevant logic. Perhaps we can add an arrayvec optional dependency for proptest?

I wonder if there would be a benefit to creating builder types like this, in general? So that I could create a Builder type for, say, MyArrayVec and deriving Arbitrary would be parameterized by a type that implements Builder.

The derive stuff for Arbitrary is able to bake in custom strategies via functions and whatnot so you can reduce some of the boilerplate that way.

@Centril Happy to look into the impl of Arbitrary for Vec -- I looked it up but it seemed to use a lot of macros. Could you point me to the best place to start?

@rw The 🐰 🕳 goes as such:

https://github.com/AltSysrq/proptest/blob/7d3310c441c634df624e30f5c7e61025cb599977/proptest/src/arbitrary/_alloc/collections.rs#L75
https://github.com/AltSysrq/proptest/blob/7d3310c441c634df624e30f5c7e61025cb599977/proptest/src/collection.rs#L194-L216
https://github.com/AltSysrq/proptest/blob/7d3310c441c634df624e30f5c7e61025cb599977/proptest/src/collection.rs#L532-L672

@Centril Hmm, is it enough to do:
 impl_1!(MyArrayVec, VecStrategy, => vec);

?

The macro isn't public but even so that would generate a Vec<T>. If you are OK with that then you can just map a Vec<u8> bounded at [0, 16) elements to an ArrayVec<[u8; 16]> . The only drawback would be unnecessary allocation.

@Centril Thanks! Would you be able to help me write this impl? I don't understand everything involved, nor what the impl_1 macro is doing.

I would suggest forgetting about impl_1 right now and focusing on the basics.
You can make a strategy for ArrayVec<[T, u16]> with:
use proptest::strategy::Strategy;

fn gen_array_vec<T>(elem: impl Stategy<Value = T>) -> impl Stategy<Value = ArrayVec<[T; 16]>> {
    proptest::collection::vec(elem, 0..=16).prop_map(|vec| vec.collect())
}

Then, if you want to avoid the additional work, I would read up on the VecStrategy logic and implement a strategy for ArrayVec<[T; $n]> elements where $n:expr is ideally from a macro (due to no const_generics...).

Why is an impl needed? I thought the point was value based and not type based testing :)

@bluss well, ever since Arbitrary was added it's both value (at its core) and type based for added convenience (oftentimes you do have a canonical strategy for a type).

@bluss I have opinions, but I'm not an expert on this library yet. From what I can tell, implementing Arbitrary is useful when you want to use proptest-derive, among other things.
@Centril WDYT about creating a helper function to turn a Strategy into an impl of Arbitrary? I'm finding that I don't know which combinators to use to create the associated types for Arbitrary. I feel that this library has a big DSL that takes some time to learn. Maybe we can provide a shorter happy path for this common case. (I think I understand the value proposition of the proptest library, and I'm hoping to learn more, but right now I hope to get unblocked without needing to grok everything.) Thanks!

For future readers: I figured this out by creating "builder" types that are used just for testing purposes. I didn't figure out how to manually implement Arbitrary myself for my own types.
Here's an example of the kind of code I wrote:
#[derive(Arbitrary)]
struct MyStructSimple {
  items: [[u8; 16]; 10],
}

impl MyStructSimple {
  fn to_actual(&self) -> MyStruct {
    unimplemented!()
  }
}

struct MyStruct {
  items: [MyArrayVec; 10],
}

proptest! {
  #[test]
  fn test(input in any::<MyStructSimple>) {
    let actual = input.to_actual();
    assert_eq!(actual.items[0][0], 123);
  }
}


Add repository language badge to repo-card

It would be neat to have the repository language information displayed on the repository cards, just like it is in Github.

The repository API publishes that information in the form of a string, so to replicate GitHub's behavior I've had to write some ugly code by adding an if statement for each language:
    {% if repository.language == "Go" %}

    Go
    {% endif %}

It would be neat if somehow it was possible to have an equivalent to this that doesn't add much complexity, but I'm not sure if it's doable.

@Ullaakut  I ended up making a couple of changes to your original code to make it a little better using https://github.com/ozh/github-colors/blob/master/colors.json for the colors and then changing your above code to:
    {% if repository.language %}

      {{ repository.language }}
    {% endif %}

I will work on getting a PR in unless someone beats me to it.

That's an awesome generic solution. I guess we could open a PR to add this by default, what do you think?

@Ullaakut, currently have PR#28 but might take a little bit for it to be merged to master.


BUG: Not possible to change input after set in swap screen

Describe the bug
After first input in from Asset on swap screen leaving the text field and wanting to amend the amount the keyboard does not pop up again. It is needed to change screens to be able to do amend.
To Reproduce
Steps to reproduce the behavior:

Go to swap view
Input amount for from asset
tap out of text field
try to amend the amount

Expected behavior
Keyboard pops up again
-Version 5

It is still possible to reproduce this error when going back and closing the keyboard. If entering a value it is possible to reopen the keyboard.
All views are affected

on my pixel 8 , latest from main branch , the issue is fixed

@realpaaao can you try this with latest 1.0.7

@johnnyluo I just verified with both android devices on v7 and can still replicate the issue. like quoted:

It is still possible to reproduce this error when going back and closing the keyboard. If entering a value it is possible to reopen the keyboard.
All views are affected


feat: support aten::conv1d and aten::conv_transpose1d

Signed-off-by: Ruoqian Guo<EMAIL_ADDRESS>Description
Support aten::conv1d and aten::conv_transpose1d
Fixes # (issue)
Type of change
Please delete options that are not relevant and/or add your own.

New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines of this project (You can use the linters)
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas and hacks
[ ] I have made corresponding changes to the documentation
[x] I have added tests to verify my fix or my feature
[x] New and existing unit tests pass locally with my changes

Merged in staging branch


Content types

What do you need?
https://github.com/AusDTO/gov-au-content-guide/issues/154
Which entry/section is this related to?
http://content-guide.apps.staging.digital.gov.au/content-types/

We need to re-scope / re-prioritise this task as we now have a types of content page in our content guide.

Content types are being addressed in content strategy. New ticket to be opened re restructuring current Content Types to be Content Types (annual reports etc) and Content Formats (Word etc)


Test Issue created at Tue, 28 Dec 2021 02:22:58 GMT

Test issue body  Tue, 28 Dec 2021 02:22:58 GMT

Comment on issue at Tue, 28 Dec 2021 02:23:00 GMT


Add edge arrows

Implements #872 and #875:

This deviates from the original design in that the edges do not terminate at the arrow. In order to shorted the edge to match the position of the arrow, we would need to subtract some length from the edge and re-calculate the path of the edge.

Does this also show the arrows in the normal view, on mouseover, as discussed?

@rade I had forgotten about that, but it was fairly easy to add:

Nice!
I think this is good enough to close #872 and #875, though I suggest filing a follow up issue to adjust node position based on connection direction in the radial view, as per https://github.com/weaveworks/scope/issues/875#issuecomment-230283677 and https://github.com/weaveworks/scope/issues/1636#issuecomment-282954123.

Just to check, the arrow(s) also appear on mouseover of an edge, right? (right now this just highlights the edge)

They will appear when the edge is in a 'highlighted' state:
const shouldRenderMarker = (focused || highlighted) && (source !== target);
Where marker is the arrow.

adjust node position based on connection direction in the radial view

I had a version of that implemented, where I placed all clients one side and all servers on another. It didn't make a lot of sense with real data, as most nodes either had one or the other.
I do think, however, that it will be possible to keep the nodes in their current radial shape, but place client and server nodes next to each other in the radial shape.

I do think, however, that it will be possible to keep the nodes in their current radial shape, but place client and server nodes next to each other in the radial shape.

I am not sure what you mean by that, but the basic idea in https://github.com/weaveworks/scope/issues/1636#issuecomment-282954123 is to draw the radial shape exactly as now, with exactly as many "slots", but when it comes deciding which node to put in which slot, we bias positioning near the top for clients, near the bottom for servers, and left/right for client/servers.
A further improvement on that would be to maybe add a small gap between the resulting groups.
Anyway, all this should be subject of a follow-up issue. Merge, merge, merge :) (post review, of course)

Hmm, I thought I had this working but it turns out that I got a false positive on the bidirectional connections between the 'consul' containers. There may be an issue with the way the <path /> elements are rendered by D3 that is messing up the behavior of the markerStart attribute.
One thing that would make this implementation much simpler would be if we remove the  collapseMultiEdges behavior. Then two edges get rendered for bidirectional connections and the arrows just work.
@fbarl Do you have a sense for how much of a render improvement we get from that optimization? Do you think it would be okay to remove it for a quick win on these edge arrows?
The alternative will be a complex custom solution in which we have to calculate the edge direction to get a polygon to point the way, rather than having the browser SVG engine render it for us.

I suggest you gather some stats on what percentage of edges get collapsed. Take something like Weave Cloud Prod, and check the process, container, pod (all namespaces), service (all namespaces) and host views.
I suspect the host view is going to have a very high ratio. And it's already looking like a bowl of spaghetti.
Perhaps don't show any arrows for bidirectional connections?

Perhaps don't show any arrows for bidirectional connections?

This sounds like a good idea, but I'm worried about two potential downsides:

The bidirectional edges will be drawing less attention than the directed ones (while in my opinion, it should be either the same or more)
Will it look like a bug, as if the arrow hasn't been drawn by mistake?

Maybe both of these would be resolved by positioning the nodes well in the radial view though...

One thing that would make this implementation much simpler would be if we remove the collapseMultiEdges behavior. Then two edges get rendered for bidirectional connections and the arrows just work.

From the performance perspective, I'd say go ahead and remove it, I think the effects will mostly be negligible. However, even if the two edges would be drawn perfectly on top of one another, I think there would be cases when they would look slightly different - e.g. on hover, since the semi-transparent blue border would be applied twice. Because of these tiny effects, I think it would be really preferable to draw always max one edge between a pair of nodes, but if it's really proving to be hacky and difficult to make it work with collapsed edges, I'd give my vote for the quick win :)

Some stats on the number of edges being collapsed (bidrectionalEdges / totalEdges):
Hosts: .24
Containers (all): .03
Pods (all namespaces): .02
Processes: .03
Services: .02
As expected the hosts view has the most bidrectional edges. The rest have only a few.

That's from Weave Cloud Prod?
Here's another idea: Could you "uncollapse" edges when you want to show arrows on them? Or is that either hard or does not help solve the problem?

I thinks this is ready for review now. @fbarl would you mind taking a look?
My thoughts on this is that its an 80/20 solution that's not perfect, but I think the upside is worth it. The graph is a lot more informative now. I removed the opacity on the edges so that two edges laying on top of each other are indistinguishable from single edges. The hover background is slightly more opaque on bidirectional edges, but I think I only noticed because I knew it was there.
Some samples:

I would like this to be more extensible, but the SVG <marker /> element is fairly restrictive. Some alternatives would be adding waypoints to our path elements and trying to use markerMid, but that might involve digging into the dagre library.

so you got bidirectional edges working properly after all?

That's from Weave Cloud Prod?
@rade Yes thats a report from prod

"uncollapse" edges when you want to show arrows on them

Since the arrows appear/disappear on mouseover, we would need to re-render on each those events, so I don't think it would be worth it.

@rade yes, but I cheated by just rendering two edges for bidirectional connections

Oh ok. Do you have a before/after of the Weave Cloud Prod hosts spaghetti bowl? I am curious how much worse it looks.

The edges themselves haven't changed. You won't even notice the bidirectional edges because they follow the same path and lay on top of each other. We removed them to save cycles on renders because you can't see them.
Prod:

This branch:

You won't even notice the bidirectional edges because they follow the same path and lay on top of each other

Aha! So once again then... Merge, merge, merge :) (post review, of course)

@fbarl

When you hover on a node in big graphs, some of its outgoing nodes might be outside of the viewport in which case you don't see the arrow at all. Have you thought about showing both incoming & outgoing arrows close to the selected/hovered node instead of close to the nodes they point at? I think it might also look nicer in the circular view.

This was brought up during the design phase. On big topologies, I think it is better to see the arrow closest to the target node. It allows for a faster understanding of the way connectivity is working. I think the highlighted edge that disappears off screen is enough to indicate that another connection is happening at an unseen node.

Currently the selected node label can obscure some arrows in the circular view, which is especially true in the contrast mode where there the labels are fully opaque. Not sure what can be done there, but maybe I'd increase the label transparency in that case as edge arrows should be fully visible in the circular view.

Increasing the label transparency would make the text clash with the arrow. Ideally, we would be able to detect if the two were on top of one another and act accordingly. Since the edges and nodes are rendered separately, we can't get the bondingRect to know if a collision is happening. Also, we would have to save each node and edge as a ref and interact with the DOM directly ☹ .
That said,  I would like to defer this to a future iteration and try to fade out the selected node label on edge hover maybe.

I'm not sure #875 should be closed before the nodes in the circular view are reordered so that the incoming ones are always above the outgoing ones. Or did we decide that we're not implementing this in another story?

I think that's fair. Updated the PR description.


Tailwind v3.3.0

Hello @mhsdesign!
Would it be possible to push this to npm? Tailwind v3.3.0 just got out so I changed the version for this library too.
Tested it locally, doesn't seem to break anything. Also removed the line-clamp plugin from the esbuild-demo folder. This is no longer needed with Tailwind v3.3.0

Tested it locally, doesn't seem to break anything

didnt work for me, i had to disable this funny rust oxide thingy: https://github.com/tailwindlabs/tailwindcss/pull/10252
but now it seems to work fine ;)
Thanks for keeping it up to date ^^


Basket Filter

class GroceryBasket
  include Basket::Batcher
  basket_options size: 2, filter :organic
end

class Apple
  def organic?
    true
  end
end

class Takis
  def organic?
    false
  end
end

Basket.add('GroceryBasket', Apple.new)
Basket.add('GroceryBasket', Taki.new)

Basket.queue('GroceryBasket').size #=> 1

Would this be cool?

Thought about this more and seems like it should actually be caller logic - like
if fruit.organic?
  Basket.add('GroceryBasket', fruit)
end


Dema & MACD Binance

Note: for support questions, please join our Discord server

I'm submitting a ...
[X] bug report
[ ] feature request
[ ] question about the decisions made in the repository

Action taken (what you did)
Tried using Dema & MACD with Binance.

Expected result (what you hoped would happen)
Automatic trades.

Actual result (unexpected outcome)
No trades at all using Dema or MACD with Binance.

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc)
RSI and StochRSI both work well with Binance. This was of course when Binance was still working a couple of days ago.

Please post logs, they are stored in the gekko/logs folder (if you were using the UI).

I did not do live trading with Dema or MACD on Binance yet because of the following. I only did 3 day backtesting for example from 01-02-2018 through 04-02-2018. There were 0 trades with the default settings. When I switched some settings randomly, there were also 0 trades like in your introduction video when you were showing backtesting.
Now, that I am observing the command line in Terminal, I see that both methods result in "No Trend" all the time. Maybe I just don't understand what correct settings to input, but I tried many different settings.

Also, I have many logs, but I don't see the one from today's backtesting. But on command line, I see "No Trend" so that's probably the problem. Does it work for you on those days above?

Oh yes, I forgot to add its between BTC - ICX. That's all I tested so far.

binance stopped trading so they could do a sync to their master system, sites been down for a day or two now. this could be your problem

i have set my bot to trade on a different site after the binance problems, i have not gone back to binance as yet

Keep in mind that MACD is not a normalized value so depending on the current average price you will have to tailor the threshold values, and depending on the coin pair they might need to be several orders of magnitude smaller.
Take a look at the MACD Histogram Momentum Oscillator for the common method of normalizing the value to work across different markets.
@ferrari3rider


Add some type hinting to fix a warning about implicitly marking param

Spotted this warning on my dev console, so I've tweaked the type handling a little bit.
│ Tighten\Ziggy\BladeRouteGenerator::generate(): Implicitly marking parameter... │

Apparently I have to resolve some test errors. I'll flip this PR back to ready once I have.


adding docs for includeing version in status endpoint and configuring…

… nginx time_format
Signed-off-by: Vinay Satish<EMAIL_ADDRESS>Description
Adding docs for the resolved issues #2156 and #2214
Check List

[x] All commits have been signed-off for the Developer Certificate of Origin.

This PR gets merged before 14.1 so when we promote 14.1 it ends up on the docs site automatically.


Fix of zombie processes

This patch encompasses several fixes to extract replay data concurrently in a larger manner.
When trying to do this using the CPP-SC2 API zombie process arose.
There were also problems showing up with SC2 Headless clients that didn't respond anymore and the API just exited.
To recognize this problem better an exception has been introduced.
It is now recommended to call waitForPID after the
while (coordinator.Update());
loop has been finished.
As the waitForPID might wait forever it is advisory to introduce some kind of a watchdog facility with:
    std::cout << "Waiting for PID" << std::endl;

    std::thread watchDog = std::thread([&]() {
        std::this_thread::sleep_for(std::chrono::seconds(3));
        std::cout << "Terminating..." << std::endl;
        coordinator.terminate();
        std::cout << "Terminating done..." << std::endl;
    });

    coordinator.waitPID();
    watchDog.join();

Hi @procrash
Thank you for the contribution!
Sorry for the late answer, life doesn't give time to catch breath.
I can't take this pR as is because of different reasons. Most of them described here: https://github.com/cpp-sc2/cpp-sc2/issues/9
However, I'll slowly check and merge the parts Which I think will be good addition to the API. Below in more details.

Connection errors to SC2 client now throw an exception instead of asserting

Totally agree, asserts are not so informative. However, this commit has several style errors and the actual assert is still there. I'll fix the commit and merge it to the dev branch.

Fixed RTTI information

Sorry can't agree with you on this.
In C++ there is no difference between struct and class except public and 'private' keywords used by default for inheritance and members declaration.
In other words the following two code blocks are equivalent:
struct A: B
{
  int c;
}

class A: public B
{
 public:
  int c;
}

Both are correct even, although I personally prefer the former.
Thus, I think I'll drop excessive public keywords, but keep the original approach.

Added queue commands

Please, describe why do we need this change and which problem it solves?

Added interface to terminate running coordinator process

Seems that it will not work on Windows which is stopper for this commit.
Also, I need additional information regarding it. Ideally, how-to reproduce the issue.

Closed as not ready to merge.
we will try to reimplement and adopt parts of this PR in https://github.com/cpp-sc2/cpp-sc2/issues/102 and https://github.com/cpp-sc2/cpp-sc2/issues/103


[BUG] SQLAlchemy InvalidRequestError on relationships if one of the model is not yet imported

Describe the bug
The application crashes at start-up, when initializing data if :

a relationship is defined ...
... with a model not already imported at the time of execution.

backend_1        | INFO:__main__:Starting call to '__main__.init', this is the 2nd time calling it.
backend_1        | INFO:__main__:Service finished initializing
backend_1        | INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
backend_1        | INFO  [alembic.runtime.migration] Will assume transactional DDL.
backend_1        | INFO  [alembic.runtime.migration] Running upgrade  -> d4867f3a4c0a, First revision
backend_1        | INFO  [alembic.runtime.migration] Running upgrade d4867f3a4c0a -> ea9cad5d9292, Added SubItem models
backend_1        | INFO:__main__:Creating initial data
backend_1        | Traceback (most recent call last):
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/ext/declarative/clsregistry.py", line 294, in __call__
backend_1        |     x = eval(self.arg, globals(), self._dict)
backend_1        |   File "<string>", line 1, in <module>
backend_1        | NameError: name 'SubItem' is not defined
...
backend_1        | sqlalchemy.exc.InvalidRequestError: When initializing mapper mapped class Item->item, expression 'SubItem' failed to locate a name ("name 'SubItem' is not defined"). If this is a class name, consider adding this relationship() to the <class 'app.db_models.item.Item'> class after both dependent classes have been defined.
base-project_backend_1 exited with code 1

To Reproduce
create a new db_models/subitems.py (could be copied from item.py)
It is important that this new model has a relationship to another one, e.g Item
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy.orm import relationship

from app.db.base_class import Base

class SubItem(Base):
    id = Column(Integer, primary_key=True, index=True)
    title = Column(String, index=True)
    description = Column(String, index=True)
    item_id = Column(Integer, ForeignKey("item.id"))
    item = relationship("Item", back_populates="subitems")

Adapt db_models/item.py with the new relationship
...

class Item(Base):
    ...
    subitems = relationship("SubItem", back_populates="item")

Declare the new SubItem in db/base.py as per the documentation
# Import all the models, so that Base has them before being
# imported by Alembic
from app.db.base_class import Base  # noqa
from app.db_models.user import User  # noqa
from app.db_models.item import Item  # noqa
from app.db_models.subitem import SubItem  # noqa

Re-build and start the application. The full traceback follows
backend_1        | INFO:__main__:Creating initial data
backend_1        | Traceback (most recent call last):
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/ext/declarative/clsregistry.py", line 294, in __call__
backend_1        |     x = eval(self.arg, globals(), self._dict)
backend_1        |   File "<string>", line 1, in <module>
backend_1        | NameError: name 'SubItem' is not defined
backend_1        |
backend_1        | During handling of the above exception, another exception occurred:
backend_1        |
backend_1        | Traceback (most recent call last):
backend_1        |   File "/app/app/initial_data.py", line 21, in <module>
backend_1        |     main()
backend_1        |   File "/app/app/initial_data.py", line 16, in main
backend_1        |     init()
backend_1        |   File "/app/app/initial_data.py", line 11, in init
backend_1        |     init_db(db_session)
backend_1        |   File "/app/app/db/init_db.py", line 12, in init_db
backend_1        |     user = crud.user.get_by_email(db_session, email=config.FIRST_SUPERUSER)
backend_1        |   File "/app/app/crud/user.py", line 16, in get_by_email
backend_1        |     return db_session.query(User).filter(User.email == email).first()
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/scoping.py", line 162, in do
backend_1        |     return getattr(self.registry(), name)(*args, **kwargs)
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1543, in query
backend_1        |     return self._query_cls(entities, self, **kwargs)
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 168, in __init__
backend_1        |     self._set_entities(entities)
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 200, in _set_entities
backend_1        |     self._set_entity_selectables(self._entities)
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 231, in _set_entity_selectables
backend_1        |     ent.setup_entity(*d[entity])
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 4077, in setup_entity
backend_1        |     self._with_polymorphic = ext_info.with_polymorphic_mappers
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py", line 855, in __get__
backend_1        |     obj.__dict__[self.__name__] = result = self.fget(obj)
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/mapper.py", line 2135, in _with_polymorphic_mappers
backend_1        |     configure_mappers()
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/mapper.py", line 3229, in configure_mappers
backend_1        |     mapper._post_configure_properties()
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/mapper.py", line 1947, in _post_configure_properties
backend_1        |     prop.init()
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/interfaces.py", line 196, in init
backend_1        |     self.do_init()
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/relationships.py", line 1860, in do_init
backend_1        |     self._process_dependent_arguments()
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/relationships.py", line 1922, in _process_dependent_arguments
backend_1        |     self.target = self.entity.persist_selectable
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py", line 855, in __get__
backend_1        |     obj.__dict__[self.__name__] = result = self.fget(obj)
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/relationships.py", line 1827, in entity
backend_1        |     argument = self.argument()
backend_1        |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/ext/declarative/clsregistry.py", line 306, in __call__
backend_1        |     % (self.prop.parent, self.arg, n.args[0], self.cls)
backend_1        | sqlalchemy.exc.InvalidRequestError: When initializing mapper mapped class Item->item, expression 'SubItem' failed to locate a name ("name 'SubItem' is not defined"). If this is a class name, consider adding this relationship() to the <class 'app.db_models.item.Item'> class after both dependent classes have been defined.
base-project_backend_1 exited with code 1

Expected behavior
The solution should have started normally
Additionnal context
In (most of) real use-cases, the application would have defined some CRUD operation on the new defined model, and consequently imported it here and there.
Thus making it available at the time when creating  initial data.
Nevertheless, the error is so annoying and obscure (when it happens) that it deserves a safeguard (see my PR for a suggestion)

Thanks for the fix!

you are more than welcome ! It's great to help on fastapi and its siblings :honeybee: :honeybee: :honeybee:

:tada: :cake:

@ebreton @tiangolo How can I do this exact change here in my repository as I also want to introduce relationships between the db_models

@Haider8 If you want to do this "exact change" you can just look at the files changed in #29 . If you want help with something more specific, you need to ask a more specific question.

@dmontagu In my code, I have implemented 2 models named Venue and User like this:
class User(Base):
    id = Column(Integer, primary_key=True, index=True)
    username = Column(String(64), index=True, unique=True)
    email = Column(String(120), index=True, unique=True)
    state = Column(String(30))
    venues = relationship("Venue")
    role = Column(String(10), default="customer")

class Venue(Base):
    id = Column(Integer, primary_key=True, index=True)
    name = Column(String(64), index=True)
    owner_id = Column(Integer, ForeignKey("user.id"))

And, this is the error which I am getting:
sqlalchemy.exc.InvalidRequestError: When initializing mapper mapped class User->user, expression 'Venue' failed to locate a name ("name 'Venue' is not defined"). If this is a class name, consider adding this relationship() to the <class 'app.db_models.user.User'> class after both dependent classes have been defined.

@Haider8 were you able to solve your issue? I'm getting same error.

No, I couldn't solve this. I was expecting some kind of reply from the maintainers.

No, I couldn't solve this. I was expecting some kind of reply from the maintainers.

@Haider8 I might know what is happening, just import "Venue" in your user file, that way the application will be aware of the Venue class...later you can change that import and put it some where else, in a path that the application executes at startup

I think @sebas-500 is right here; for what it's worth this is more of a sqlalchemy question than a fastapi question (or anything specific to this project generator).

@Haider8 This is documented in the sqlalchemy docs at the very end of the "Configuring Relationships" section here: https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/relationships.html

I found this issue on google because I had a similar error.  I found a solution for my problem but even if it is not really related to the initial issue, I still want to write my solution here in case someone else had the same problem as me:
I just had the same error message as discussed above, but it wasn't a bug. I just miss-typed the string assigned to the back_populate argument. So just have a look at your back_populate argument referencing the column in your other table, it could be as simple as that :blush:

I run into this problem when I was dynamically creating and using material views in Postgres. The first call using them would fail but subsequent ones would work. I'm not sure how exactly to describe how I solved it but I'm going to try just in case someone else comes here.
The error was not the same but similar:
sqlalchemy.exc.InvalidRequestError: Entity namespace for "table_name" has no property "column"
The material view is created using a raw query and then reflected using the standard procedure something like:
from sqlalchemy import Table, MetaData, create_engine
metadata = Metadata()
engine = create_engine(db_uri)
table = Table(table_name, metadata, autoload=True, autoload_with=engine)

So the problem was the fist time the application loaded for some reason table was not reflecting properly. Since this call was made only failed when the fastapi process was restarted, I added the table reflection to before the first call is made:
@app.on_event("startup")
def reflect_mv():
    Table(table_name, metadata, autoload=True, autoload_with=engine)

This is so it's not being reflected for the first time in one of my api calls. This solved my problem.
Hope this is helpful for someone.

@sebas-500  thanks for the fix man. Your suggestion fixed the problem I was having with relationships.

I'm  still having this issue, and this is 100% copy from the SQLAlchemy 2 docs.
# parent.py
class Parent(Base):
    __tablename__ = "parents"

    id: Mapped[int] = mapped_column(primary_key=True)
    ...
    children: Mapped[List["Child"]] = relationship(back_populates="parent")

# child.py
# Also tried from app.models.parent import Parent in this file, no effect.
# Also tried not using Mapped, and just parent = relationship("Parent", back_populates="parent"), also not working
class Child(Base):
    __tablename__ = "childs"  # 'classname + s'  in my case

    id: Mapped[int] = mapped_column(primary_key=True)
    ...
    parent: Mapped["Parent"] = relationship(back_populates="parent")

I'm still having this issue...

@dejoma I can suppose that you  make like this imports in your code
parent.py
if TYPE_CHECKING:
    from child import Child

child.py
if TYPE_CHECKING:
    from parent import Parent

Seems that FORM "reads" schemas in "wrong" (alfabeticaly) order.
Try this for parent.py
from child import Child

I've tried find description this behavior in the documentation but found nothing. If someone will gave the link it will be very useful.


Fix AWS RI policies

Description
Change the datasource URI for policies that interact with Optima to retrieve AWS RI details
Issues Resolved
Contribution Check List

[x] All tests pass.
[x] New functionality includes testing.
[x] New functionality has been documented in the README if applicable
[x] New functionality has been documented in CHANGELOG.MD

          1 Warning

:warning:
Should this include readme changes

  Generated by :no_entry_sign: Danger


Not needed property - meta: undefined

export const request = createAction('SEARCHRESULTS_REQUEST_ITEMS');
export const success = createAction('SEARCHRESULTS_SUCCESS_RESPONSE_ITEMS');

...

dispatch(success(items));

Is really looks like not needed, please fix that.

Fixed in 218fb7964dcd3748a59d027780c3f1fc9c0aa231. Released in 0.5.0.


[1.11.2 - 5.3.13] Items disappear when manually inserted into oven

when opening the oven's front face (via shift right click) one is able to insert ANY item into the oven. but since the oven doesn't accept any item except food items, if I attempt to insert cobble, it is immediately voided from my hand, this is valid for ANY other non smeltable.

wrong mod...super embarassing


Write a C++ program to check vowel

Description
Write a C++ program to check vowel
Vowel check is a simple program to check whether a character is a vowel or not.
Input  : a
Output : Vowel

How to contribute

Save the solution in CheckVowel.cpp file
Add CheckVowel.cpp file in check-vowel folder

@harshraj8843 wanna to work with you , solving this issue.
Can you please elaborate where to write the solution of this problem.

!assign

Hey @mallikpramod
You can comment !assign on any good first issue you want to contribute to, to be auto-assigned
!assign

Can you please elaborate where to write the solution of this problem.

You can check How to contribute dropdown on each issue

Thanks for contributing 👍🏻


Fix errorlog watchdog timedout test

The watchdog just assumes it is ok to poweron where system can already be ON or Quiesce state.
Brute force poweroff and poweron

https://gerrit.openbmc-project.xyz/#/c/5949/


Video model with the possibility of automatic conversion to other formats and dimentions

This is based on a solution we implemented with django for a client. We integrated the code into django-filer because it seemed useful and we could use it in future projects.
Videos can be used without activating the extra functionalities - they will behave just like the normal File object.
We tried to keep a similar architecture to the other django-filer + thumbnailer models.
There's a new Video model based on file, additional settings for configuring the processing with ffmpeg, a couple of management commands to do the conversion work and cleanup unused files, a template tag that renders an html5 video tag using multiple formats to work in different browsers, including legacy flash support (we expect this could be a typical use). Also included are some tests and documentation for the new features.
We are also working on a plugin (HTML5 Video) for django-cms that will make use of these new functionalities (https://github.com/nmfm/cmsplugin-filer).

Epic guys, thanks!
Looking forward to review your pull request in detail :-)

@nmfm as it seems there is not much progress on this feature. Please re-open if its relevant again to the current develop branch.


Fixes logging settings override issue in Django

Current code changes default logger level and causes problems. Django template warnings start to appear in syslog.

This matches best practice documentation, so we'll merge this into the development branch to be added to the main branch at a later date.


doc: missing dns and metallb

Description
This PR fixes doc section of microk8s offline installation, adding metallb and dns.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[x] Bug fix

How Has This Been Tested?
N/A
Checklist
N/A

:tada: This PR is included in version 1.8.2-beta.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket: