Cannon Commons SOA Extraction

This change is

Reviewed 88 of 93 files at r1.
Review status: 52 of 55 files reviewed at latest revision, 17 unresolved discussions.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 42 at r1 (raw file):

    [self.dayFormatter setDateFormat:formatString];

    //Remember to switch this back to 2. Only reset for testing purposes.

Do it :)

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 62 at r1 (raw file):

-(void)dealloc {
    self.mealTable.delegate = nil;

We can remove these (and the whole method)

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 176 at r1 (raw file):

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

inline

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 189 at r1 (raw file):

    NSString *title = [NSString stringWithFormat:@" %@", [self.dayFormatter stringFromDate:self.datePicker.date]];

//    if (self.getMenusRequestFailed) {

Remove comments if not needed

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 12 at r1 (raw file):

#import "CannonCommonsRecipeTableViewController.h"

@interface CannonCommonsMenuTableViewController ()

Rename CannonCommonsMenuViewController

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 14 at r1 (raw file):

@interface CannonCommonsMenuTableViewController ()

@property (weak, nonatomic) IBOutlet UITableView *table;

Rename tableView

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 25 at r1 (raw file):

    [self.table applyBYUFormatting];

//    [BYUAnalytics actionPerformedInCurrentFeature:CANNONCOMMONS_STATION_SELECTED];

Remove completely

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 49 at r1 (raw file):

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    //Return the number of sections.

Delete

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 54 at r1 (raw file):

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    //Return the number of rows in the section.

Delete

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 59 at r1 (raw file):

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

inline

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 19 at r1 (raw file):

@interface CannonCommonsRecipeTableViewController ()

@property (weak, nonatomic) IBOutlet UITableView *table;

rename tableView

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 33 at r1 (raw file):

    [super viewDidLoad];

//    [BYUAnalytics actionPerformedInCurrentFeature:CANNONCOMMONS_RECIPE_VIEW];

delete

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 120 at r1 (raw file):

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    //Return the number of sections.

delete

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 134 at r1 (raw file):

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.

delete

byuSuite/Apps/CannonCommons/controller/legalViewController.m, line 24 at r1 (raw file):

}

-(void)didReceiveMemoryWarning {

Delete

byuSuite/Apps/CannonCommons/model/CannonCommonsClient.m, line 40 at r1 (raw file):

+(void)getMenuItemsWithQueryParams:(NSDictionary<NSString *,NSString *> *)params andCallBack:(void (^)(NSArray<CannonCommonsRecipe *> *, ByuError *))callback {
    NSMutableDictionary *queryParams = [NSMutableDictionary dictionaryWithDictionary:params];
    [queryParams addEntriesFromDictionary:@{@"viewname": MENU_ITEMS}];

If you're only adding one entry, I think there's a method for that

byuSuite/Apps/CannonCommons/model/CannonCommonsClient.m, line 53 at r1 (raw file):

            //The nutrition array passed back is an array of arrays. Extra the data from each array into one single array.
            NSArray *nutritionArrays = [data nullSafeObjectForKey:@"nutrition"];
            NSMutableArray *nutrition = [NSMutableArray array];

We might be able to use a transform to do this

Comments from Reviewable

Review status: 52 of 55 files reviewed at latest revision, 18 unresolved discussions.

a discussion (no related file):
Move icons into view folder

Comments from Reviewable

Review status: 52 of 55 files reviewed at latest revision, 19 unresolved discussions.

byuSuite/Apps/CannonCommons/model/CannonCommonsClient.h, line 16 at r1 (raw file):

@interface CannonCommonsClient : ByuClient

+(void)getMenusWithServeDate:(NSString *)date andCallBack:(void (^) (NSArray<CannonCommonsMenu *> *menus, ByuError *error))callback;

I noticed that you're putting spaces after the (^). I think Xcode autocompletes without them (see the .m file of this client). For that reason, I think let's remove the extra space after (^). That might be difficult to add to the formatter, but I would give it a try :)

Comments from Reviewable

Review status: 52 of 55 files reviewed at latest revision, 29 unresolved discussions.

a discussion (no related file):
legalViewController needs to be renamed to be capitalized. It kind of sucks to rename casing issues. Ask Corey, he just did it in YTime

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 15 at r1 (raw file):

#import "ViewUtils.h"

#define D_WEEK 604800

Figure out what this is (I think it's millis in one week) and rename the variable accordingly

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 190 at r1 (raw file):

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";

inline

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 192 at r1 (raw file):

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    NSAssert(cell, @"No cell with matching CellIdentifer found in storyboard");

no need for this. delete

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 195 at r1 (raw file):

    CannonCommonsRecipe *recipe;
    NSMutableArray *menu = [self.fullMenu objectAtIndex:indexPath.section];

Replace objectAtIndex in all files where you can find it (in this feature)

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 202 at r1 (raw file):

}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

If it's empty, let's remove it

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 228 at r1 (raw file):

    NSDictionary<NSString *, NSString *> *queryParams = @{@"mealid": self.mealID, @"mealname": self.selectedMeal, @"servedate": [filterDateFormatter stringFromDate:self.selectedDate]};
    [CannonCommonsClient getMenuItemsWithQueryParams:queryParams andCallBack:^(NSArray<CannonCommonsRecipe *> *recipes, ByuError *error) {

Instead of passing in queryParams, just change the client function to be getMenuItemsWithMealId:mealName:serveDate:andCallback:

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 259 at r1 (raw file):

                    [self.saladBarItems addObject:recipe];
                } else {
                    [self.expoItems addObject:recipe];

Hahahahaha- we put them in the expo by default? Any idea why?

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 284 at r1 (raw file):

            [self.spinner stopAnimating];
            //    self.cannonView.hidden = NO;

remove

byuSuite/Apps/CannonCommons/model/CannonCommonsClient.m, line 52 at r1 (raw file):

            //The nutrition array passed back is an array of arrays. Extra the data from each array into one single array.
            NSArray *nutritionArrays = [data nullSafeObjectForKey:@"nutrition"];

Don't have to use nullSafe here. Normally we only do that in the model objects (so that we never save an NSNull accidentally)

Comments from Reviewable

Review status: 52 of 55 files reviewed at latest revision, 31 unresolved discussions.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 178 at r1 (raw file):

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    NSAssert(cell, @"No cells with matching CellIdentifier loaded from your storyboard");

remove

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 179 at r1 (raw file):

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    NSAssert(cell, @"No cells with matching CellIdentifier loaded from your storyboard");
    [cell applyBYUFormattingWithStyle:UITableViewCellStyleDefault andTableViewStyle:tableView.style];

probably don't need this

Comments from Reviewable

Review status: 52 of 55 files reviewed at latest revision, 32 unresolved discussions.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 180 at r1 (raw file):

    NSAssert(cell, @"No cells with matching CellIdentifier loaded from your storyboard");
    [cell applyBYUFormattingWithStyle:UITableViewCellStyleDefault andTableViewStyle:tableView.style];
    CannonCommonsMenu *meal = [self.meals objectAtIndex:indexPath.row];

use []

Comments from Reviewable

Review status: 51 of 55 files reviewed at latest revision, 33 unresolved discussions.

a discussion (no related file):
Complete the full refactor. I will finish the pull request then. The SOA stuff looks good :)

Comments from Reviewable

Review status: 16 of 55 files reviewed at latest revision, 33 unresolved discussions.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
Move icons into view folder

Done. Nathan suggested keeping them in the image folder in view. What do you think?

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
legalViewController needs to be renamed to be capitalized. It kind of sucks to rename casing issues. Ask Corey, he just did it in YTime

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 15 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Figure out what this is (I think it's millis in one week) and rename the variable accordingly

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 42 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Do it :)

I will when I'm done testing.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 62 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
We can remove these (and the whole method)

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 176 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
inline

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 178 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
remove

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 179 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
probably don't need this

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 180 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
use []

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 189 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Remove comments if not needed

Okay so I meant to ask you about this. Remember when I asked about the 502 status code? Well this is the only reason they were filtering it out. If the status code was 502 it would not display an error message then and pop back, but would set this boolean to true, then keep running as if there were no error until this method where they display this error message. I couldn't see any reason to keep this logic so I decided to display the error regardless. I didn't think this 502 logic added anything.

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 190 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
inline

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 192 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
no need for this. delete

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 195 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Replace objectAtIndex in all files where you can find it (in this feature)

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 202 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
If it's empty, let's remove it

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 228 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Instead of passing in queryParams, just change the client function to be getMenuItemsWithMealId:mealName:serveDate:andCallback:

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 259 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Hahahahaha- we put them in the expo by default? Any idea why?

I'm not sure. My best guess would be that every other category is handled so it's safe to assume it would be in expo. It would make sense that a recipe wouldn't come back that isn't assigned to a category.

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 284 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
remove

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 19 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
rename tableView

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 33 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
delete

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 120 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
delete

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 134 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
delete

Done.

byuSuite/Apps/CannonCommons/model/CannonCommonsClient.h, line 16 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
I noticed that you're putting spaces after the (^). I think Xcode autocompletes without them (see the .m file of this client). For that reason, I think let's remove the extra space after (^). That might be difficult to add to the formatter, but I would give it a try :)

Done.

byuSuite/Apps/CannonCommons/model/CannonCommonsClient.m, line 40 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
If you're only adding one entry, I think there's a method for that

Not necessary since I'm now passing in each item individually.

byuSuite/Apps/CannonCommons/model/CannonCommonsClient.m, line 52 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Don't have to use nullSafe here. Normally we only do that in the model objects (so that we never save an NSNull accidentally)

Done.

byuSuite/Apps/CannonCommons/model/CannonCommonsClient.m, line 53 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
We might be able to use a transform to do this

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 12 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Rename CannonCommonsMenuViewController

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 14 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Rename tableView

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 25 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Remove completely

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 49 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Delete

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 54 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Delete

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsMenuTableViewController.m, line 59 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
inline

Done.

byuSuite/Apps/CannonCommons/controller/legalViewController.m, line 24 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Delete

Done.

Comments from Reviewable

Review status: 16 of 55 files reviewed at latest revision, 31 unresolved discussions, some commit checks failed.

a discussion (no related file):
Previously, ecbrady (Erik Brady) wrote…
Done. Nathan suggested keeping them in the image folder in view. What do you think?

Fine by me :)

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 42 at r1 (raw file):
Previously, ecbrady (Erik Brady) wrote…
I will when I'm done testing.

Let's not mark this as done. Just leave it in here until it's done

Comments from Reviewable

Reviewed 35 of 125 files at r1, 71 of 71 files at r2.
Review status: all files reviewed at latest revision, 8 unresolved discussions, some commit checks failed.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 189 at r1 (raw file):
Previously, ecbrady (Erik Brady) wrote…
Okay so I meant to ask you about this. Remember when I asked about the 502 status code? Well this is the only reason they were filtering it out. If the status code was 502 it would not display an error message then and pop back, but would set this boolean to true, then keep running as if there were no error until this method where they display this error message. I couldn't see any reason to keep this logic so I decided to display the error regardless. I didn't think this 502 logic added anything.

Wonderful. Remove it then :)

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 70 at r2 (raw file):

        vc.mealID = selectedMenu.mealID;
    }
    if ([segue.identifier isEqualToString:@"toLegalView"]) {

use else if

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 259 at r1 (raw file):
Previously, ecbrady (Erik Brady) wrote…
I'm not sure. My best guess would be that every other category is handled so it's safe to assume it would be in expo. It would make sense that a recipe wouldn't come back that isn't assigned to a category.

If I remember correctly, you found quite a few that this happened with. If so, let's put a comment here

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 69 at r2 (raw file):

    if (self.mealID == nil) {
        self.mealID = @"2975";

This should be a #define probably. What... What is this doing?

byuSuite/Apps/CannonCommons/controller/CannonCommonsOverviewViewController.m, line 96 at r2 (raw file):

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    CannonCommonsMenuViewController *vc = segue.destinationViewController;
    if ([segue.identifier isEqualToString:@"Grainery"]) {

This seems like it could be done with a dictionary (no if/else)

byuSuite/byuSuite.xcodeproj/project.pbxproj, line 2310 at r2 (raw file):

				031BC9411E044A1800A455BF /* CannonCommonsDatePickerViewController.h */,
				031BC9421E044A1800A455BF /* CannonCommonsDatePickerViewController.m */,
				03BFF6601E0B091700A260F9 /* LegalViewController.h */,

Let's rename this to be like the other ones "CannonCommonsLegalViewController.h"

Comments from Reviewable

Review status: all files reviewed at latest revision, 13 unresolved discussions.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
Complete the full refactor. I will finish the pull request then. The SOA stuff looks good :)

Okay it's ready for the full pull request.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 79 at r4 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Does this use a delegate? I don't think it needs to if the LegalViewController does the default saving itself....

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsFullMenuViewController.h, line 14 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Do you only use the date for the title? If so, we can do this without passing it in :)

Thanks for pointing this out. It's actually redundant to set it since I set it in the TabBarVC anyways. The logic here to set it in the navigation item probably isn't working anyways now that I have the Tab bar.

byuSuite/Apps/CannonCommons/controller/CannonCommonsFullMenuViewController.m, line 28 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Why EEEE? Oh. I think I see what you're doing. Why not just do [titleDateFormatter setDateFormat:"YYYYdMMM"];?

See above comment.

byuSuite/Apps/CannonCommons/controller/CannonCommonsFullMenuViewController.m, line 51 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
If you don't specify the height, does it still look good?

It looks the same to me :)

byuSuite/Apps/CannonCommons/controller/CannonCommonsFullMenuViewController.m, line 72 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Instead of doing this here, let's do it in the viewWillAppear

How would I do that? I don't have the indexPath that way.

byuSuite/Apps/CannonCommons/controller/CannonCommonsStationsViewController.m, line 45 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
See comment on FullMenuVC

Which one?

byuSuite/Apps/CannonCommons/controller/CannonCommonsStationsViewController.m, line 51 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Can we just do this in the storyboard?

Yes and I did it in datePickerVC as well.

byuSuite/Apps/CannonCommons/controller/CannonCommonsStationsViewController.m, line 60 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Are these only used for setting the title? If so, just do vc.title = GRANARY;

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsStationsViewController.m, line 103 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Move this outside of the if statement. Then you don't have to put it here and in the else

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsStationsViewController.m, line 106 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Put a comment about what you're doing here

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsStationsViewController.m, line 117 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
You should be able to extract this into a method. Something like setupButton:(UIButton *)button withCategory:(NSString *)category

Done.

byuSuite/Apps/CannonCommons/view/CannonCommons.storyboard, line 1 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Double check that you've added constraints to every single piece of this feature

Done.

Comments from Reviewable

Reviewed 6 of 127 files at r1, 4 of 73 files at r2, 2 of 7 files at r4, 9 of 9 files at r5.
Review status: all files reviewed at latest revision, 3 unresolved discussions.

byuSuite/Apps/CannonCommons/controller/CannonCommonsFullMenuViewController.m, line 72 at r3 (raw file):
Previously, ecbrady (Erik Brady) wrote…
How would I do that? I don't have the indexPath that way.

[self.tableView indexPathForSelectedRow]. We do it in a ton of other features. If you have questions, let me know

byuSuite/Apps/CannonCommons/controller/CannonCommonsLegalViewController.m, line 28 at r5 (raw file):

-(IBAction)continueButtonTapped:(id)sender {
    [self dismissViewControllerAnimated:YES completion:nil];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

I would put this stuff above the dismissViewController. Just in case dismissing the view controller causes the code to stop running

byuSuite/Apps/CannonCommons/controller/CannonCommonsStationsViewController.m, line 45 at r3 (raw file):
Previously, ecbrady (Erik Brady) wrote…
Which one?

I meant the setting of the title. Do we still need to do it here? Or should we do it when we are preparing to segue in?

Comments from Reviewable

Review status: all files reviewed at latest revision, 3 unresolved discussions.

byuSuite/Apps/CannonCommons/controller/CannonCommonsFullMenuViewController.m, line 72 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
[self.tableView indexPathForSelectedRow]. We do it in a ton of other features. If you have questions, let me know

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsLegalViewController.m, line 28 at r5 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
I would put this stuff above the dismissViewController. Just in case dismissing the view controller causes the code to stop running

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsStationsViewController.m, line 45 at r3 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
I meant the setting of the title. Do we still need to do it here? Or should we do it when we are preparing to segue in?

This is where it's set for the tabBarController. I could probably do that from the segue but we would still need to pass in selectedDate

Comments from Reviewable

Reviewed 1 of 127 files at r1, 1 of 73 files at r2, 1 of 7 files at r4, 2 of 2 files at r6.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

byuSuite/Apps/CannonCommons/controller/CannonCommonsFullMenuViewController.m, line 27 at r6 (raw file):

}

-(void)viewWillAppear:(BOOL)animated {

Make sure to call the super first [super viewWilAppear:animated];

Comments from Reviewable

Reviewed 1 of 1 files at r7.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Review status: all files reviewed at latest revision, 7 unresolved discussions, all commit checks successful.

a discussion (no related file):
The size of the text for the meals is larger than normal

a discussion (no related file):
I got an error on Thursday, Dec 22 for lunch. Seems like line 56 of the client breaks if there aren't any menus

a discussion (no related file):
Test a bunch. Try everything you can

a discussion (no related file):
Breakfast friday shows the Grainery as open... but it just shows the cannon commons being closed all day... What's up with that? Also, it's clickable and shows weird looking nutrition stuff...

a discussion (no related file):
Use hidingEmptyCells on the fullMenu (and any other tableviews)

a discussion (no related file):
In the nutrition view, the name of the item is appear both as the header and the first section of the table. I don't think that's desirable.

a discussion (no related file):
The nutrition tableview is sectioned in groups. Do you like it better that way?

Comments from Reviewable

Reviewed 1 of 1 files at r8.
Review status: all files reviewed at latest revision, 7 unresolved discussions.

Comments from Reviewable

Review status: 30 of 36 files reviewed at latest revision, 7 unresolved discussions, all commit checks successful.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
The size of the text for the meals is larger than normal

Done.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
Use hidingEmptyCells on the fullMenu (and any other tableviews)

Done.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
In the nutrition view, the name of the item is appear both as the header and the first section of the table. I don't think that's desirable.

Removed.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
The nutrition tableview is sectioned in groups. Do you like it better that way?

No I don't. I was trying to figure out why it looked so weird and this is why. Thanks for catching that.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
I got an error on Thursday, Dec 22 for lunch. Seems like line 56 of the client breaks if there aren't any menus

Fixed

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
Breakfast friday shows the Grainery as open... but it just shows the cannon commons being closed all day... What's up with that? Also, it's clickable and shows weird looking nutrition stuff...

Like I mentioned to you this is because at rare instances, they send data back to the request. Would you like me to see if I can filter this?

Comments from Reviewable

Review status: 30 of 36 files reviewed at latest revision, 3 unresolved discussions.

a discussion (no related file):
The tab bar looks darker than other ones... I think I may know why it is. I think it's because there isn't anything behind it. Talk with me about this one when I'm back. I'll send you some screenshots in slack

Comments from Reviewable

Reviewed 4 of 127 files at r1, 1 of 73 files at r2, 6 of 6 files at r9.
Review status: all files reviewed at latest revision, 3 unresolved discussions.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 152 at r9 (raw file):

    if (self.meals.count == 0) {
        return [NSString stringWithFormat:@"%@ - No meals found", title];

Not a huge deal, but this always shows "No meals found" while it's loading. Could we change the if statement to be if (self.meals && self.meals.count == 0)

Comments from Reviewable

Review status: 34 of 36 files reviewed at latest revision, 3 unresolved discussions.

byuSuite/Apps/CannonCommons/controller/CannonCommonsDatePickerViewController.m, line 152 at r9 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Not a huge deal, but this always shows "No meals found" while it's loading. Could we change the if statement to be if (self.meals && self.meals.count == 0)

Done.

Comments from Reviewable

Reviewed 2 of 127 files at r1, 2 of 2 files at r10.
Review status: all files reviewed at latest revision, 7 unresolved discussions.

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 72 at r10 (raw file):

    if ([cellData[@"title"] isEqualToString:ALLERGY_TITLE]) {
        cell = [tableView dequeueReusableCellWithIdentifier:@"AllergenCell"];

Would it be worth putting the cell identifiers into the recipeData stuff?

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 77 at r10 (raw file):

    } else if ([cellData[@"title"] isEqualToString:NUTRITION_TITLE]) {
        cell = [tableView dequeueReusableCellWithIdentifier:@"NutritionInfoCell"];
        //TODO: Ask Eric about this row. Show screen shots.

Oh yeah. And ask Eric about this row. Show him screenshots.  :p

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 129 at r10 (raw file):

    }
    if (![totalFat isEqualToString:@"-1g"]) {
        [nutritionInfo setObject:totalFat forKey:@"Total Fat:"];

Instead of setObject:forKey: you can just use nutritionInfo[@"Total Fat:"] = totalFat;

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 130 at r10 (raw file):

    if (![totalFat isEqualToString:@"-1g"]) {
        [nutritionInfo setObject:totalFat forKey:@"Total Fat:"];
        [nutritionInfoKeys addObject:@"Total Fat:"];

I don't know if you need to store the keys separately. Why don't you just grab the key set at the end? Do you need to keep the order?

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 132 at r10 (raw file):

        [nutritionInfoKeys addObject:@"Total Fat:"];
    }
    if (![saturatedFat isEqualToString:@"-1g"]) {

I think we can extract this whole if statement into a function so that all of these chunks just become one liners. Talk to me if you have questions

Comments from Reviewable

Review status: 34 of 36 files reviewed at latest revision, 7 unresolved discussions.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
The tab bar looks darker than other ones... I think I may know why it is. I think it's because there isn't anything behind it. Talk with me about this one when I'm back. I'll send you some screenshots in slack

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 72 at r10 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Would it be worth putting the cell identifiers into the recipeData stuff?

I think so!

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 77 at r10 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Oh yeah. And ask Eric about this row. Show him screenshots.  :p

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 129 at r10 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Instead of setObject:forKey: you can just use nutritionInfo[@"Total Fat:"] = totalFat;

Done.

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 130 at r10 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
I don't know if you need to store the keys separately. Why don't you just grab the key set at the end? Do you need to keep the order?

Because the original code stored them in two separate arrays I made the assumption that they wanted these stored in a specific order. What do you think?

byuSuite/Apps/CannonCommons/controller/CannonCommonsRecipeTableViewController.m, line 132 at r10 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
I think we can extract this whole if statement into a function so that all of these chunks just become one liners. Talk to me if you have questions

Done.

Comments from Reviewable

Reviewed 2 of 127 files at r1, 2 of 2 files at r11.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable


Small fixes recognized when walking through

I did a live hacking demo with this guide today and stumbled upon minor things that I fixed right away in this PR

/assign @akeller

Since I haven't had a chance to run these examples yet myself, I have to ask @menski to review this.

Thanks Bernd


feat(headless): refactored field suggestion options

https://coveord.atlassian.net/browse/KIT-2101
The purpose of this Jira was to remove deprecated options, however, I noticed there was also issues with the documentation for field suggestions; field suggestions are tightly tied with facets, and their options are used to register a facet, which is important to know for users if they want to understand the behaviour of field suggestions (especially when field suggestions and a facet share the same facet id).
In this PR, I tested one possible solution to this problem in my opinion:

Adding documentation to field suggestions themselves that clarify that they actually initialize a facet.
Moving all field suggestions options under "facet" sub-options, since they are all used to register a facet. I think this really clarifies the purpose of all options nested under it and emphasizes the fact that field suggestions rely on facets. If we have to add options to field suggestions, this will also clarify that which options aren't used to register a facet.

Other alternatives would be:

Alternative A: Not changing the options hierarchy at all, and only doing documentation.
Alternative B: Moving field (and maybe facetSearch) out of the facet sub-options to make the hierarchy less deep and the options prettier. This would however force us to re-declare all facet options in a new interface that is specific to field suggestions, just like it was prior to this change, since we (presumably) can't use Omit with the doc parser.

Deprecations
Changed

Removed the FieldSuggestionsFacetSearchOptions interface.

FacetSearchOptions is used instead.

Removed the CategoryFieldSuggestionsFacetSearchOptions interface.

CategoryFacetSearchOptions is used instead.

Refactored FieldSuggestionsOptions, nesting all its options under facet: FacetOptions.

buildFieldSuggestions(engine, { options: { field: 'filetype' } }); would become buildFieldSuggestions(engine, { options: { facet: { field: 'filetype' } } });

Refactored CategoryFieldSuggestionsOptions, nesting all its options under facet: FacetOptions.

buildCategoryFieldSuggestions(engine, { options: { field: 'category' } }); would become buildCategoryFieldSuggestions(engine, { options: { facet: { field: 'category' } } });

Removed the delimitingCharacter option from FieldSuggestions

It didn't do anything.

Removed the delimitingCharacter option from CategoryFieldSuggestions

It didn't do anything.

Just to make sure I understand correctly:
You were initially planning on removing delimitingCharacter, injectionDepth, hasBreadcrumbs and facetSearch, but it turns out the only one you'll remove is delimitingCharacter. The others are kept, but moved, like all other facet options, under facet: FacetOptions?
Am I understanding this correctly?

Just to make sure I understand correctly: You were initially planning on removing delimitingCharacter, injectionDepth, hasBreadcrumbs and facetSearch, but it turns out the only one you'll remove is delimitingCharacter. The others are kept, but moved, like all other facet options, in an actual facet: FacetOptions?
Am I understanding this correctly? Snapshot from my headless v2 PR:

Yes exactly. The reason I was gonna remove those options initially was because I expected at some point that we'd separate facets from field suggestions, those options would become useless. However, we had discussions and field suggestions are gonna keep depending on facets.


syntastic closes an open location list on Write

Hi,
I just noticed, that synastic closes an already open location list. It would be nice, if when no error is found, syntastic would reopen the last open location list (e.g. by using :lolder or something a like).
Thanks.

@lcd047
Has the loclist_count branch been merged / used? (it does not exist anymore)
Is it https://github.com/scrooloose/syntastic/commits/loclist_state?

@blueyed: Yes, it's controlled by g:syntastic_reuse_loc_lists.  But it's off by default (and undocumented) because of #1127.  I never got to the bottom of that problem either.

Note that this issue breaks a vim-go feature:  https://github.com/fatih/vim-go/issues/814

@lorin Please see #1650 instead.


Fix needless_borrow clippy warnings

There were lots of easily fixable needless_borrow which this PR fixes.

The remaining warnings come from the interchange macro or are about Documentation, they should be fixed separately

The interchange warnings should be fixed by https://github.com/trussed-dev/interchange/pull/3

lgtm! no impact despite better code quality, merging...


Thanks and recommended features

Thank you so much for bringing this game to LAN. Thank you! Thank you!
All that is left is to make a way to SAVE multiplayer games. Could you make that possible?

 I hope you enjoy the game.
Regarding your request, however, I'm afraid I can't help you. As far as I know the multiplayer save feature is not implemented in the game client yet. On another note, I am purposefully keeping the LAN server functionality to a minimum. I believe that features like ladder, rankings and saving should only be available on the official server.


Fix additional touches preventing tracking stop, causing jump at next touch down

Considering ev.targetTouches[0] before ev.changedTouches[0] in normalizeEvent() meant that having multiple target touches where the first touch wasn't the same as the one stored by Impetus as the "pointer" would prevent the condition in onUp() from triggering, leaving the internal state in "started" mode (stopTracking() not called) event after all touches had been released. In essence, onUp() was called twice (once for each released touch) but in both cases it tested ev.targetTouches[0] which didn't match the stored "pointer" touch, which was at index 1, causing stopTracking() never to be called.
Unless I'm missing something, as the various event handlers already filter out "unwanted" touches (by storing the first touch's id and checking against that), event normalization can safely consider changed touches only (the touch concerned by the current event), which fixes at least this edge case and makes tracking more reliable when multiple touches are present.
Before (video)
After (video)

+1 for this PR: applying it on our project allowed us to fix a bug. We were exactly in the edge case described by @fortinmike.

+1 for this one.

Closing this because I created a new pull request which contains only the relevant changes.


Is rc3 compatible with react 0.14.x?

For questions and support, please visit our channel on Reactiflux or Stack Overflow. The issue tracker is exclusively for bug reports and feature requests.


NacosDiscoveryProperties required a bean of type 'com.alibaba.cloud.nacos.NacosServiceManager'

In spring-cloud-starter-alibaba-nacos-discovery-2.1.4.release, an error is reported when spring.cloud.nacos.discovery.enabled=false is configured, because NacosDiscoveryProperties is injected with NacosServiceManager, and NacosServiceManager is initialized in NacosServiceAutoConfiguration, which is When false, NacosServiceAutoConfiguration is not loaded.

@wu-xin  大佬，怎么解决的？


How to use hot reload?

Question
How to apply Hot Reload?
https://docs.nestjs.com/recipes/hot-reload
I don't know how to configure

Do similar config like that.
Nynthe way, install webpack by yourself.
https://nestia.io/docs/setup/#webpack


Create a annotation that helps users deal with log4j issues

From<EMAIL_ADDRESS>on December 05, 2008 12:04:16
We could create a special annotation such as @MockLog4j that automatically
suppresses all static and instance fields that uses log4j and injects a
nice mock to them.
Another solution would be to add a mocking policy annotation, e.g.
@MockPolicy where users can pass in a Log4jMockPolicy class which tells
PowerMock to mock the log4j library. It would then be possible to create
custom mock policies as well and they could also be nested.
Original issue: http://code.google.com/p/powermock/issues/detail?id=82

From<EMAIL_ADDRESS>on December 08, 2008 07:58:36
Added basic support for MockPolicies
Status: Fixed


2Captcha fails

Hey,
I added my API Key to the captcha_config.py, it seemed to work fine but than it didn't fill out the captcha.
The console says: https://i.imgur.com/ttjAElI.png
Can you help me pls? Sorry I've never used 2captcha before.

It tells you in the error code. You have to add some $ to your 2captcha account


epic: Support SDKs in different programming languages

[ ] Rust
[ ] Node
[ ] Golang
[x] Python https://pypi.org/project/pgvecto-rs/

These are the most popular language SDKs in pgvector.

Would integration with ORMs be within scope for this? We're working on moving to Prisma for Node.js, but the lack of support for the vector type makes it hard to work with (related).

@mertalev We're interested but lacks of knowledge with that so far. The error message seems related to rust but I didn't see any rust file in prisma. Is there any development guide we can look at for custom type?

Probably the most helpful resource is this PR that adds PostGIS types. It's massive, though, so I'm not sure how big an undertaking this would be.


'NoneType' object has no attribute 'copy'

C:\Users\zhaoxianghui\AppData\Local\Programs\Python\Python38\python.exe D:\project\python\tensor2tensor-master\tensor2tensor\bin\t2t-trainer --registry_help
Traceback (most recent call last):
File "D:\project\python\tensor2tensor-master\tensor2tensor\bin\t2t-trainer", line 23, in
from tensor2tensor.bin import t2t_trainer
File "D:\project\python\tensor2tensor-master\tensor2tensor\bin\t2t_trainer.py", line 24, in
from tensor2tensor import models  # pylint: disable=unused-import
File "D:\project\python\tensor2tensor-master\tensor2tensor\models_init_.py", line 51, in
from tensor2tensor.models.research import rl
File "D:\project\python\tensor2tensor-master\tensor2tensor\models\research\rl.py", line 27, in
from tensor2tensor.envs import tic_tac_toe_env
File "D:\project\python\tensor2tensor-master\tensor2tensor\envs_init_.py", line 23, in
from tensor2tensor.envs import tic_tac_toe_env
File "D:\project\python\tensor2tensor-master\tensor2tensor\envs\tic_tac_toe_env.py", line 244, in
register()
File "D:\project\python\tensor2tensor-master\tensor2tensor\envs\tic_tac_toe_env.py", line 239, in register
unused_tictactoe_id, unused_tictactoe_env = gym_utils.register_gym_env(
File "D:\project\python\tensor2tensor-master\tensor2tensor\rl\gym_utils.py", line 360, in register_gym_env
return env_name, gym.make(env_name)
File "C:\Users\zhaoxianghui\AppData\Local\Programs\Python\Python38\lib\site-packages\gym\envs\registration.py", line 572, in make
kwargs = spec.kwargs.copy()
AttributeError: 'NoneType' object has no attribute 'copy'

@TimOgden
Change kwargs=None optional parameter to **kwargs   this works to me


[Function expose] : Some function in Codeunit and Report, Page, Table

Hello,
I am developing my extension package, but receiving errors that many methods can not be used in the development of extensions.
When I used target internal in app.json it worked.
But if I use it internally it will not work in D365, so please look into this and make it possible to get those features available,

Type
ID
Method

Report
25
SetAccSchedName

SetColumnLayoutName

SetFilters

Report
29
SetOptions

SetUpdateExistingWorksheet

Report
35
TransferDocEntries

TransferFilters

Report
292
SetSalesHeader

Report
6529
TransferDocEntries

TransferRecordBuffer

TransferFilters

Report
6699
SetSalesHeader

ShowDocument

Codeunit
1001
PostInvoiceContractLine

Codeunit
5632
GenJnlPostLine

Codeunit
6529
FindTrackingRecords

Codeunit
12101
CalculateWithholdingTax

Page
47
ShowPrices

Table
49
FillInvPostingBufferPrimaryKey

Thanks & Regards
Gianfranco

hi, are there any news?

Thank you for your request and sorry for delayed reply. We are now looking at functions you suggested to be external. Probably all of them or almost all of them will be external in the next release.
I will write about our decision here soon.

Thank you, requested functions will be external in the next update.

Great news. Thanks for the support. Good job.

hi,
the table functions listed below are "internal" and not work in Dynamics 365 Online; would it be possible to set them to "external"?  They are useful for reports.
Table 36.FindVATExemption
Table 291.GetTDDAdr
Table 23.GetTDDAdr
Table 5050. GetTDDAdr
Table 79. GetTDDAdr
Table 291. GetTDDAdr
Thanks for support
Roberto Stefanetti

Hello Roberto, thank you for the request, but can you, please, create a new issue (since we automatically track the status of Github issues in our internal system)


Sync fork with v3.2.2 Release

What changes were proposed in this pull request?
Do this to get our forked master branch sync'd with the v3.2.2 release of Spark.

This LGTM.  But if I click "merge" it likely makes a merge commit.  And that's probably not what we're looking for.  I don't think we have any branch protections or anything, so I think you're good to just push to master directly.


missing port from Portugal

Thanks for your report! Since port is in the "fortified wines" section of WSET, I guess it'd be good to create a section for both sparkling and fortified to make this distinction.

I understand now. Also it may worth to put the label information for wines, such as grand cru etc. If you need any help, I would love to contribute.


Using DNS over HTTPS (DoH) is Broken

Using DNS over HTTPS (DoH) is Broken
Tested via https://<IP_ADDRESS>/help
Version 81.0.4044.138 (Official Build) (64-bit) OSX version

The cloudflare tool itself is broken. I have been using a DoT client and the website still shows I am not secure. I have tried multiple DoT and DoH configurations and the only one where cloudflare website showed it was working is when I used cloudflare's own app on iOS. There is another url https://cloudflare-dns.com/help that I found on its forums but this is still the same and broken. Do not rely on it. I think the only effective way would be to monitor DoH port and traffic and inspect packets.

Closing as invalid unless new evidence suggests otherwise.


Incorrect struct in documentation for _fstat32 function

The documentation web page for the _fstat32 function shows a struct that has two underscores (__stat32) but there is no such struct in sys/types.h or sys/stat.h or anyother header they include.
int _fstat32(
int fd,
struct __stat32 *buffer
);
Also, in sys/stat.h, the definition for the _fstat32 function shows a struct with a single underscore (_stat32).
Consider changing the documentation web page for function _fstat32 to show:
struct _stat32 *buffer

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

ID: d8aa5d5d-582f-cd0f-7b8a-3f2dead80edd
Version Independent ID: 3d7b89df-1937-d112-7479-c73fe7e8c21d
Content: _fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32
Content Source: docs/c-runtime-library/reference/fstat-fstat32-fstat64-fstati64-fstat32i64-fstat64i32.md
Product: visual-cpp
Technology: cpp-ucrt
GitHub Login: @TylerMSFT
Microsoft Alias: twhitney

Fixed. Also fixed the extra leading underscore on __stat64
This will be live tomorrow afternoon (Thurs)
Thanks for taking the time to point this out.


fix pip package name

fix install command on docs, droneapi-python is not the correct pip package name

thanks!


V0.8.43

Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

how come you squashed all the commits, now cannot see which commit does what in history


Executing with Resource Manager fails on sudo yum install -y xmlstarlet

The setup.sh script fails with:
sudo yum install -y xmlstarlet
module.jenkins-master.oci_core_instance.TFJenkinsMaster (remote-exec): Error: Nothing to do

Executing manually on a separate Oracle Linux 7.9 instance shows:
sudo yum install -y xmlstarlet
Loaded plugins: langpacks, ulninfo
No package xmlstarlet available.
Error: Nothing to do

To make it work, I had to change:
from:
sudo yum install -y xmlstarlet
to:
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sleep 10
sudo yum install -y xmlstarlet

@frobertpixto I am not able to reproduce the issue. Could you please try it again with the latest stack?

ok, I don't work on that anymore. You can close the issue. Thanks.

Thanks for your response. Closing the issue.


CRLF or LF?

We need to choose

I already chose. The .gitattributes file will make sure that whenever you try to commit any file extension that is known to me to be useful (with the exception of .sql files) it will convert to LF.
https://github.com/Mattias1/photones/blob/master/.gitattributes
If you like to, you can feel free to setup git in a way that pretends everything is CRLF. Just leave the .gitattributes file in place and everything in the repo will be LF.

Ok that's great. I always get soooo confused when it comes to line endings in git. I've sorted it out completely like ten times, but I always forget and get confused again.

There's an extension called Line endings unifier: https://visualstudiogallery.msdn.microsoft.com/b2bbadd2-c337-43d7-9343-752ebbdd900f
I like it :)


Having Monika AI opened causes Chrome to freeze repeadetly

Noticed this started happening since i downloaded the new version, everything else on my laptop runs fine while it's active, expcept for chrome; this results being expecially annoying when watching youtube videos or any other kind of video in general. I didn't test it with Firefox. I even have the Potato mode activated.

This is currently unavoidable because Chrome has no native way of obtaining the URL from the address bar. For some people it works, for some it doesn't. Try updating chrome to the latest version, if you're not using that already.


[bullet3] Add usage

Fix related issue https://github.com/microsoft/vcpkg/issues/10213
Add usage for bullet3.
All features test pass with x86-windows and x64-windows.

Thanks phoebe :)


Introduce the financial format for Number Column

Currently, only numbers and percentages are available, which makes financial documentation inconvenient. It should be available in a financial format like in Excel, with "," for separating thousands and "()" for negative numbers.

Currency is stored on the Property
We need a set of currencies + icons to refer to
We need to customize formatting / styling everywhere numbers are used
Use the Intl.numberformat

I am talking more about having "," separators for thousands, millions, and billions, and parenthesis "()" formatting for negatives. Having currency is not very important, we show them anyway in the table.


refactor: [M3-8771] - Add more customization to legends and charts

Description 📝
Problem: The height of the Recharts graph changes when the number of legend rows varies, which affects the graph size, especially with many legend rows.
Request: We would like flexibility to control the styling of legend rows and the graph itself so that it can handle dynamically varying legend rows effectively.
Changes  🔄

Legends should have an overflow scroll
Legend TableHead should remain fixed when scrolling
MetricsDisplay: Added hasFixedLegendHeight so legends across metrics should have option to have fixed height (so charts remain similar size)
Remove double borders from legend table
Allow ability to change AreaChart height and width while maintaining sensible defaults (100%)
Fixed all the negative margin styling we were doing
Legends should be able to account for long titles

Target release date 🗓
N/A
Preview 📷

Before
After
After (Fixed)

 Current version never fills entire space until legend grows which seemed weird.

Before
After

How to test 🧪
Verification steps

Go to Linode details analytics tab and verify charts still good (/linodes/:id)
Enable Managed and verify the charts (/managed/summary)
Go to NodeBalancers details and verify the charts (/nodebalancers/:id)

As an Author I have considered 🤔
Check all that apply

[x] 👀 Doing a self review
[ ] ❔ Our contribution guidelines
[x] 🤏 Splitting feature into small PRs
[x] ➕ Adding a changeset
[ ] 🧪 Providing/Improving test coverage
[ ] 🔐 Removing all sensitive information from the code and PR description
[ ] 🚩 Using a feature flag to protect the release
[ ] 👣 Providing comprehensive reproduction steps
[ ] 📑 Providing or updating our documentation
[ ] 🕛 Scheduling a pair reviewing session
[ ] 📱 Providing mobile support
[ ] ♿  Providing accessibility support

@jaalah-akamai can we also make the legend row values also to be in single line, here the symbol os going in new line for long name

@jaalah-akamai for the type of data prop in the AreaChart component, can we make it DataSet[]. As it'll be easy for anyone  who is implementing it, to identify the structure of data it accepts
export interface DataSet {
  [label: string]: number;
  timestamp: number;
}

https://github.com/user-attachments/assets/b70a0f07-2f7a-4c80-a907-ee2f0d2e7381
Some padding is required at the last cell because vertical scroll is overlapping with the text.

Some padding is required at the last cell because vertical scroll is overlapping with the text in case of horizontal overflow

Yea this is an issue with our table component (of many). I'd rather not make that change in this PR since it will require checking every table in the app.

@jaalah-akamai for the type of data prop in the AreaChart component, can we make it DataSet[]. As it'll be easy for anyone who is implementing it, to identify the structure of data it accepts

We can look at incorporating @types/recharts as dependency to give us better typesafety, but defining our own wouldn't work since the library expects any[] | undefined for the data prop as types.


Fix padding tests to reflect inset padding

As follow-up of the discussion in https://github.com/w3c/ttml1/issues/221, the padding tests have to be revised in order to reflect that the TTML padding is an inset padding.

Thanks to @palemieux for spotting this bug.


Update usage of deprecated ember-mocha describeComponent()

This project uses semver, please check the scope of this pr:

[X] #patch# - backwards-compatible bug fix
[ ] #minor# - adding functionality in a backwards-compatible manner
[ ] #major# - incompatible API change

Closes: https://github.com/ciena-frost/ember-frost-object-details/issues/34
CHANGELOG

Updated integration tests to remove the deprecated use of describeComponent()

This change is

:+1:


[jsfm] add watcher try catch

Please bump the patch version at last.
Thanks.

Finally we choose #1378 instead.
Thanks.


Refactor some Vec usages. Apply clippy lints.

Afaik, collecting an iterator into a Vec tends to be faster than pushing elements into an empty one (unless the capacity of the empty Vec is sufficient), as it minimises the amount of potential reallocations, so I tried to rewrite some of the pushes into collects.

Sorry, I didn't notice this PR. Yep, my Rust is still a mess when it comes to proper box, vec, etc. usages. Still learning.
Will try to solve the conflicts tomorrow.

@VictorTaelin No worries. I can try to fix the conflicts myself and amend the pull request now if you like.

@VictorTaelin I noticed you tend to write some smaller code blocks in one line, so I also changed a rustfmt setting so it now formats the code to fit code blocks in one line if possible (I think the default max width is 100).

Oh damn.

@VictorTaelin I've finished resolving the conflicts and the tests seem to pass. Please feel to review at your convenience. I will be AFK for most of today, but if you find anything wrong and let me know, I'll try and get them fixed when I get back later tonight.

This PR does seem to make it run slightly faster. As of the current commit, this is what I get when running the program:
$ cargo run --release;cargo run --release;cargo run --release;cargo run --release;cargo run --release
    Finished release [optimized] target(s) in 0.14s
     Running `target/release/lambdavm`
67108864
- rwts: 335544291 (10307.95 rwt/s)
    Finished release [optimized] target(s) in 0.12s
     Running `target/release/lambdavm`
67108864
- rwts: 335544291 (10357.90 rwt/s)
    Finished release [optimized] target(s) in 0.12s
     Running `target/release/lambdavm`
67108864
- rwts: 335544291 (10363.34 rwt/s)
    Finished release [optimized] target(s) in 0.13s
     Running `target/release/lambdavm`
67108864
- rwts: 335544291 (10379.05 rwt/s)
    Finished release [optimized] target(s) in 0.09s
     Running `target/release/lambdavm`
67108864
- rwts: 335544291 (10368.47 rwt/s)

and this is with the commits in this PR:
$ cargo run --release;cargo run --release;cargo run --release;cargo run --release;cargo run --release
    Finished release [optimized] target(s) in 0.13s
     Running `target/release/lambdavm`
67108864
- rwts: 335544291 (10553.37 rwt/s)
    Finished release [optimized] target(s) in 0.12s
     Running `target/release/lambdavm`
67108864
- rwts: 335544291 (10585.33 rwt/s)
    Finished release [optimized] target(s) in 0.12s
     Running `target/release/lambdavm`
67108864
- rwts: 335544291 (10426.78 rwt/s)
    Finished release [optimized] target(s) in 0.14s
     Running `target/release/lambdavm`
67108864
- rwts: 335544291 (10580.32 rwt/s)
    Finished release [optimized] target(s) in 0.12s
     Running `target/release/lambdavm`
67108864
- rwts: 335544291 (10530.51 rwt/s)

I kinda want to try and integrate rayon to see if that will increase the rwt/s some more. It should be easier to do this with the commits in the PR since a lot of the loops have been converted to iterators.


[RESTEASY-1932]

Fixed ClientResponseFilterExceptionTest, which was passing for the wrong reason.

@asoldano Race condition in the tests. Aarrgghh. Fixed.


When tagging the Azure HDInsight Cluster using az resource tag --tags environment=development --ids $rid, it is failing

When tag the Azure HDInsight Cluster using
az resource tag --tags environment=development --ids $rid
it fails with the following error message
“Operation failed with status: 'Bad Request'. Details: 'BlueprintUri' cannot be used together with 'Kind'. Please specify only one of the properties during create.,Both 'password' and 'sshProfile' cannot be null,Both 'password' and 'sshProfile' cannot be null,Both 'password' and 'sshProfile' cannot be null”
To reproduce this issue, ensure that you have a hdinsight cluster
try to tag it from az cli / Cloudshell using the command
az resource tag --tags environment=development --ids $rid
I am using the same command to tag all the resources in my subscription and it works well. But when trying to tag the HDInsight Cluster the issue happens..
Environment summary
Azure Subscription and a HD Insight Cluster.
Please help me fix this issue. (Created a ticket with Microsoft Azure Support and they confirmed that it is a bug.)

Please note: I am able to tag the same HD Insight Cluster using Azure PowerShell command and the Azure Portal (Portal.azure.com).

any updates?

This is a server-side bug where our RP has issues updating via PUT from the contents of a GET on the cluster resource. We're tracking this item internally.
Note that this isn't an issue with the HDInsight command module itself, as az resource uses the resource command module and the actual bug is RP-side. This could be avoided if PATCH was used instead, though the right approach is to fix the RP bug.

any updates after 5 months

any updates?

@wawon-msft

Are there any updates on this? Also can you please patch if there is one?

getting same Both 'password' and 'sshProfile' cannot be null,Both 'password' and 'sshProfile' cannot be null when trying to create a cluster.

getting same Both 'password' and 'sshProfile' cannot be null,Both 'password' and 'sshProfile' cannot be null when trying to create a cluster.

Hi @pacuna , would you mind sharing the command that ran into the issue?  Looks like this is a different issue.

To tag an HDInsight cluster, please use az hdinsight update --tags


model cantnot fit to data, and test voice is too bad when i use the paper configuration

i removed the postnet(remove the code of model and loss about postnet ) and set the pitch_quantization="log",set features of pitch and enery = "frame_level", normalization="False",and other configuration is the same as the project.
I use the model(trainning 90w step) to synthesize voice and get poor result.There are many wrong words and noises in many synthesized audios.
I don't know is there any code should be modified.
The configuration is followed:
(1)preprocessed.yaml:
preprocessing:
val_size: 512
text:
text_cleaners: []
language: "zh"
audio:
sampling_rate: 22050
max_wav_value: 32768.0
stft:
filter_length: 1024
hop_length: 256
win_length: 1024
mel:
n_mel_channels: 80
mel_fmin: 0
mel_fmax: 8000 # please set to 8000 for HiFi-GAN vocoder, set to null for MelGAN vocoder
pitch:
feature: "frame_level" # support 'phoneme_level' or 'frame_level'
normalization: False
energy:
feature: "frame_level" # support 'phoneme_level' or 'frame_level'
normalization: False
(2)model.yaml:
transformer:
encoder_layer: 4
encoder_head: 2
encoder_hidden: 256
decoder_layer: 4
decoder_head: 2
decoder_hidden: 256
conv_filter_size: 1024
conv_kernel_size: [9, 1]
encoder_dropout: 0.2
decoder_dropout: 0.2
variance_predictor:
filter_size: 256
kernel_size: 3
dropout: 0.5
variance_embedding:
pitch_quantization: "log" # support 'linear' or 'log', 'log' is allowed only if the pitch values are not normalized during preprocessing
energy_quantization: "linear" # support 'linear' or 'log', 'log' is allowed only if the energy values are not normalized during preprocessing
n_bins: 256
multi_speaker: False
max_seq_len: 1000
vocoder:
model: "HiFi-GAN" # support 'HiFi-GAN', 'MelGAN'
speaker: "universal" # support  'LJSpeech', 'universal'
(3)train.yaml:
optimizer:
batch_size: 16
betas: [0.9, 0.98]
eps: 0.000000001
weight_decay: 0.0
grad_clip_thresh: 1.0
grad_acc_step: 1
warm_up_step: 4000
anneal_steps: [300000, 400000, 500000]
anneal_rate: 0.3
step:
total_step: 900000
log_step: 100
synth_step: 1000
val_step: 1000
save_step: 50000
The loss curve:

The loss curve has been oscillating

I hava tried that configuration but the result is terrible.There are many noises and wrong pronounciation within the audio while in the inference,but the audio synthesized of validation in the training step is good.Anyone know why there is such a big difference？

I hava tried that configuration but the result is terrible.There are many noises and wrong pronounciation within the audio while in the inference,but the audio synthesized of validation in the training step is good.Anyone know why there is such a big difference？

have you found the answer? I have the same thing. I download audios from tensorboard/audio tab. Both, reconstructed and synthesized audios sound very good. However, my inference sounds bad, especially on phrases with more than two words

I hava tried that configuration but the result is terrible.There are many noises and wrong pronounciation within the audio while in the inference,but the audio synthesized of validation in the training step is good.Anyone know why there is such a big difference？

I carefully checked the validation stage during the training process. It seems to me that the synthesized audio in reality is not fully synthesized. It's more reconstructed.


File is uploaded and saved but download does not work with version 2.2.7.

Check out this issue for an ideal bug report. The closer your issue report is to that one, the more likely we are to be able to help, and the more likely we will be to fix the issue quickly!
For implementation related questions or technical support, please refer to the Stack Overflow and Server Fault communities.
Make sure these boxes are checked before submitting your issue -- thanks for reporting issues back to Parse Server!

[x] You've met the prerequisites.

[x] You're running the latest version of Parse Server.

[x] You've searched through existing issues. Chances are that your issue has been reported or resolved before.

Environment Setup
Version 2.2.7
Steps to reproduce

Saving a Parse.File (png file) to server using default GridStore.
After the file is saved, copy and paste the file url to a browser.  With version 2.2.2, the file is downloaded and show in the browser.  However, with version 2.2.7, I get the following error.

Cannot GET /files/myAppId/47fbcee5ff641583cbdcc51425903cfe_image.png
This is NOT a migration from Parse.com.  So I don't think file key is needed.
What am I missing?  I read through docs and changelog and didn't see any mention of breaking changes.
Logs/Trace
No log error.

Additional information.
The Parse.File is saved as part of an object.  With VERBOSE=1, I can see the url.  The same URL would work for version 2.2.2 but not 2.2.6 nor 2.2.7.
"photos": [
    {
      "__type": "File",
      "url": "http://localhost:1337/files/myAppId/a569a0a62a2931fa1a7165bc151fc8af_image.png",
      "name": "a569a0a62a2931fa1a7165bc151fc8af_image.png"
    }
  ]

The bug seems to be that version 2.2.7 doesn't save PARSE_MOUNT in the url.
Version 2.2.2
"url": "http://localhost:1337/parse/files/myAppId/4c94256690de454d7963fe4ef7f6d1e2_image.png"

Version 2.2.7
"url": "http://localhost:1337/files/myAppId/4c94256690de454d7963fe4ef7f6d1e2_image.png"

Turns out the url location is picked up from publicServerUrl.  Shouldn it not be serverUrl instead?

No, serverUrl is the internal address of your server, and publicServerUrl is the external address. Sending localhost links down to the client sure isn't going to work :p


Improved References

This improvement will make get References work on fields and methods in other packages.
In a large project getRefererence fails because getEnclosing node gets stuck in infinite loop.
Let me know if anything needs to be changed.

Only problem left to solve is to make get references work for methodExpression where types needed to be inferred. Like findAll


websocket error

** High-Level Description**
after the simulations are completed in localhost, terminal give WebSocket error
Desired SMARTS version
0.4.12
Operating System
ubuntu 18.04
Problems
Once the episodes are completed, it's showing this error:
 ERROR:websocket:error from callback <function Client._connect.<locals>.on_close at 0x7f4c33a72e60>: on_close() takes 1 positional argument but 3 were given

I have to press ctrl+c to stop the execution.

Hello @Dikshuy , sorry for the late reply. Since 0.4.12 is still a patch version we tend not to go backwards to fix problems, however, I could understand why this would be an irritation if you are trying to automate a number of tests. Do you find this is still a problem in SMARTS 0.4.16?

I am using the latest version ig. It arouses when I try to use localhost. It takes some time to load on the server. That's why it is causing some trouble.

OK, I have confirmed the problem with this method. One of the libraries we are using has a misleading description of what it provides back to us. However, I suspect that this would not be enough to prevent the program from exiting. Did you notice anything else along with this problem that might indicate that something is wrong?

I have to press ctrl+c every time I need to kill the process after this error occurs. That's it.

Issue closed through pull request #906 .


Support for HTML snippets

I think the flexibility of the system would greatly benefit from allowing the use of custom HTML code for creating new elements.
I can think of two ways to support this:

Allow the use of .html.hbs files as snippets, that contain HTML rather than Markdown.
Add a directive :::html that can be used anywhere and just renders its content as plain HTML.

Example:
:::html
<div class="box">
My content in a box.
</div>
:::

Or we can allow HTML to be used.

Sure. I assumed there was a reason to not do that in the first place.

Maybe supporting MDX would be even better.

There will be a new option for the hyperbook.config in the next release. It will be called: allowDangerousHtml. This allows to use HTML everywhere. It is called dangerous, because I can not guarantee compatibility with future releases. For example if you add a div container with class "super-awesome" and I later add an element with the same class, but style it differently, your styling might look off.


Analyse replacing the web3 dependency for ethereum-types

https://github.com/paritytech/parity-common/tree/master/ethereum-types

It is not possible since ethereum-types does not have the Transaction imlementation.


Negative Sample Selection Issue

Hello, your work is extremely valuable. After reading your paper, I understand that in the link prediction task, the score for each node being a tail node is calculated based on the information propagated outward from the head node, correct? In your experimental setup, the GNN has 6 layers, so does this mean that you only consider nodes within the 6-hop neighborhood subgraph of the head node as candidate nodes (negative samples)? In this case, nodes outside the 6-hop subgraph would not be considered. If the correct tail node is outside the 6-hop neighborhood, this method is destined to miss the correct tail node. Is my understanding correct? I look forward to your response and greatly appreciate your feedback. 🙏

Hi, thanks for the kind words!

the score for each node being a tail node is calculated based on the information propagated outward from the head node, correct?

Correct

only consider nodes within the 6-hop neighborhood subgraph of the head node as candidate nodes (negative samples)?

By default, we only sample "hard negatives" - that is, if the current query triple to be predicted is (h, r, t_1) and there are other edges in the graph starting from the same head node with the same relation (h, r, t_2), (h, r, t_3), we remove t_2 and t_3 from the sampling pool. You can check the negative sampling procedure here

If the correct tail node is outside the 6-hop neighborhood, this method is destined to miss the correct tail node.

Technically yes, but practically no - most dense graphs have a diameter <7, and in nearly all KGs true tails are <=4 hops away from the head node. We tried training a model with 10 layers but it didn't yield any significant improvement.

Thank you very much for your prompt reply, haha. I hope this issue won't disrupt your daily work.
I am very aware of the strict negative sampling strategy in your code, which is very reasonable and accurate for our link prediction task. I have no doubts about this aspect.
However, in the comparison of experimental results, if we only consider all negative samples within 6 hops of the head node (ignoring nodes beyond 6 hops), the predicted results would actually be equivalent to your experimental method and thus comparable. Is my understanding correct?

What if we don't consider MR and MRR, and only compare the results of hit@1, 3, 5, and 10? If the correct tail node is within the 6-hop neighborhood of the head, I will calculate the scores of all nodes within 6 hops (of course, filtering out tail nodes that also satisfy the relation, such as the t1 in h→r→t1) and compute the hit result for the correct tail node. If the correct tail node is outside the 6-hop neighborhood, its hit result will be 0. Do you think the hit scores obtained in this way are comparable?

Still not comparable - your model might be bad enough to assign exactly the same score for the true tail and, for example, 100 other nodes where 50 of them happen to be outside the 6-hop neighborhood. If you artificially cut those 50 scores setting them to 0, then you artificially bump the rank of the prediction.
Please don't rig standard evaluation protocols :)

I might not have explained my point clearly. Let me give an example: during evaluation, for the first query h1,r1,t1, if t1 is within the 6-hop neighborhood of h1, I will calculate the scores of all candidate nodes within 6 hops, setting the scores of all nodes outside the 6-hop neighborhood to 0, because under your method's assumption, they are destined not to receive information from h1. Based on this assumption, I directly filter out the nodes outside the 6-hop neighborhood. For the second query h2,r2,t2, if t2 is outside the 6-hop neighborhood of h2, based on the above assumption, I directly consider t2 to be unpredicted, so its hit score will also be set to 0.
Does this make my approach clearer to you?

Or do you mean that I can only randomly select 50 candidate samples and compare hit results with methods like GraIL?

Or do you mean that I can only randomly select 50 candidate samples and compare hit results with methods like GraIL?

No, this is the worst setup ever, don't use this - it overestimates the true performance.

Does this make my approach clearer to you?

Yes it does, and I am still convinced the numbers will be different. Actually, let's run a simple experiment - because we can't argue with the numbers :)
A standard performance of ULTRA 4g on WN18RR test (which I just ran) is:
01:46:42   Evaluate on test
01:52:26   mr: 837.171
01:52:26   mrr: 0.483882
01:52:26   hits@1: 0.414805
01:52:26   hits@3: 0.519783
01:52:26   hits@10: 0.617422

Now let's mask out all entities further than 6 hops from queried head/tail nodes, for that, in between lines 143 and 144
https://github.com/DeepGraphLearning/ULTRA/blob/561f2c79abaf51901702d1712554c35e3739bb8d/script/run.py#L143-L144
let's insert the following snippet:
for i in range(len(batch)):
    t_subset, _, _, _ = pyg.utils.k_hop_subgraph(t_batch[i, 0, 0].view(1,), 6, test_data.edge_index, num_nodes=test_data.num_nodes)
    new_t_mask = torch.zeros(t_mask[i].shape, dtype=torch.bool, device=device)
    new_t_mask[t_subset] = True
    # mask all nodes outside the 6-hop neighborhood
    t_mask[i][~new_t_mask] = False
    h_subset, _, _, _ = pyg.utils.k_hop_subgraph(h_batch[i, 0, 0].view(1,), 6, test_data.edge_index, num_nodes=test_data.num_nodes)
    new_h_mask = torch.zeros(t_mask[i].shape, dtype=torch.bool, device=device)
    new_h_mask[h_subset] = True
    # mask all nodes outside the 6-hop neighborhood
    h_mask[i][~new_h_mask] = False

Now let's run eval on WN18RR once again and we see very different and much better performance:
01:40:00   Evaluate on test
01:46:02   mr: 204.884
01:46:02   mrr: 0.576971
01:46:02   hits@1: 0.508137
01:46:02   hits@3: 0.614391
01:46:02   hits@10: 0.703414

I think we reached the bottom line here :)

Oh, thank you so much. I really appreciate that you went through the trouble of running the experiment to explain it to me. I've never met such a patient person online before, haha.
Additionally, does this experiment indicate that other negative samples outside the 6-hop neighborhood might also have scores higher than the correct tail node? Therefore, after masking, the hit score would increase. In other words, although theoretically a 6-layer GNN would prevent nodes outside the 6-hop neighborhood from obtaining information about the head, it is still possible for their scores to be higher than those within the 6-hop neighborhood.

Don't forget that the final score for each node is obtained not just from the final node state after message passing, but after an MLP that concatenates a query vector with the final node state:
https://github.com/DeepGraphLearning/ULTRA/blob/561f2c79abaf51901702d1712554c35e3739bb8d/ultra/models.py#L170
That is, even if a state of some node is 0 after message passing, and MLP over [0, query] might return some plausible result after training (eg, if training included predicting an edge between disconnected nodes).
So yes, it is still possible.

Thank you very much! Your explanation has given me a deeper understanding of your method, and it has also broadened my perspective on deep learning. It's no exaggeration to say that this issue will undoubtedly have a subtle yet profound impact on my future AI studies (if I continue with AI, haha). Once again, thank you so much, and I hope to have the opportunity to meet and thank you in person.


contrib/docs: Node version

Same as https://github.com/iterative/dvc.org/pull/4224

p.s. should we copy this page instead?
https://cml.dev/doc/contributing/docs/
Related to https://github.com/iterative/gatsby-theme-iterative/issues/17

Thanks @jorgeorpinel. Sure, we can just cut the details and give a link to DVC docs.


Datmo init fails in empty directory (and ssh git credentials not present) for Windows10

Example:
PS C:\Users\dev\Projects> cd example_datmo_project
PS C:\Users\dev\Projects\example_datmo_project> datmo init
Initializing project None @ (C:\Users\dev\Projects\example_datmo_project)
Enter name for the project: example datmo project
Enter description for the project: test
The authenticity of host 'github.com (<IP_ADDRESS>)' can't be established.
RSA key fingerprint is <RSA KEY>.
Are you sure you want to continue connecting (yes/no)? yes
Failed to create project example datmo project @ (C:\Users\dev\Projects\example_datmo_project)

Datmo init fails in Windows10 64-bit for empty repository

@nmwalsh  Does this still fail once you have setup global git credentials? It looks like we will have to add tests for the case where git credentials are not given, tests for empty repositories are already present, but do not test if git credentials are not given, which seems to be the error

Set up global git credentials (Uses 2FA, stored token in Windows Git Credentials Manager) and still fails. Both before and after, a .datmo folder is still created with the following:

The issue of the .datmo folder is a separate issue, so there are 2 commits to fix this. For the first commit 69234d6 and for the second 6441a40

closed with PR #144


Wrong help message in flutter gen-l10n

Steps to Reproduce

Run flutter gen-l10n --help.
See the help of --[no-]nullable-getter.

Expected results:
"If this value is set to false"
Actual results:
"If this value is set to true"

If this value is set to true,
then a null check is performed on the returned value of
Localizations.of(context), removing the need for null
checking in user code.

Additional context
A PR (#90180) by someone else to fix this has been closed without being merged because of a missing test.
I gave up fixing it myself, not knowing what test was needed, but I thought I should at least file an issue about it so that it'd catch someone's eye.


Roles Sync - AD and DNN Roles

Please summarize your question in one sentence
Can someone explain how exactly should the sync of user Roles work? Are roles synced from AD when the user firstly logins or they actually need to exists before in DNN Roles?
After login they are matched and if they are the same (for example AD Role "Marketing" and DNN role "Marketing") and if the user has it, it will be added to him as he logged in? Is the process somehow different?
Give a more extended description
I've tried to manually add the names of the roles as they are in the AD, but the user after login gets only Registered and Subscribers role. Should they be set as Auto assign or something? Am I missing something?
Steps to reproduce (if needed)
Using DNN 9.4.1 and DNN.AD module 7.0.0. Users can login with their AD login data, but none of the roles are assigned to them.
Other comments or remarks
I'm a little lost right now as I don't know where to look for more info or examples. Also any help would be really appreciated ;)
Cheers

Corresponding roles  need to exist in DNN in advance.

A User in AD has normally a couple of AD roles, either direct or indirect.
During login DNN tests all of DNN roles whether the user belongs to that role in AD or not. AD roles are never changed, it synchronizes always from AD to DNN.

@tinehorvat The role must exist in DNN first.  It must match exactly.  The user needs to be a member of that group on AD first.  EVERY login will sync roles.  If the user in AD is in a group called Finance then DNN will look for a role called Finance and add them to that role on login.
Of course this assumes you have sync turned on in the AD module settings.

Trying to use this provider for a DNN portal. It works fine for authentication, but strangely it is not consistent in adding users to a role. I have about 90 members out of 400 who are correctly added to the DNN role, and the other 300+ are not; and all of them are members of the same security group in AD that should map to this DNN role.
Any guidance or thoughts on why this isn't rock solid in this regard? I really want to use / trust this for use within DNN.

Are you using the latest Dnn version, there was a fix relating to users cache in 9.7.1 ? Not sure if that is your issue, but just wondering if it may have a effect here.


Statusline detail setting

The readme show the example image like this:

Could you give the full setting about this? thanks.

Per https://github.com/nvim-lua/lsp-status.nvim#lsp-statusline-segment, all you need to do to get the "default" statusline segment is to call lsp_status.status() somewhere in your statusline definition.

Does it mean i just do set statusline=%{LspStatus()}?

That will be fine if you (1) don't want anything else in your statusline and (2) have the LspStatus function from the example in this repo defined in your config.

I got it. Thanks


gobject-introspection-1.52.1: cairo-1.0.typelib contains non-absolute path

Issue description
The typelib for cairo contains a non-absolute path:
$ strings /nix/store/*-gobject-introspection-1.52.1/lib/girepository-1.0/cairo-1.0.typelib | grep lib
libcairo-gobject.so.2

This means that the resulting call to dlopen("libcairo-gobject.so.2") will need a correctly set up $LD_LIBRARY_PATH to succeed. This in turn causes #14164.
Other typelibs contain absolute paths into the nix store (tested with the other typelib files from gobject-introspection and with pango 1.40.11).
Possible way to test this
$ unset LD_LIBRARY_PATH
$ Xephyr :1 &
$ cat $(which awesome) | sed -e 's/LD_LIBRARY_PATH/FOOO/g' | DISPLAY=:1 bash -

The above fails with Failed to load shared library 'libcairo-gobject.so.2' referenced by the typelib: libcairo-gobject.so.2: cannot open shared object file: No such file or directory. Awesome still tries to continue, but lots of stuff errors out.
Technical details

Please run nix-shell -p nix-info --run "nix-info -m" and paste the results.

Sorry, but (a) I don't think this is necessary and (b) I cannot copy&paste from the VM and so this is quite non-trivial for me to provide. But it's x86_64-linux, NixOS 17.09.2799....

https://github.com/shlevy/nixpkgs/commit/c54730dde8861b9baf68a25096f4a1ae896a63a7 FYI

Can't we drop the cairo-1.0.gir.in file totally from the gobjectIntrospection package and then patch the cairo package to extract that file from gobjectIntrospection.src?

@dezgeg We could but it would make the packages needlessly complex and the different behaviour from upstream might be confusing.


Create client spec

Waiting on some work from Gowsik for data fixes. Will continue post that.

@apoorv1316 please work with someone from the team to fix the specs. The CI is now setup properly


"The bucket does not allow ACLs"

Describe the bug
When attempting to apply the secure-baseline to a newly-created account, I'm getting the following errors:
 Error: error creating S3 bucket ACL for <prefix>-audit-logs-access-logs: AccessControlListNotSupported: The bucket does not allow ACLs
│       status code: 400, request id: <redacted>, host id: <redacted>
│
│   with module.secure_baseline.module.audit_log_bucket[0].aws_s3_bucket_acl.access_log,
│   on .terraform/modules/secure_baseline/modules/secure-bucket/main.tf line 28, in resource "aws_s3_bucket_acl" "access_log":
│   28: resource "aws_s3_bucket_acl" "access_log" {
│
╵
╷
│ Error: error creating S3 bucket ACL for <prefix>-audit-logs: AccessControlListNotSupported: The bucket does not allow ACLs
│       status code: 400, request id: <redacted>, host id: <redacted>
│
│   with module.secure_baseline.module.audit_log_bucket[0].aws_s3_bucket_acl.content,
│   on .terraform/modules/secure_baseline/modules/secure-bucket/main.tf line 89, in resource "aws_s3_bucket_acl" "content":
│   89: resource "aws_s3_bucket_acl" "content" {

Versions

Terraform: v1.4.5
Provider: v4.64.0
Module: 2.1.0

Reproduction
Apply secure-baseline to a new account, or at least in an account where it needs to create a new S3 bucket.  It may currently be region-specific (I ran it in ap-southeast-2), but eventually it'll soon be happening with any new S3 bucket, due to the changes to new bucket defaults.
Expected behavior
No terraform errors.
Actual behavior
Error as described above.
Additional context
Manually jiggering the bucket settings to enable ACLs allows a re-run of the terraform config to succeed.

This requires the adding of something along the lines of the below to enable ACLs now they are by default off...
resource "aws_s3_bucket_ownership_controls" "my-bucket" {
  bucket = aws_s3_bucket.my-bucket.id
  rule {
    object_ownership = "BucketOwnerPreferred"
  }
}


PageField lists pages available in current user language instead of page languages

If you use a PageField in one of your plugins, then the only pages the user can link to are the pages that are in the same language as the preferred language of the user. The correct behaviour should be to put the pages that are in the same language as the page that is currently edited instead.
Here are the references in the code:
https://github.com/divio/django-cms/blob/38955c35a6e137343d5d1ecf5e355c38dce3f093/cms/forms/fields.py#L42
https://github.com/divio/django-cms/blob/38955c35a6e137343d5d1ecf5e355c38dce3f093/cms/forms/utils.py#L76
Claimed by @sephii

I started working on this here: https://github.com/sephii/django-cms/commit/1d2c875db1ce0c3ae9003b0aa6331e95215d82fe
I don't know what would be the right approach to get the language from the current page in the PageField though. Any suggestion?

Hello @sephii,
Thank you very much for your contribution to the django CMS project. The django CMS project has recently joined forces under the banner of the newly founded django CMS Association to revive the development of django CMS. For this reason we have analyzed all pull requests and issues in detail and decided which ones fit the product vision we want to go with django CMS.
Due to the age of this issue we are unable to safely accept the contribution. If you feel this issue is still required please inform a member of our technical committee<EMAIL_ADDRESS>Nevertheless we thank you for your participation and would like to emphasize that we do not want to discourage you in your contribution to the django CMS project. On the contrary, we encourage everyone who is interested in the success of django CMS to join us!
If you want to learn more about the work of the technical committee, our product vision and how you can become a member of the dCA, you can find all information here:

The Technical Committee of the django CMS Association
Technical Roadmap and Product Vision for django CMS
How to become a member of the django CMS Association

We are looking forward to every companion who would like to shape the future of django CMS together with us!
If you have any questions, feel free to reach out to Nicolai, our Community Manager<EMAIL_ADDRESS>Sign up for the Association now!


Migrations not running

I've just tried this and it doesn't work. The project compiles just fine, but it doesn't seem that the migrations are actually being run. --verbose outputs nothing.
I've tried both dotnet migrate --provider mysql --noConnection --outputFile test.sql and dotnet migrate --provider mysql --connectionString [string]
I've followed the instructions in the top-level README.md, and used the migration in test/ as a sample migration.

My first guess is that the problem has the same cause as this issue just recently opened in the main repo: https://github.com/schambers/fluentmigrator/issues/734
If your assembly containing migrations is compiled against another version of FluentMigrator than the FluentMigrator.Runner assembly, the runner won't recognize the MigrationsAttribute and won't find any migration steps in your assembly.

Hmm. I'm just using the version that Runner.CLI depends on. What version should I pull in instead?

Then it must be something else.

Seems it cannot find the executable. I'm running this on a mac.
➜  Migrations DOTNET_CLI_CONTEXT_VERBOSE=true dotnet migrate --provider sqlserver2012 --noConnection -f out.sql
Running /usr/local/share/dotnet/dotnet exec --depsfile /Users/skinney/.nuget/packages/.tools/FluentMigrator.Runner.Cli/1.0.0-beta5/netcoreapp1.0/FluentMigrator.Runner.Cli.deps.json --additionalprobingpath /Users/skinney/.nuget/packages /Users/skinney/.nuget/packages/FluentMigrator.Runner.Cli/1.0.0-beta5/lib/netcoreapp1.0/dotnet-migrate.dll --provider sqlserver2012 --noConnection -f out.sql
Process ID: 28308
Using project '/Users/skinney/Workspace/cop/Migrations'.
Using framework 'net461'.
Running /usr/local/share/dotnet/dotnet build /Users/skinney/Workspace/cop/Migrations/project.json --configuration Debug --framework net461
Process ID: 28309
Project Migrations (.NETFramework,Version=v4.6.1) will be compiled because inputs were modified
	/Users/skinney/Workspace/cop/Migrations/project.json
Compiling Migrations for .NETFramework,Version=v4.6.1
Running /usr/local/share/dotnet/dotnet /usr/local/share/dotnet/sdk/1.0.0-preview2-003131/csc.dll -noconfig @/Users/skinney/Workspace/cop/Migrations/obj/Debug/net461/dotnet-compile-csc.rsp
Process ID: 28310
Compilation succeeded.
    0 Warning(s)
    0 Error(s)
Time elapsed 00:00:01.6050881

Using project '/Users/skinney/Workspace/cop/Migrations'.
Using framework 'net461'.
Invoking 'FluentMigrator.Runner.Cli.Executor' for '.NETFramework,Version=v4.6.1'.
Command not found.

Ok. So forking the project and building my own version of the runner that executes ''FluentMigrator.Runner.Cli.Executor.exe' fixes the command not found problem, but it still doesn't seem to trigger any migrations :/

I get the same verbose output ending with "Command not found." on both Windows and Mac if I run dotnet migrate in the context of my own test project.
If I run the following command in the context of this repo's test\TestMigrations folder, it works fine:
dotnet ..\..\src\FluentMigrator.Runner.Cli\bin\Debug\netcoreapp1.0\dotnet-migrate.dll --provider sqlserver2012 --connectionString "Server=(localdb)\mssqllocaldb;Database=TestMigrations;Trusted_Connection=True;MultipleActiveResultSets=true" --task migrate --verbose --configuration Debug --outputFile "test.sql"

So after building a solution with a project structure like the repo, I'm able to run both in Visual Studio and from the command line on Windows:

I tried to zip, copy and build the solution on a Mac, but the command line build can't resolve the project reference to the Executor project, so I found that adding a global.json file in the same folder as my .sln file should make project references work outside of Visual Studio, but then I ran into this issue:

https://github.com/dotnet/cli/issues/2159

I have not tested this in a Mac or Linux, as FluentMigrator is not compatible with .NET Standard, so I would have to have Mono installed. I am sure it works on Windows, I have it running in several projects.
I can't see to repro the problem, if you can be more specific we can then ask someone who works on a Mac to send a PR.

I think it will run on Mono on a Mac if I could get the project reference to work like in VS. I haven't spent any more time trying to find a solution to the "Malformed token" error in my global.json.
@giggio How do you get the command working in your projects? (ref the "Command not found" error) You're not building this repo's projects together with your migrations assembly, but it works for you using the NuGet packages?
.NET Standard support is in the backlog: https://github.com/schambers/fluentmigrator/issues/712


OTST_TI_EXPIRED_BOOKING

Description
This scenario includes interaction with the following APIs:
•	Post /offers, the request is related to one passenger and is based on a tripSearchCriteria, containing
o	Origin
o	Destination
o	departure time
•	Post /bookings, the request is based on one of the offerId contained in the response of the Post /offers response.
•	Wait more than 10 minutes
•	Post /bookings/{bookingId}/fulfillments, the request contains the bookingId produced by the previous interaction.
Scenario

Generate and send a Post /offers request related to one passenger with a tripSearchCriteria, containing
o	Origin
o	destination
o	departure time
Generate and send a Post /bookings request using one offer in the Post /offers response, defined by the offerId contained in the response of the previous interaction
Wait more than 10 minutes
Generate and send a Post /bookings/{bookingId}/fulfillments request using the booking.id contained in the response of the Post /bookings obtaining an error (Booking expired)
Generate and send a GET /bookings/{bookingId} in order to verify the status of admissions and reservation

Ad steps 3 - must be custom waiting time based on Booking.confirmationTimeLimit.


fix: use body.message for error string

@lholmquist sorry - my last PR was broken. This one should do the trick. :)

Coverage increased (+0.01%) to 95.135% when pulling 360a19e3abfa37aed032e986eecccf049f45fef5 on fix-rejection-exception-message-body into 2a141047213818dfeb2e4044a530c99d71ee7774 on master.

Coverage increased (+0.01%) to 95.135% when pulling 360a19e3abfa37aed032e986eecccf049f45fef5 on fix-rejection-exception-message-body into 2a141047213818dfeb2e4044a530c99d71ee7774 on master.


Craft 5 compatability

I see there haven't been any changes to this repo since 2022. Just wondering if this is an abandoned plugin or not? A craft 5 version would be welcome.

Not abandonned, just not much time in my hands these days, but there will definitely be a Craft 5 version

Any ETA? Thanks!

Version 3.0.0 was released in April


Fireworks damaged server login problem.

I was trying to spawn Fireworks using a command and then when I tried a command the whole server shutdown and I got the kicked (No message) now whenever you try to join it just kicks you out again.
Dump: http://pastebin.com/A6uWySpG
[14:43:55 INFO]: <name> logged in with entity id 23 at ([world]294.7289658648908, 103.0,<PHONE_NUMBER>1775317) [14:43:56 ERROR]: java.lang.IllegalStateException: Cannot make FireworkEffect without any color [14:43:56 ERROR]: java.lang.IllegalStateException: Cannot make FireworkEffect without any color [14:43:56 INFO]: <name> lost connection: Internal Exception: io.netty.handler.codec.EncoderException: us.myles.ViaVersion.exception.InformativeException: Please post this error to http://github.com/MylesIsCool/ViaVersion/issues {Type: Item Array, Source #0: us.myles.ViaVersion.protocols.protocol1_9to1_8.packets.InventoryPackets$4 (Anonymous), Data: [Pair{Type|Unsigned Byte, 0}], Packet ID: 20}

Could you follow the Issue Template?
https://github.com/MylesIsCool/ViaVersion/blob/master/ISSUE_TEMPLATE.md

Closing this issue because you didn't respond within 1 week.
If you still need help, please provide us the info we need and ask a reopen.


Added method and test for checking outdated CA

For #939.

Well, that seems a bit too easy, don't you think?
The check_outdated_ca function is not really necessary, why don't we just use has_expired directly instead of wrapping it again?

Well, that seems a bit too easy, don't you think?

Yes. What else could be added?

The check_outdated_ca function is not really necessary, why don't we just use has_expired directly instead of wrapping it again?

I would remove that function.
Also original issue requires notifying the user about the expired certificate, how this should be achieved?
Like new certificate generation or exception?

My last comment in the original issue (https://github.com/mitmproxy/mitmproxy/issues/939#issuecomment-191230712) is bollocks, sorry. I did not know that has_expired is a thing and thought that'd need to be implemented.

Like new certificate generation or exception?

So, any automated response is a bit difficult - users need to react anyway by updating their client to accept the new CA certificate. I think we should just display a warning that instructs the user to delete ~/.mitmproxy if he wants to generate a new certificate.
So, sorry for the initially bad task description: I think implementing a check for mitmdump first (as we do for HTTP2 ALPN - see mitmproxy.dump) would be best.