Give user a better feedback when commands are executed

use spinner on all commands that modify system (spinner waits state change when possible)
improve deploy tracking

I'll give this a spin tomorrow morning

@jakolehm would it be possible to have automated docker builds of feature branches like these for easier testing (with contena for example)

We install kontena cli with Gemfile for the project so the old gemset will conflict with my symlinked "devtena"...

Rebased against master and refactored/unified spinner & error messages

@nevalla ping

Looks good!


Constify some big arrays to allow to compiler put them in read only section.

Hi,
Pretty small change I had locally for a long time. Just marks some constant arrays as const letting compiler put them in r/o section.
Regards,
Kacper

/CC @mm2

Also @mm2 I just run a Coverity scan, you should have got an email with the new defects :)


Maximum Collection Supported

What is the maximum collection I can join together with this package? I have 6 collection which are referenced with each other. Can I used it?

Hey @ralphievolt that should be fine

To further explain my requirement which I'm struggling right now. Here's my collection
collection 1= AA-BB
collection 2= BB-CC
collection 3= CC-DD
collection 4= DD-EE
collection 5= EE-FF
I want to show all the relationship from collection 1 up to collection 5 in a table like this

FF
EE
DD
CC
BB
AA

F1
E1
D1
C1
B1
A1

F2
E2
D2
C2
B2
A2

The reason I wrote here so that other can see whether this is doable with the package or not.

sure, I don't see why not?

I can successfully show the relationship between collection 1 & 2.. How do I pass the relationship now from collection 1 to collection 3?

Here's how wrote my code: =)
PalletAggregation .helpers({
  bBoxes: function(){
    return BundleboxAggregation.findOne(this.bundlebox);
  }
});

BundleboxAggregation.helpers({
  bundleboxCode: function(){
    return this.bundlebox;
  },
  sBoxes: function() {
    return ShippingboxAggregation.findOne(this.shippingbox);
  }
})

ShippingboxAggregation.helpers({
  shippingboxCode: function(){
    return this.shippingbox;
  },

})

Template.aggregationReport.helpers({
  palletData: function(){
    return PalletAggregation.find();
  }
});

My html template
{{#each palletData}}
  <li> {{palletcode}}   >
    {{bBoxes.bundleboxCode}}   >
    {{sBoxes.shippingboxCode}}   >
  </li>
{{/each}}

You can just chain them, foo.helperOne.helperTwo.helperThree

I'm sorry but how do I apply that in my code I pasted above?

Where should I place this? is it inside " (this.here) " or " return "here"   ?
I am sorry if I bothered you so much =)

Here's an example of a more complex structure, hopefully the relationships between authors, books and publishers is easy enough to understand.
Books = new Mongo.Collection('books');
Authors = new Mongo.Collection('authors');
Publishers = new Mongo.Collection('publishers');

Books.helpers({
  author: function() {
    return Authors.findOne(this.authorId);
  },
  publisher: function() {
    return Publishers.findOne(this.publisherId);
  }
});

Authors.helpers({
  books: function() {
    return Books.find({ authorId: this.authorId });
  },
  publishers: function() {
    return Publishers.find({
      _id: { $in: _.pluck(this.books.fetch(), 'publisherId') }});
  }
});

Publishers.helpers({
  books: function() {
    return Books.find({ publisherId: this._id });
  },
  authors: function() {
    return Authors.find({
      _id: { $in: _.pluck(this.books().fetch(), 'authorId') }});
  }
});

it make sense to me now. Thank you very much


workflows: update archive action

When archiving, use the latest version of the archive action and use
it's ability to archive an entire directory.

How about defining some value for retention days?

How about defining some value for retention days?

Sounds good. Will do. I think I will set it to one week unless you feel otherwise.

How about defining some value for retention days?

Sounds good. Will do. I think I will set it to one week unless you feel otherwise.

Isn't that a bit short? I had a similar situation in another project recently, where all artifacts have been removed after only a week, and that was really disturbing, especially when you want to reproduce something from earlier. I would go with one month.

I would go with one month.

Works for me.


operator [O] mariadb-operator (0.24.0)

Add operator mariadb-operator (0.24.0) to community operators

/label allow/serious-changes-to-existing

/hold cancel

/merge possible

/merge possible


Adding an alt attribute to steps 2-4 of the CSS Box Model project

This might be a small issue, but I think for consistency sake we should always require users to add an alt attribute for their image tags.
In steps 2, 3, and 4 the challenge has the users working with an image tag but they are not required to add an alt attribute.
I understand that we remove that image tag in step 5, but I think for best practices we should always require users to add the alt attribute.
Thoughts?

Since the attribute is introduced early in the HTML section Step 9 I think it would be beneficial to be consistent and use best practices for the remaining exercises.
It may be distracting for the box model since it is an illustration that is removed, however there are other courses such as Photo Gallery Step 6 where "be sure to include an appropriate alt attribute for each img tag" with an associated test would fit well.

@jdwilkin4 love your attention to accessibility :+1:
In these three instances I think it might be OK to just have a note saying that normally you always want to have an alt attribute describing the image but for brevity we are leaving them out since the images are temporary.
I think the real accessibility issue here is that these three images are being used to explain a concept. Thus, the text content must be a sufficient alternative to the images. So I think we need to make sure that these steps explain the concepts being conveyed in the images without needing the images.

@bbsmooth Which are you more advocating for:
a) Making the editor description more explicit such that the images are redundant?
b) Give the images detailed alts and captions such that screen readerers can get the same information as a person trying to learn from the image?

@ShaunSHamilton I think I would advocate for making the description for each step more detailed so that the images aren't even needed. I'm not saying we have to get rid of them, just that they are not essential for explaining the concept.
Personally, I feel like the images should be in the description themselves. If we did this then perhaps we could rely on the alt text to help explain the concept. But having the user add the image seems awkward if we want to rely on the image in any way. We would have to give the user not only the URL but the alt text as well. But if we are going to do that, then why not just include the alt text in the description in the first place? Also, a screen reader user isn't going to know why they are adding these images unless we tell them, so we have to add even more to the description to explain that these images are not essential and everything you need to know is in the description text.
If we added the images to the descriptions then we could use alt text effectively and the images would make sense to everyone. But then we lose the interactive task of adding/changing the image for each step. My proposal would be to use the div.frame element from the project to demonstrate the box model. It has the width, padding, border, and margin properties set on it so it covers all four aspects of the box model presented in the images. Each step could add one of these properties to div.frame with an explanation of how it relates to the box model.

Thank you, for that @bbsmooth .
I would have to do some usability testing with the images in the description - just because we tried to create these practice projects with as little stuffs as possible (even then, we can improve a lot). That being said, it does sounds like the approach that makes the most sense.

@nhcarrigan What are your thoughts on this?

I have many thoughts on this. Primarily in agreement that what we currently have isn't ideal.
I think, of all the options we've discussed, the proposal to construct the div.frame as a way to teach the box model is the most logical.

My proposal would be to use the div.frame element from the project to demonstrate the box model. It has the width, padding, border, and margin properties set on it so it covers all four aspects of the box model presented in the images. Each step could add one of these properties to div.frame with an explanation of how it relates to the box model.

We would want to remove the images alltogether, or add them to challenge description?

Hi, can I please be assigned this issue @naomi-lgbt @ieahleen

Did we come to a consensus that using div.frame to explain the box model is the way to go here?

We would want to remove the images altogether, or add them to challenge description?

I personally don't think we need the images if we use div.frame. What we might need to do is add a background color to it so that the user can see the space that it takes up and can see the changes as we have them add width, padding, margin and border.
I do wonder if this issue is ready to be implemented yet though? This change is going to involve a lot of rewriting of the steps and possibly adding additional steps. Seems like we should map it out a little better as to exactly how we want this done.

Going to remove https://github.com/freeCodeCamp/freeCodeCamp/labels/help wanted from this issue as we seem to still be discussing the implementation.

Closing this as stale. If anyone thinks we still need adjustments here, feel free to leave a comment and we can reopen.


Updated Release for APIv8 Depreciation

I noticed @matejcerny was able to upgrade the API to v9 2 days ago.
Just wondering if @tobimori can look to release an updated compiled version for the Elgato store before the upcoming V8 API depreciation on May16? As per PR #40 or if we should look to compile locally?

Unfortunately the contract which @tobimori used for pushing updates left Elgato, so we need to find another way. Do you have any experience with the Elgato store?

Has that been tested? I couldn't get your version to work locally.
I did however find another fork that already did some v9 conversion, which does work (but has some issues with displaying the time, and could use some polishing): https://github.com/Barndtt/streamdeck-toggl

Regarding the Elgato store - there is some information at https://docs.elgato.com/sdk/plugins/distribution.
Submit your plugins by sending an email to<EMAIL_ADDRESS>with the following:
Download: A link to download the plugin.

User: A unique username or an email address.

Release Notes: What changed with the new version of your plugin? (features/bug fixes)

Support: Where can users contact you if they have problems? (email, contact form, etc.)

Category: Under which category do you want to have your plugin listed in the store (only one category is allowed at the moment).

Unfortunately the contact which @tobimori used for pushing updates left Elgato, so we need to find another way. Do you have any experience with the Elgato store?

Me personally, no, I havent even compiled a plugin locally unfortunately, was more looking to scope out the requirements before May to see what I need to learn, or if we could get an updated release 🫠

"back then" compilation was just making a zip file with the elgato cli, not sure if that has changed much.

Sorry guys, as the change was not that big, I only tested it in postman. @malde You are right, I will try to fix it as soon as possible.

This one has been tested and it works. Sadly, the issue with displaying the time persists. Can anyone investigate it 🙏? https://github.com/tobimori/streamdeck-toggl/pull/42

Just by downloading your zip, and replacing the contents in the %appdata%\elgato\StreamDeck\Plugins\io.moeritz.streamdeck.toggl.sdplugin it appears to work for time tracking.
I don't see the time issues on the deck, but I don't usually use that feature, rather I just use it to quickly switch projects.
Similar to other repos listed in this issue, might be good to update the readme with the instructions so people don't think they need to recompile 😊
Thank you

This is how it looks like.

Now that I see the full number (I didn't because font-size), I'm pretty sure that's just a local datetime conversion issue on the deck. Those 476,238 hours at least match the hours since 1.1.1970.

Well, it looks like API does not send a duration anymore:
{
    ...
    "task_id": null,
    "billable": false,
    "start": "2024-04-30T06:43:55+00:00",
    "stop": null,
    "duration": -1,
    "description": "work",
    "tags": [],
    "tag_ids": [],
    "duronly": true,
    "at": "2024-04-30T06:43:56+00:00",
    "server_deleted_at": null,
    "user_id": 9275401,
    ...
    "permissions": null
}

Works on my machine. @malde Can you please also test it? Thanks a lot! https://github.com/tobimori/streamdeck-toggl/pull/43

Looks to be working for me 👍

This is how it looks like.

Ahh I removed that text In the UI for my use case 😊

Do you have the latest version @angry-bender? https://github.com/tobimori/streamdeck-toggl/pull/43

Looks to be right for me

Hopefully the last change: (https://github.com/tobimori/streamdeck-toggl/pull/45)

Regarding the Elgato store - there is some information at https://docs.elgato.com/sdk/plugins/distribution.
Submit your plugins by sending an email to<EMAIL_ADDRESS>with the following:
Download: A link to download the plugin.

User: A unique username or an email address.

Release Notes: What changed with the new version of your plugin? (features/bug fixes)

Support: Where can users contact you if they have problems? (email, contact form, etc.)

Category: Under which category do you want to have your plugin listed in the store (only one category is allowed at the moment).

@tobimori Can you please send it as an author? This is the bundle, just delete the .md extension (I was unable to upload it here without it)
io.moeritz.streamdeck.toggl.streamDeckPlugin.md

Regarding the Elgato store - there is some information at https://docs.elgato.com/sdk/plugins/distribution.
Submit your plugins by sending an email to<EMAIL_ADDRESS>with the following:
Download: A link to download the plugin.

User: A unique username or an email address.

Release Notes: What changed with the new version of your plugin? (features/bug fixes)

Support: Where can users contact you if they have problems? (email, contact form, etc.)

Category: Under which category do you want to have your plugin listed in the store (only one category is allowed at the moment).

@tobimori Can you please send it as an author? This is the bundle, just delete the .md extension (I was unable to upload it here without it)
io.moeritz.streamdeck.toggl.streamDeckPlugin.md

Looks like it's published https://marketplace.elgato.com/product/toggl-b040b224-5e61-4722-957f-91a662792441

thanks all for your efforts with this and sorry I wasn't able to provide more assistance than this :)


Searching while typing

The special problem of searching while typing is to keep the GUI repsonsive. There is already a threaded search implemented. However, the end of it is actively waited for.
My simple proposed solution splits the searching algorithm to that it can run freely. The GUI uses old-school polling to observe the searcher.
To disambiguate my new polled threaded search, I gave it the name "Thearch".
What to do in the GUI:
Add a timer with 10 ms interval and set the OnTimer event. It was automatically named Timer1Timer for me. I found that constant 10 ms poll does not load the CPU observably, so there are no means to kill it if there is nothing to do.
Set an OnChange event for Edit1. If the contents change it simply sets a variable to notifiy this event.
// New variables. Place and initialize them properly.
ThearchRequested : boolean;
Thearch1 : qword;

procedure TSearchForm.Edit1Change(Sender: TObject);
begin
  ThearchRequested := True;
end;

procedure TSearchForm.Timer1Timer(Sender: TObject);
var
  Thearch4 : qword;
begin
  if ThearchRequested then begin
      if NoteLister.StartThearchNotes(Edit1.Text) > 0 then begin
          ThearchRequested := False;
          Thearch1 := GetTickCount64;
          StatusBar1.SimpleText := 'Thearch!';
      end;
  end;
  NoteLister.RunThearchNotes();
  if NoteLister.ThearchNotesJustFinished then begin
      Thearch4 := GetTickCount64;
      ButtonClearFilters.Enabled := True;
      if Edit1.Text = '' then NoteLister.LoadListView(ListViewNotes, False)
      else NoteLister.LoadListView(ListViewNotes, True);
      NoteLister.LoadListNotebooks(ListBoxNotebooks.Items, True);
      StatusBar1.SimpleText := 'Thearch=' + inttostr(Thearch4 - Thearch1) + 'ms and we found ' + inttostr(ListViewNotes.Items.Count) + ' notes';
  end;
end;

Now that we have a polling GUI, the thearch must be implemented. It is basically the existing search split up in starting and running parts.
// New variables. Place, initialize and destroy them properly.
ThearchState : integer;  // 0 idle  1 running  2 just finished
// These are local in the non-polled search. However, they need to exist throughout the search.
ThearchTermList, ThearchFileList : TStringList;

// Like SearchNotes, but:
//   - TermList and FileList are no longer local
//   - Does not wait for the threads to finish.
// Returns the number of started threads.
function TNoteLister.StartThearchNotes(const Term: ANSIstring): longint;
var
    ThreadIndex : integer = 0;
    SearchThread : TSearchThread;
begin
    result := 0;
    if ThearchState = 1 then begin
        // Still searching. Do nothing (or restart the search if we know how ...)
    end else begin
        ThearchTermList.Free;
        ThearchTermList := TStringList.Create;
        ThearchFileList.Free;
        ThearchFileList := Nil;
        // Is try ... still needed here?
        try
            BuildSearchList(ThearchTermList, Term);
            if DebugMode then debugln('Empty Search Lists created');
            SearchNoteList.Free;
            SearchNoteList := TNoteList.Create;
            FinishedThreads := 0;
            ThreadLock := -1;
            ThearchFileList := FindAllFiles(WorkingDir, '*.note', false); // list contains full file names !
            while ThreadIndex < ThreadCount do begin
                SearchThread := TSearchThread.Create(True);         // Threads clean themselves up.
                SearchThread.ThreadBlockSize := ThearchFileList.Count div ThreadCount;
                SearchThread.Term_List := ThearchTermList;
                SearchThread.File_List := ThearchFileList;
                SearchThread.ResultsList := SearchNoteList;
                SearchThread.TIndex := ThreadIndex;
                SearchThread.CaseSensitive := Sett.SearchCaseSensitive;
                SearchThread.start();
                inc(ThreadIndex);
            end;
            ThearchState := 1;
            result := ThreadCount;
        finally
        end;
    end;
end;

// Needs to be polled and implements the finishing part.
procedure TNoteLister.RunThearchNotes();
begin
    if ThearchState = 1 then begin
        if FinishedThreads >= ThreadCount then begin
            SearchNoteList.Sort(@LastChangeSorter);
            ThearchState := 2;
        end;
    end;
end;

// Reports a finished search.
function TNoteLister.ThearchNotesJustFinished(): boolean;
begin
    result := False;
    if ThearchState = 2 then begin
        result := True;
        ThearchState := 0;
    end;
end;

How does it feel? Well, there seems to be a difference between my Linux (Ubuntu 18.04) and Windows 10 systems. The search feels great on both systems with my regular set of 500+ notes, so I created an artificial set of notes by splitting a Bible text into packs of 10 verses each and got 3000+ notes. On my Linux system, everything is still smooth, on Windows I sometimes experience a lag when filling the list in the GUI. The lag is not reproducible, it could be less than 100 ms or nearly a full second under the same searching conditions. There is of course a culprit in the fact that the search starts with the first typed letter, e.g. if I search for Noah, the letter "N" returns all notes, "No" still 1000+ notes.
It would be possible to accomodate slow GUI list updates in a similar polling fashion. I could try to go down this rabbit hole. I really like the auto-updating search, it would be great if it becomes a standard (maybe user settable) feature.

Nice Work !  I have not read over it closely but looks like you have gotten right into it.  One initial question, why a timer driven polling when you could trigger off a new search each time the user makes a change to edit1 ?
We would need to disable the timer if user moves focus away from edit1, most users leave -ng running in the background and a timer running would steal cpu from foreground apps and even prevent it being swapped out on system with memory issues.
I have long wanted to implement progressive searching like this but was worried about the impact on users with lots of notes. I have several I can name with 20k or more (!!?).  So interesting that you find it ok still with 3K.  Are you using a spinning hard disk or a SS one ?
I am personally cramped for time right now, a couple of weeks will be better again.  But very interested!
(As an aside, draft pull request rules, focus on one issue per pull request, minimize impact on unconnected code, you get listed as an author !)
Davo

Let me explain a bit ...
The Windows and Linux systems I use are both equipped with Core i5, 8GB, SSD as the main disk and HDD for bulk data. The notes are usually stored on the SSD but I can try the HDD instead for extra performance penalty. I also think that G-DATA on the Windows system is a performance penalty by itself.
I'm just starting to get proficient with Object Pascal and Lazarus, so I looked for a simple solution that I found to be tried-and-true. Under Tcl/Tk I often use schemes like after idle to schedule a computation in the main thread after the GUI has done its work. Using the Timer as proposed does the same thing, it starts a computation in the main GUI thread so I don't have to care about synchronization. This leaves the finishing of the search threads as the only synchronization point and that was easy, I also don't fear state machines. Waiting for the threads to finish is likewise the easy way, because the search result can be sorted before being displayed.
I'm not too proficient with the threads at the moment. I tried to terminate running threads and start them with new data but the programme crashed after the third letter I typed. I think I need some time to learn this kind of stuff.
It would also be possible to fill the GUI list of search results progessively, but that has to be done with care and in a smart way. For one, the list inserter must insert the entry at the proper position according to the sorting rules. The list could also be filled from the threads themselves using Synchronize. I don't know what the time penalty of changing to the main thread is. I think I'll try and see what happens.
My artificial set of notes is quite uniform as each note contains 10 Bible verses. Also, the Bible is not enough to fill 20k notes with individual data of varying lengths and I don't want to use lorem ipsum as a source. I could put some RFCs in notes, mixed with rock song lyrics and movie citations. That may give me a real-world set of notes of different lengths.
You're cramped for some weeks? Great, time for me to explore the field and try a pull request. Yes, I'm sure it's simple, but I'm more used to patch by mail (no, I'm not a kernel developer). Time to learn!
-- Stephan

Informal partial success report
Informal means: No code examples at the moment.
I managed to terminate the threads without casualties. The key is to not enable FreeOnTerminate. This adds some extra burden to the programme to free the thread resources manually, but it also provides the necessary control to terminate threads at will and terminating is necessary to start a new search when the search term changes.
The next thing I tried was to not accumulate search results but instead to insert them into the GUI immediately via Synchronize. I used the date strings of the existing list entries as the sorting criterion, i.e. the list is searched for the proper place to insert the note instead of sorting it afterwards. I see that there seems to been an invisible subitem 1 that contains the note's ID, correct? It may be a good idea to add an extra invisible subitem that holds the last change date as a machine readable number, just in case the readable date is formatted like year/day/month.
It's already really nice to see the progressive search in action and it's quite smooth on my machines. In order to get out of the way of potential bottle necks (on somebody else's machine) I will try to move the GUI list filling away from the threads. This means the idea is that the threads will fill the non-GUI search list again, but every here and then the intermediate result will be captured in a thread-save way and the main loop will insert the result into the GUI in larger chunks. However, there is a chance that the context switch from a search thread into the main thread is not sooooooo expensive. It's probably more expensive if a really large number of notes is going to be inserted (when starting to type one or two letters), but having more than 100 search results usually means that the search term was not specific enough. Having only a few results also means having only few context switches. I think nobody will notice ...
Anyway, I will try this during the next days.

hi effelsberg, I have just put some alpha packages on the tomboy-ng 0.34 release page that address this issue (searing while typing). They are relatively untested but I have been using much of the new code for some months with no apparent problems. Depending on how brave you feel, you might like to git it a go.
https://github.com/tomboy-notes/tomboy-ng/releases/tag/v0.34
Davo

OK, all implemented in version 0.35
So, I'll close
Thanks for the report.
Davo


Fix Validation Violation Localization

1. Why is this change necessary?
To fix #2902
2. What does this change do, exactly?
Add the correct snippets, and improve consistent dotting in the fallback messages.
3. Describe each step to reproduce the issue or behaviour.
Create a random promotion and cause a error (place the end date before the start date)
See that the text is english

4. Please link to the relevant issues (if any).
#2902
5. Checklist

[X] I have rebased my changes to remove merge conflicts
[X] I have written tests and verified that they fail without my change
[X] I have created a changelog file with all necessary information about my changes
[X] I have written or adjusted the documentation according to my changes
[X] This change has comments for package types, values, functions, and non-obvious lines of code
[X] I have read the contribution requirements and fulfil them.

@AltayAkkus how is the progress here?

Hey,
I will close this PR as it's inactive for a while. Feel free to create a new one when you applied the requested changes


Improve android test support

With this changes it is possible to run libstd tests and most of cargo tests (qemu segfault in some).

After updating to qemu 2.11, the android patch will not be necessary (one of the patches was included in the upstream an the other is not necessary anymore, we pathc the android linker instead).
After this got merged, I will send a PR updating qemu.

@Dylan-DPC can we try this?

@ryankurte maybe you can take a look at this PR.

bors try

@ryankurte Can we try again?

bors: try

Maybe I had screwed my branch... I'm sorry. I rebased the PR.

It's ready for another try.

bors: try

Can we try again? The errors seems to be related with the musl PR.

bors: r+

bors: try

bors: r+

Not sure why the build is failing. Can you check?

All failures are spurious (network issues).

bors: r+

bors: r+


For Windows Users

if you try to run this on Windows, you might need to install the following dependencies manually:

conda install -c conda-forge cudatoolkit-dev -y
pip install Ninja
https://visualstudio.microsoft.com/visual-cpp-build-tools/
and install c++ build tools with

after installed these additional dependencies, I could run it on my local with 3090
Great Job!

What is the VRAM consumption of the tool ?

What is the VRAM consumption of the tool ?

Using Win10, Docker and 3090 - it's using 23.3 GB VRAM (could be a little less since I am running some other programs)

what is conda? i found condamini should i install that?
also if i only have a 3060 will i be able to run it and get good res?


Incoming webhook and cors policy

Inside a custom ms team tab app, i try to make a post request to incoming webook, but this request was blocked by cors policy. Did anyone face this problem?

Yes, I have the same problem. I want to post to an incoming webhook from my web app, but cannot do it due to missing CORS policy support. I hope MS can add support for this?

I am seeing the CORS error but something strange happens - the post still goes through.
I can only imagine that somehow Teams (because it trusts whatever app is placed in that iframe) is somehow inserting some JS that handles XMLHTTP errors and posts message some other way.

I've also noticed that the post still goes through, despite the response error. In my case, I'm sending the request from a completely external page.

I am also having same problem, message is received in teams however CORS error is generated at webpage.

Any update on this issue ? I am facing the same issue at my side.

Could you please follow the guide here to Send Messages to Connectors and Webhooks. If you are still facing the issue please feel free to reopen the issue.


Align network/private-link-service to AVM specs

Work started https://github.com/ahmadabdalla/bicep-registry-modules/tree/users/ahmad/4416_privateLinkService


Container should have width=100%

I believe the container should have width=100%. Otherwise it gets an auto width.
  {
    name: 'Container',
    type: 'div',
    props: {
      px: 3,
      ml: 'auto',
      mr: 'auto'
    },
    style: props => ({
      maxWidth: px(props.width || idx('maxWidth', props.theme) || 1024),
      width: 'auto'
    }),
    propTypes: {
      width: number
    }
},

@karland as far as I can tell the Container components purpose is to constrain the weight of a component thus it has its width set to auto. If you pass in a width it will be its max width if you do not pass in width it will get it either from your theme or set it to 1024px. However granted it is bit confusing that the shorthand prop w does not render any effect whereas width does.

@ferdinandsalis Thanks. I am not quite shure what you mean with

constrain the weight of a component

If you mean width, than your reasoning is the same even if width is set from auto to 100%.

@karland I meant width of course 😊 What I meant to say is that this component does 'one' thing which is it contains (constrains) other things. Sorry if I confused you.
There is a difference of auto and 100% — which I can not recall at the moment (something with margins) — but my guess the intent is to set the default value for width.

The default value for width is auto; in the case of block-level elements that is usually 100%. There are only a few cases where that isn't true, but allowing developers to take advantage of that are in the interest of this library, in my opinion – that is, I'm taking the approach of not adding opinionated styles instead of applying heavy-handed CSS. And, if you explicitly need width: 100%, you can extend a component using styled-components


Fix "False Positives" on dashboard

Regression tests in CI show green even when there are failures. Here's an example -
https://github.com/chipsalliance/Surelog/actions/runs/1250052241
This is happening for both Windows and Unix builds.

@hzeller, can you into this? It has to do with the regression.tcl script never exiting with a 1 return status in case of failures.
I don't  know what happened there, I thought that it did return 1 when diffs at some point in time.

restored exit 1 from regression.tcl, will see if that works in CI


About the Corona Studio Homepage Info in readme

hey there. the Corona Studio Homepage has already permanently moved to https://corona.studio
change it please, ;)
love from frig of csstu

Done


Adding coverage report for server-side tests using istanbul

Code coverage is now built-in to our project and grunt tasks!

and further results:

To run the code coverage simply execute:
grunt coverage

Addresses:

https://github.com/meanjs/mean/pull/569
https://github.com/meanjs/mean/pull/760

@ilanbiala please go ahead and commit your coveralls to this PR

LGTM. Really slick! I really like the initializing status :+1:

lol cool

@lirantal I won't be able to test anything until the weekend, so until then if you want to take a crack at it with Coveralls' guide, go for it.

@ilanbiala so let's merge this PR and we can later create a new one to extend the local coverage we're running with an integration to coveralls.

@codydaig @mleanos do you guys want to review this PR? I thought maybe you have some experience with code coverage tools

@sielay @abhijt-zanak maybe you also have something to add?

@lirantal I'd rather add it all at once. I don't think people are really gonna benefit from just having coverage in the terminal compared to having Coveralls running for them.

@ilanbiala WDYT?
we must merge this first to master for coveralls.io to actually pick it up and show information about code coverage

@lirantal LGTM... tested and verified the coverage outputs the logs correctly. Everything looks good.
And STILL like the Initializing status :)

lol @mleanos  :)
Awesome, thanks!

@ilanbiala per your questions:

Cobertura is a code coverage tool which is commonly used in Java project. the grunt-mocha-istanbul plugin supports exports to the cobertura reporter format to integrate with hudson/jenkins. We use in our enterprise both Coberutra and Jenkins so I figure others will find this useful too without requiring extra tweaks.
About the check limits - for now we should keep that threshold because we don't have much more than that covered, so until we have more code coverage let's keep it on a 'sane' threshold. (I don't see a reason to keep a 90 threshold to show the project as not reaching it's goal and keeping that for who knows how long...
Moved coveralls to devDep
Corrected indentations
Fixed

LGTM

LGTM, @lirantal do we already see some coverage reports for this PR or not until we merge?

After we'll merge (I'll do it later), and then we can also tweak and take care of areas for more test as we wish.

Sounds good.

@lirantal are we merging this or is there something left to add?

Merging! :)

@lirantal Coveralls still doesn't show anything https://coveralls.io/github/meanjs/mean when I log in and see the repo status. Is there something else we have to add?

I'll check this

@ilanbiala ok so I put a specific grunt task called coverage and we aren't calling it as part of the travis ci tests today, and I don't think we should. Instead, we should add another task to the Travis CI to run the coverage. I'll work it out and let you know.

@lirantal :+1:


HSEARCH-4161 LuceneIndexManager.computeSizeInBytes() may fail if a file is deleted while computing size

https://hibernate.atlassian.net/browse/HSEARCH-4161

Merged, thanks


doc: update contributing guide

Resolve #6
Signed-off-by: Yi Zha<EMAIL_ADDRESS>

I noticed that the instructions for committing and pushing changes don't include the signoff command, also known as DCO. I think it would be great to add this information to the instructions.

Do you think it would be a good idea to update the  CONTRIBUTING.md file in this repo and add the signoff commit command? Currently, it's missing.🤔

@priteshbandi @toddysm  Request re-review. We can release it as the first version if there are no big concerns, then we will iterate it over time.

@priteshbandi @shizhMSFT @FeynmanZhou would you mind reviewing this PR again? Thanks.

Thanks for all the comments. I will resolve them before end of 12/22/2023.

@priteshbandi @shizhMSFT @FeynmanZhou @toddysm Would you mind reviewing this PR again, which has been open quite a long time?
Please be aware of some updates on the milestone naming according to Toddy's comment to bring more claritiy.

Change Future milestone to backlog milestone
Change Discuss milestone to in dicussion (or maybe we can remove this milestone, but label related issues and PRs need dicussion


ILEE_CSK.analyze_document_3D failing to return the df_results table

Hi!
I'm exploiting your tool to segment in 3D and retrieve quantitative data from a dataset composed by tubulin stained cells. I tried many times but the pipeline stops at this point:
df_result = ILEE_CSK.analyze_document_3D (folder_path = folder_path,
                                          obj_channel = objective_channel_index,
                                          k1 = K1,
                                          k2 = K2,
                                          xy_unit = xy_unit,
                                          z_unit = z_unit,
                                          pixel_size = pixel_size,
                                          single_k1 = single_k1,
                                          oversampling_for_bundle = oversampling_for_bundle,
                                          use_GPU = False)``

And it returns this error:

TypingError: Failed in nopython mode pipeline (step: nopython frontend)
No implementation of function Function(<function norm at 0x000001D574486A20>) found for signature:

norm(array(int64, 1d, C))

There are 2 candidate implementations:
- Of which 2 did not match due to:
Overload in function 'norm_impl': File: numba\np\linalg.py: Line 2427.
With argument(s): '(array(int64, 1d, C))':
Rejected as the implementation raised a specific error:
TypingError: np.linalg.norm() only supported on float and complex arrays.
raised from C:\Users\ieo3552\AppData\Local\anaconda3\envs\ILEE\Lib\site-packages\numba\np\linalg.py:972
During: resolving callee type: Function(<function norm at 0x000001D574486A20>)
During: typing of call at C:\Users\ieo3552\AppData\Local\anaconda3\envs\ILEE\Lib\site-packages\ILEE_CSK\functions.py (996)
File "......\AppData\Local\anaconda3\envs\ILEE\Lib\site-packages\ILEE_CSK\functions.py", line 996:
def anisotropy_3d_internal(shape, adj,point_list, radius, box_size):

# L2 norm
gradient = gradient / np.linalg.norm(gradient)
^
I would really appreciate your help in resolving this issue!!
Kind regards
Ambra

Hi Ambra,
Thank you for reporting the bug. Could you please tell me:

Are you using the Google Colab pipeline or running a Python IDE? If you are calling library from your own Python IDE, could you send me your code?
Can you send me any 3 of your images to<EMAIL_ADDRESS>?

I am busy but would try to solve the problem this week. Will keep you updated.
Thanks,

Hi! I'm exploiting your tool to segment in 3D and retrieve quantitative data from a dataset composed by tubulin stained cells. I tried many times but the pipeline stops at this point:
df_result = ILEE_CSK.analyze_document_3D (folder_path = folder_path,
                                          obj_channel = objective_channel_index,
                                          k1 = K1,
                                          k2 = K2,
                                          xy_unit = xy_unit,
                                          z_unit = z_unit,
                                          pixel_size = pixel_size,
                                          single_k1 = single_k1,
                                          oversampling_for_bundle = oversampling_for_bundle,
                                          use_GPU = False)``

And it returns this error:

TypingError: Failed in nopython mode pipeline (step: nopython frontend)
No implementation of function Function(<function norm at 0x000001D574486A20>) found for signature:

norm(array(int64, 1d, C))

There are 2 candidate implementations: - Of which 2 did not match due to: Overload in function 'norm_impl': File: numba\np\linalg.py: Line 2427. With argument(s): '(array(int64, 1d, C))': Rejected as the implementation raised a specific error: TypingError: np.linalg.norm() only supported on float and complex arrays. raised from C:\Users\ieo3552\AppData\Local\anaconda3\envs\ILEE\Lib\site-packages\numba\np\linalg.py:972
During: resolving callee type: Function(<function norm at 0x000001D574486A20>) During: typing of call at C:\Users\ieo3552\AppData\Local\anaconda3\envs\ILEE\Lib\site-packages\ILEE_CSK\functions.py (996)
File "......\AppData\Local\anaconda3\envs\ILEE\Lib\site-packages\ILEE_CSK\functions.py", line 996: def anisotropy_3d_internal(shape, adj,point_list, radius, box_size): # L2 norm gradient = gradient / np.linalg.norm(gradient) ^
I would really appreciate your help in resolving this issue!! Kind regards Ambra

Hi Ambra,
Thank you for reporting the bug. Could you please tell me:
Are you using the Google Colab pipeline or running a Python IDE? If you are calling library from your own Python IDE, could you send me your code?
Can you send me any 3 of your images to<EMAIL_ADDRESS>?
I am busy but would try to solve the problem this week. Will keep you updated.
Thanks,

Hi!
Thank you for your prompt reply! And help to solve the problem.. I perfectly understand that you are busy, and thus appreciate your help even more! Of course I can send some pictures over! I sent a couple of them by wetransfer.
I enclose here the code I used, actually I downloaded the the 3D CPU notebook and complied it with the values coming from the opt_k2 calculation.
ILEE_3D_mode_(V_1_0).zip
Thank you very much and I wish you a great day!
Ambra


mysql-chef_gem deprecated in favor of mysql_chef_gem

See https://supermarket.chef.io/cookbooks/mysql-chef_gem/

Updated to use the mysql2_chef_gem cookbook in 2f679f60102e9d906c09e4fbb53a238da507c915. Closing this.


Fix 404

Small fix for link that once was there and is now no longer there.

r? @steveklabnik
(rust_highfive has picked a reviewer for you, use r? to override)

Thanks for the PR! These anchors though are intended for the rendered versions which I believe do end in *.html?

Looks like the link works at http://doc.crates.io/environment-variables.html. It may also work with .md, don't know.

Yeah unfortunately I don't think our *.md links are auto-translated to *.html

Closing due to https://github.com/rust-lang/cargo/pull/3683#issuecomment-279110528


Create summarise_sentinel_data() function

Low priority. Eventually add a pipeline to create all necessary summaries and plots for the sentinel tags

Transferred to BiomarkABS/telemetyr


Class attribute typo

In index.html file there's a
. I assume it's a typo and it should be
.

Resolved in #18. Thank.


FUSETOOLS2-428 - added sql extension to supported file types for the lsp

Signed-off-by: Lars Heinemann<EMAIL_ADDRESS>

Now that new test will fail as we need a new Teiid LSP version.

Locally it works fine with the modified LSP:

in the video you are showing the MySQl syntax extension to be installed. So you mean it is a requirement? So maybe it needs to be indicated as dependency of the plugin.
Another way should be to provide the sql language configuration too (but check that i doesn't cause troubles when both are defined). So it will work even without the extension installed.
If MySQl syntax is chosen as dependency, to have the test working, it needs ot be installed  in test preparation. Something similar to https://github.com/camel-tooling/vscode-camelk/blob/e240b872c1d096bf140cf68f4ae7490ddd071dfb/src/test/runTests.ts#L16-L18

in the video you are showing the MySQl syntax extension to be installed. So you mean it is a requirement?

No, it won't be a requirement but at some point we will create an extension pack which then includes this one for better syntax coloring.

Something is definitely not working as expected. I uninstalled the MySQL extension and it seems that breaks the code completion for me.


[Web] A deep copy never occurs with "Path.from"

Path.copy creates a new Path object that is a "pointer" to the original.  Any changes to either Path object is reflected across both.
I believe on IOS/Android a deep copy occurs when a change is made to either path object, however this doesn't happen with the WEB implementation.
There is a test program in engine/testing/dart/path_test.dart that should be catching this - I don't have an engine dev environment setup so unable to test this.
In the following test code paths p1 and p2 remain identical with a web build..
void main() {
  final Path p1 = Path()..lineTo(20.0, 20.0);
  final Path p2 = Path.from(p1);
  Rect r1 = p1.getBounds();
  Rect r2 = p2.getBounds();

  print('$r1 $r2');  // correctly display the same info

  p1.lineTo(10.0, 30.0);
  r1 = p1.getBounds();
  r2 = p2.getBounds();
  print('$r1 $r2');   // shows that both paths bounds have changed

  p2.lineTo(0.0, 3.0);
  p2.lineTo(1.0, 40.0);
  print('Path1: $p1 \nPath2: $p2');  // shows both paths as being the same
}

Problem does not happen when built for desktop, but does for chrome - and happens on both the dev and master channels
❯ flutter run -d macOS
flutter: Rect.fromLTRB(0.0, 0.0, 20.0, 20.0) Rect.fromLTRB(0.0, 0.0, 20.0, 20.0)
flutter: Rect.fromLTRB(0.0, 0.0, 20.0, 30.0) Rect.fromLTRB(0.0, 0.0, 20.0, 20.0)
flutter: Path1: Instance of 'Path'
Path2: Instance of 'Path'

❯ flutter run -d chrome
Rect.fromLTRB(0.0, 0.0, 20.0, 20.0) Rect.fromLTRB(0.0, 0.0, 20.0, 20.0)
Rect.fromLTRB(0.0, 0.0, 20.0, 30.0) Rect.fromLTRB(0.0, 0.0, 20.0, 30.0)
Path1: Path(Subpath(MoveTo(0, 0), LineTo(20, 20), LineTo(10, 30), LineTo(0, 3), LineTo(1, 40)))
Path2: Path(Subpath(MoveTo(0, 0), LineTo(20, 20), LineTo(10, 30), LineTo(0, 3), LineTo(1, 40)))

Output from flutter doctor -v
❯ flutter doctor -v
[✓] Flutter (Channel master, v1.13.1-pre.99, on Mac OS X 10.15.2 19C57, locale en-NZ)
    • Flutter version 1.13.1-pre.99 at /Users/andymiller/development/flutter
    • Framework revision 354f80b84a (20 hours ago), 2019-12-11 16:36:03 -0800
    • Engine revision 12bf95fd49
    • Dart version 2.7.0 (build 2.7.0-dev.2.1 8b8894648f)

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/setup/#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, set ANDROID_HOME to that location.
      You may also want to add it to your PATH environment variable.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3, Build version 11C29
    • CocoaPods version 1.8.4

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/setup/#android-setup for detailed instructions).

[✓] VS Code (version 1.40.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.7.1

[✓] Connected device (3 available)
    • macOS      • macOS      • darwin-x64     • Mac OS X 10.15.2 19C57
    • Chrome     • chrome     • web-javascript • Google Chrome 79.0.3945.79
    • Web Server • web-server • web-javascript • Flutter Tools

! Doctor found issues in 2 categories.

Hi @andymillernz
can you please provide your updated  flutter doctor -v?
Thank you

Hi @andymillernz
can you please provide your updated flutter doctor -v?
Thank you

Original report has been updated...

Any news about it?


Automator: update istio/api@master dependency in istio/istio@master

Generated by Automator - 2021-02-01T16:41:36+00:00

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
696a975992fc346756f24b8468138fc6aba8a1e5
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
c8f0a9c5593d44f97aba01d94a2b9f87317f477a
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
c8f0a9c5593d44f97aba01d94a2b9f87317f477a
link
/test unit-tests_istio

integ-pilot-multicluster-tests_istio
c8f0a9c5593d44f97aba01d94a2b9f87317f477a
link
/test integ-pilot-multicluster-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-multicluster-tests_istio
f928c80ec55304bb9d17ab769600a336a00887e4
link
/test integ-pilot-multicluster-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


querying arangodb view inside transaction

I have an Arango collection called Documents and an arangosearch view called Documents_view. I am trying to query the view inside a transactional database:
collection = "Documents"
document = {
    "name": "foo",
}

txn_db = arango.db.begin_transaction(read=[collection], write=[collection])
txn_db.insert_document(
    collection=collection,
    document=document,
)

cursor = txn_db.aql.execute(
    query="""
        FOR o IN Documents_view
        RETURN {
           name: o.name,
        }
    """
)

print("documents in view:")
print(list(cursor))

cursor = txn_db.aql.execute(
    query="""
        FOR o IN Documents
        RETURN {
           name: o.name,
        }
    """
)

print("documents in collection:")
print(list(cursor))

txn_db.abort_transaction()

The output reads:
documents in view:
[]
documents in collection:
[{'name': 'foo'}]

It seems like the view does not function inside the transaction? I tried adding "Documents_view" to the list of the transaction's read collections as described here. But this results in an error: arango.exceptions.TransactionInitError: [HTTP 404][ERR 1203] collection or view not found
When printing the list of views: print(txn_db.views()), the Documents_view shows. So I am sure it exists. Even more oddly, when printing the full view: print(txn_db.view(name="Documents_view")), it correctly shows the inserted document: [{'name': 'foo'}]
Am I missing something? Is this behavior intended?

Hi @konnerthg,
As far as I know, what you're trying to achieve is unfortunately not possible. The reason is that for data retrieval operations, arangosearch views are by design "eventually-consistent". This means that eventually all the data in ArangoDB is matched by corresponding query expressions. There are two things to take into account:

Only documents that are committed are visible in the view. Once a “commit” operation is complete, all documents added/removed prior to the start of the “commit” operation are reflected by queries invoked in subsequent ArangoDB transactions. In other words, while you can definitely utilize the view inside your transaction, is is not going to reflect any changes made inside the transaction.
Even when changes are committed, the view is not updated instantly. This process happens in the background and takes time - not much, but enough such that if you query the view immediately after committing a transaction, the results might not fully correspond with the collection. The upper bound of this interval is configurable, see the commitIntervalMsec  property. Please note that modifying this property might have additional performance implications.

Here is a moderately complex example illustrating the above (note how I messed around with the commitIntervalMsec property):
import time
from arango import ArangoClient

client = ArangoClient(hosts="http://localhost:8529")
sys_db = client.db("_system", username="root", password="passwd")

sys_db.delete_database("test", ignore_missing=True)
sys_db.create_database("test")
db = client.db("test", username="root", password="passwd")
col = db.create_collection("Documents")
documents = [{"name": "foo"}, {"name": "bar"}, {"name": "baz"}]

# synchronize the view every 1ms
db.create_view("Documents_view", "arangosearch",
               properties={"commitIntervalMsec": 1, "links": {"Documents": {"fields": {"name": {}}}}})

col.insert({"name": "initial_doc"})
# wait for the view to sync
time.sleep(0.1)

txn_db = db.begin_transaction(read=col.name, write=col.name)
for doc in documents:
    txn_db.insert_document(collection=col.name, document=doc)

# wait for the view to sync
# documents that are not committed will not be in the view
time.sleep(0.1)
cursor = txn_db.aql.execute(
    query="""
        FOR o IN Documents_view
        RETURN {
           name: o.name,
        }
    """
)

print("documents in view:")
print(list(cursor))

cursor = txn_db.aql.execute(
    query="""
        FOR o IN Documents
        RETURN {
           name: o.name,
        }
    """
)
print("documents in collection:")
print(list(cursor))

txn_db.commit_transaction()

# must wait for the view to sync
time.sleep(0.1)

txn_db = db.begin_transaction(read=col.name, write=col.name)
cursor = db.aql.execute(
    query="""
        FOR o IN Documents_view
        RETURN {
           name: o.name,
        }
    """
)
print("documents in view:")
print(list(cursor))
txn_db.abort_transaction()

The output is:
documents in view:
[{'name': 'initial_doc'}]
documents in collection:
[{'name': 'initial_doc'}, {'name': 'foo'}, {'name': 'bar'}, {'name': 'baz'}]
documents in view:
[{'name': 'initial_doc'}, {'name': 'foo'}, {'name': 'bar'}, {'name': 'baz'}]

By design, arangosearch views were more intended to simplify and optimize long-running queries, sometimes involving complex text searches. Due to this fact, some design decisions had to be made in order to optimize specifically for fast searching. With distributed systems it's often the case that one has to choose between optimizing for fast lookups vs optimizing for "immediate" data availability. There's lots of things running under the hood (replication, disk syncing, etc). Sometimes optimizing in one place introduces limitation in another (frustrating, I know) 😬
Please let me know if this sheds some light onto the subject.

So the behavior was indeed intended. Thank you for the clarification


On live-delivery-change message request to mediator should reply with status response with "live_delivery": true set to true on a connection capable of live delivery

As per the message pickup spec (https://didcomm.org/messagepickup/3.0/ )
When live-delivery-change message is sent on ws (Message Type URI: https://didcomm.org/messagepickup/3.0/live-delivery-change)
mediator response should contain "live_delivery": true  in the status message (Message Type URI: https://didcomm.org/messagepickup/3.0/status)
Though this field is optional it will be nice to have

I'm going to do a PR for this.
@mineme0110 can we close https://github.com/FabioPinheiro/scala-did/issues/209 . I'm going to the improvements here


Error with multiple covariates using pertypy.tl.Sccoda()

Report
I am trying to using code from the "Compositional Analysis" tutorial from Single Cell Best Practices to analyze compositional differences in cell types along two dimensions (two covariates). When I run sccoda_model.load() using my two covariates ('age' and 'region', see below):
sccoda_model = pt.tl.Sccoda() sccoda_data = sccoda_model.load(     adata,     type="cell_level",     generate_sample_level=True,     cell_type_identifier="cell_type",     sample_identifier="replicate",     covariate_obs=["age","region"], )
I get the following error:
"Covariate region has non-unique values! Skipping...". However, the categories in "region" are unique. The same results when I run the above with "region" as the sole covariate, but not when I run with "age" as the sole covariate. Both are categorical types in pandas series. Any ideas on the source of this issue would be greatly appreciated, thanks!
Version information
No response

Hi @schroeme,
the message "Covariate region has non-unique values! Skipping..." refers to the uniqueness of your region column with respect to the sample_identifier replicate. There seem to be cells from different regions in your data that have the same value for replicate. On the other hand, age seems to be different for every replicate.
If you want to group your data by replicate and region, you can pass them as a list to sample_identifier.

Unfortunately, we don't support plotting with 2 or more covariates yet. We can keep this suggestion in mind for potential future updates, though!

I am facing the same issue. I am not sure what I am missing here as you can see the cell numbers are different between the Samples and phase. They are also diffrent between the Celltype_annotation.
sccoda_model = pt.tl.Sccoda()
sccoda_data = sccoda_model.load(adata,
                                type="cell_level", generate_sample_level=True,
                                cell_type_identifier="Celltype_annotation",
                                sample_identifier = "Sample",
                                covariate_obs=["phase"])

Covariate phase has non-unique values! Skipping...

adata.obs['Sample_phase'].value_counts()
HT4_G2M    2656
HT1_G2M    2291
HT2_G2M    2230
HT4_G1     1531
HT2_G1     1496
HT1_G1     1465
HT4_S      1059
HT2_S      1028
HT1_S       937

As you suggested here, it works well with sample_identifier as phase and without any covariate. Is there any workaround to this problem for including the Sample layer into the formula?

Hi @schroeme, the message "Covariate region has non-unique values! Skipping..." refers to the uniqueness of your region column with respect to the sample_identifier replicate. There seem to be cells from different regions in your data that have the same value for replicate. On the other hand, age seems to be different for every replicate. If you want to group your data by replicate and region, you can pass them as a list to sample_identifier.

Hi @kvshams,
you seem to have 3 values for Sample and 3 values for phase in your dataset. The warning occurs because there are cells with multiple possible phase values for each Sample value (e.g. G2M, G2 and S for HT4). If you only use Sample as your sample identifier, scCODA will try to create 3 samples (HT4, HT2, HT1), but it's unclear which value of phase should be assigned to each sample.
Therefore (assuming that each combination of conditions has only one replicate) you should use both Sample and phase as your sample identifier (passing them as a list).

@johannesostner Thank you for the explanation. It works like a charm!

@johannesostner I have the impression that we might need to improve the documentation here a bit? Would you be interested in filing up a PR for this? Else I can try to have a stab at it later

I can try to improve the documentation on this. Guess that a few examples/short explanation will help a lot there


Error: src refspec master does not match any

bazel run go:bazoku-deployment --platforms=@io_bazel_rules_go//go/toolchain:linux_amd64
INFO: Analyzed target //go:bazoku-deployment (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
Target //go:bazoku-deployment up-to-date:
  bazel-bin/go/bazoku-deployment-bazoku
INFO: Elapsed time: 0.424s, Critical Path: 0.00s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
------------------------------
checking authentication..
<EMAIL_ADDRESS>------------------------------
Starting heroku deployment of reterterter using bazoku..
Adding heroku-binary-buildpack to reterterter..
------------------------------
error: src refspec master does not match any
error: failed to push some refs to 'https://git.heroku.com/reterterter.git'

I get failed error. How to fix it?

Hi @anton21m, we'll be taking a look at this sometime this week. Thank you for raising.

I found problems here:
https://github.com/salesforce/bazoku/blob/43874a3ee30e0ce3289382c326d1f4c27a028268/bazoku.bzl#L71
it need replace on git push heroku main -f --quiet

@anton21m this should be fixed with v0.3.0 which was just released. Thank you for raising the issue & let us know how it goes.


Cli and config fixes

This PR fixes a couple of problems I've run into:

Newer clap versions panics when there's more value names than max values which is a problem for the bool based config arguments.
The order of the Config struct is wrong for the serializer which results in an error when writing a config containing for example both search_dirs and default_session.

There's  also a minor feature (or bug fix depending on how you look at it) that makes it possible to separate commands instead of having to have it in one command to avoid it being overwritten.

This looks great
Thanks!


⚠ Bofrost.at has degraded performance

In 03fa7b2, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 948 ms

Resolved: Bofrost.at performance has improved in 166d234.


feat: collect filters metrics in scanner

I hereby agree to the terms of the GreptimeDB CLA.
Refer to a related PR or issue link (optional)
What's changed and what's your intention?
This PR adds ReaderFilterMetrics and collects it for SeqScan and UnorderedScan.
Checklist

[ ] I have written the necessary rustdoc comments.
[ ] I have added the necessary unit tests and integration tests.
[ ] This PR requires documentation updates.

@coderabbitai summary


Is there any way to specify a maxParsingTime as in PegDownProcessor?

We have migrated from PegDown to flexmark, but we are missing an option to limit the execution time of the parser.
Something like maxParsingTimeInMillis in PegDownProcessor:
public PegDownProcessor(long maxParsingTimeInMillis)

Or is there any other way to stop the parser after some time?

@cng-pvl, this option does not exist because the parser does not suffer from pegdown's edge case parsing going into tens of seconds or infinity. The option was added as a stop gap measure to deal with the problem. It was not a "feature".
My benchmarks for 10k+ line file of more than 500k in size, has less than 5ms parse time.
See https://github.com/vsch/flexmark-java#benchmarks
In the case of flexmark parser you should limit the parse time by limiting the maximum size of files that you allow to be parsed. Something on the order of 1MB for about 10-20ms parse time would be a good choice.
On average flexmark parser is 20x to 30x faster on non-edge case input than pegdown. So you should experience less resource load from the parser.

BTW, it was this problem with pegdown, more than any of its other shortcomings that motivated me to write its replacement for my project.

Thank you for your very fast response!
I think we will try to limit the max file size as you suggested.


Support for SagePay Direct Simulator

Currently testMode goes to the SagePay testing environment.
This is the version that accounts must send transactions to in order to approve an integration and functions very similarly to the live environment but is not very good for development.
SagePay also provide a simulator. This is a more flexible test system that is more relaxed about credit card details and provides functionality to simulate response types (invalid, declined, 3dauth etc.). This makes development much easier as you can simply decide in the simulator UI what responses you wish to return.
It would be great to get support for this into this gateway. At the moment the docblock in omnipay/common specifies that testMode should be boolean (https://github.com/thephpleague/omnipay-common/blob/master/src/Omnipay/Common/AbstractGateway.php#L155) but that doesn't seem to be enforced anywhere. In fact, in the tests it is treated like any other parameter (https://github.com/thephpleague/omnipay-common/blob/master/tests/Omnipay/Common/Message/AbstractRequestTest.php#L376) indicating that we should be able to put anything we like in there.
I suggest using false, true and 'simulator' as values to preserve current functionality. I suppose we could also use a value of 2 although whichever way we've got type mixing.
Am happy to create a PR for this, if it's something other would find utility in.

Ok, it looks like the simulator has been deprecated for protocol v3 and above. That's a shame but I geuss it makes this unnecessary.


Provide a way to allow explicit overrides of subdependency versions of top level packages in pipfile

I apologize if this was raised before, but if it was I was unable to find it.
We're trying to start using pipenv but we ran into a use case in which we'd need to override a declared version of a library in another library, knowing well that the first library would continue to work with the newer version even though it declares a specific one.
For context, the problem is that a library requires pyopenssl==0.13, but in high sierra the minimum version that works is 0.14 because of the OpenSSL version (https://github.com/cloudera/hue/issues/205) so we need to force at least that version
Right now we have our project working because pip supports overriding depedencies: https://github.com/pypa/pip/issues/988#issuecomment-19237603
However with pipenv, I'm having problems.
If I explicitly install a version that is higher than the one declared in a library, I get a conflict error

New dependencies found in this round:
(...)
**  adding [u'pyopenssl', '==0.13,==0.14', '[]'] **
(...)
Could not find a version that matches u'pyopenssl==0.13,==0.14

So I'd need pipenv to let me override a version, taking full responsibility about the depedency that could potentially not work but willing to take the risk.
Is there a way to do that already? If not, could this be added as a feature request?

Your best bet currently is to put the dependency you want to override in dev-packages -- these will be overridden by dependencies in packages.  So you can put the library that requires pyopenssl==0.13 in dev-packages and then pin pyopenssl==0.14 in packages and you should be able to pipenv lock --dev and pipenv install --dev with no problems

I think this is a pretty legit concern btw - I spent about a week upgrading
all the little packages inside and outside my company that inaccurately
pinned stuff so we could finally use pipenv.
Not sure there’s a great solution per se (except for fixing all the
setup.py’s of the world)
On Thu, Apr 5, 2018 at 7:33 PM Dan Ryan<EMAIL_ADDRESS>wrote:

Your best bet currently is to put the dependency you want to override in
dev-packages -- these will be overridden by dependencies in packages. So
you can put the library that requires pyopenssl==0.13 in dev-packages and
then pin pyopenssl==0.14 in packages and you should be able to pipenv
lock --dev and pipenv install --dev with no problems
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pypa/pipenv/issues/1921#issuecomment-379131833, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABhjqwcuJV6tzMDkoDzBgHaErSE0Y_b4ks5tltQVgaJpZM4TIyH-
.

Not sure there’s a great solution per se (except for fixing all the setup.py’s of the world)

In my very humble opinion, the solution would be to handle it like pip does, let me (the developer of an application that uses a library) decide if I want to take the risk of using a newer version of a sub-dependency, under all the disclaimers of the world.
In my example I know for a fact that the library works ok with a newer version of pyopenssl

Your best bet currently is to put the dependency you want to override in dev-packages

Thank you for this workaround @techalchemy, I'll see if I can make it work like that. However this was but a minuscule example, there are other use cases (a newer version of Flask to use a new feature, or other dependencies for the same reason... the bigger the app, the bigger the chance I'd need to override something), it feels kind dirty solving it like that.
Perhaps a new section called overrides to handle this? All that'd be needed is for pipenv to not "break" when it encounters a conflict if the dependency is listed here? Or maybe a simple argument to skip this validation and just use the newest found?

Yeah I agree, I left this issue open because I don't like workarounds and I think it is the best issue we've had on the topic in terms of articulating the exact nature of what would be desired here, and precisely why the current behavior can't accommodate it.  If I touched the issue and I didn't close it, I was already somewhat convinced

I just ran into this myself, where a package requires an outdated version of dj-database-url and it's impossible to override in Pipfile while it would be trivial to override in requirements.txt.

Since requirements.txt is mentioned I want to mention that it being easy to override is not exactly a good thing. Generally you want to detect incompatibilities ahead of time, say if

I am developing a site with Django 2.0
django-myuberplugin requires django<2.0

and with a Pipfile like this
[packages]
django = ">=2.0"
django-myuberplugin = "*"

This setup would never work. I’d want pipenv install to fail, instead of overriding the sub-dependency, resulting in a broken (and potentially subtly buggy) environment.
I’m not objecting to a way to override subdependency versions—although I’d be satisfied if a tool does not allow it. The version conflict should be resolved by the package maintainer (in this example the author of django-myuberplugin). If a way is provided, it needs to be explicit, and make it clear it is the user’s intention to do so. Something like this could work:
[packages]
django = { version = ">=2.0", override = ["django-myuberplugin"] }
django-myuberplugin = "*"

@techalchemy would you like me to propose a PR for this?
I'm far from an expert in python (I only started working with it about 2.5 months ago) but I can give it a try.
If so, which solution would you prefer? A new section at the dev-packages level with a list of overrides maybe?

I think @uranusjr's suggestion of an override at the level of individual package<->requirement pairs would make sense, since that can be read as "use this dependency declaration to override the corresponding declaration for these other packages".
So you'd still need to do the detective work to figure out which packages are causing conflicts, but once you've found them, you could work around the issue immediately in Pipfile, rather than needing to wait for new releases of the projects with overly specific dependency declarations.

Yeah this feels like a pipfile level change— an extra package argument like override = “<thing to override>” or some better word I haven’t thought of

After discussing this, I think we want to go with django-myuberplugin = {version = ">=x.y", ignore = ["django"]}

If this is the wrong place for this, I apologize. I did my best to make sure this was not a duplicate bug, and it feels very related to this forum.
I believe I have a similar problem, but I am not quite certain...
Working with python 3.6.4, pipenv version 2018.05.18, I am attempting to install a package and its sub-requirement at particular levels.
tb-nightly = "==1.10.0a20180621"
tf-nightly-gpu = "==1.10.0.dev20180620"

Running -v while trying to figure out why Pipenv kept finding incompatible versions, I see:
tb-nightly<1.11.0a0,==1.10.0a20180621,>=1.10.0a0
as the final entry on a stable package solution, which is the desired solution, but the I get the warning:
Could not find a version that matches tb-nightly<1.11.0a0,==1.10.0a20180621,>=1.10.0a0
I think I see the problem... the maintainers of tb-nightly and tf-nightly (tensorboard and tensorflow, aka Google) have named their versions such that pipenv does not recognize that  1.10.0a20180621 is > 1.10.0a0 and less than 1.11.0a0.
For now, I am just skipping the lock file for my deployments of our latest models... which feels wrong, but does let us move onto to other problems. Is there a better way to address this? Is this the intended behavior of pipenv or is specifying dependency versions still a WIP?
pipenv installed via sudo -H pip install pipenv on Ubuntu with an Intel CPU.

I don’t think it is the same. Please open a new issue.

I have an interesting issue which seems to be a dependency resolution problem (or circular dependency somewhere) — or a case for overriding/enforcing dependencies of dependencies.
My objective is to replicate the setup of a vendor (done on a remote server), so I am using Python and pipenv locally to install the required software — down to the Python version. And most of this works great!
When I am done, I have incompatibilities though (errors from the openstack CLI) which I think come from an update to one of the packages.
I started with a clean install, trying to figure out how or where the openstacksdk package is updated (despite it having a ==0.9.13 version pinned in my Pipfile) and it turns out, one of the dependencies of it, probably requests an upgrade because someone though >= is a good idea in requirements.
In my case, it turns out that one of the dependencies lists a dependency on osc-lib as >=1.2.0, so in case, it installs 1.11.x and then upgrades the openstacksdk again. The fix/work-around, is to install/list it first with an explicit requirement on 1.2.0 and then it proceeds with that and openstack --help returns meaningful output (instead of module errors).
So I am guessing that it's impossible to go back and fix releases, especially those 1+ year old, etc.. But how to deal with it in the present?
I thought I'd add this as another use-case of where to override dependencies in packages. Maybe the output could be improved to list which dependency requested the output? Or something like "select lowest version" or "honour Pipfile"? Selecting the lowest version (1.2.0) would have solved this as well.
I am also confused a bit by the output, "successfully installed", followed by "unable to resolve dependencies".
$ pipenv install --keep-outdated openstacksdk==0.9.13
Installing openstacksdk==0.9.13…
Collecting openstacksdk==0.9.13
  Using cached https://files.pythonhosted.org/packages/d2/c0/4ed0e87c58191a56b54d8d1f35c3df930e17e574083c93d7a3bcea4a266b/openstacksdk-0.9.13-py2.py3-none-any.whl
Collecting pbr>=1.8 (from openstacksdk==0.9.13)
  Using cached https://files.pythonhosted.org/packages/f3/04/fddc1c2dd75b256eda4d360024692231a2c19a0c61ad7f4a162407c1ab58/pbr-5.1.1-py2.py3-none-any.whl
Collecting keystoneauth1>=2.18.0 (from openstacksdk==0.9.13)
  Using cached https://files.pythonhosted.org/packages/39/e8/bd409d9ed0dde60d5f2db50398e11ec95dd7eeed62fd40a7a319720faa6f/keystoneauth1-3.11.1-py2.py3-none-any.whl
Collecting six>=1.9.0 (from openstacksdk==0.9.13)
  Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Collecting os-client-config>=1.22.0 (from openstacksdk==0.9.13)
  Using cached https://files.pythonhosted.org/packages/e5/af/2f3bf859a25c98993f85ff1eb17762aa49b2f894630ebe99c389545b0502/os_client_config-1.31.2-py2.py3-none-any.whl
Collecting stevedore>=1.17.1 (from openstacksdk==0.9.13)
  Using cached https://files.pythonhosted.org/packages/35/fa/8683fab2a6e15ecfe107996e56fab91e52fe3ec0b40ca9440a0e1ffe6892/stevedore-1.30.0-py2.py3-none-any.whl
Collecting iso8601>=0.1.11 (from keystoneauth1>=2.18.0->openstacksdk==0.9.13)
  Using cached https://files.pythonhosted.org/packages/ef/57/7162609dab394d38bbc7077b7ba0a6f10fb09d8b7701ea56fa1edc0c4345/iso8601-0.1.12-py2.py3-none-any.whl
Collecting requests>=2.14.2 (from keystoneauth1>=2.18.0->openstacksdk==0.9.13)
  Using cached https://files.pythonhosted.org/packages/f1/ca/10332a30cb25b627192b4ea272c351bce3ca1091e541245cccbace6051d8/requests-2.20.0-py2.py3-none-any.whl
Collecting os-service-types>=1.2.0 (from keystoneauth1>=2.18.0->openstacksdk==0.9.13)
Collecting urllib3<1.25,>=1.21.1 (from requests>=2.14.2->keystoneauth1>=2.18.0->openstacksdk==0.9.13)
  Using cached https://files.pythonhosted.org/packages/62/00/ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/urllib3-1.24.1-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests>=2.14.2->keystoneauth1>=2.18.0->openstacksdk==0.9.13)
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting idna<2.8,>=2.5 (from requests>=2.14.2->keystoneauth1>=2.18.0->openstacksdk==0.9.13)
  Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests>=2.14.2->keystoneauth1>=2.18.0->openstacksdk==0.9.13)
  Using cached https://files.pythonhosted.org/packages/56/9d/1d02dd80bc4cd955f98980f28c5ee2200e1209292d5f9e9cc8d030d18655/certifi-2018.10.15-py2.py3-none-any.whl
Installing collected packages: pbr, six, stevedore, iso8601, urllib3, chardet, idna, certifi, requests, os-service-types, keystoneauth1, os-client-config, openstacksdk
Successfully installed certifi-2018.10.15 chardet-3.0.4 idna-2.7 iso8601-0.1.12 keystoneauth1-3.11.1 openstacksdk-0.9.13 os-client-config-1.31.2 os-service-types-1.3.0 pbr-5.1.1 requests-2.20.0 six-1.11.0 stevedore-1.30.0 urllib3-1.24.1

Adding openstacksdk to Pipfile's [packages]…
Pipfile.lock (a258b9) out of date, updating to (ad4c3a)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…

Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  First try clearing your dependency cache with $ pipenv lock --clear, then try the original command again.
 Alternatively, you can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches openstacksdk==0.9.13,>=0.13.0
Tried: 0.6.0, 0.6.0, 0.6.1, 0.6.1, 0.6.2, 0.6.2, 0.7.0, 0.7.0, 0.7.1, 0.7.1, 0.7.2, 0.7.2, 0.7.3, 0.7.3, 0.7.4, 0.7.4, 0.8.0, 0.8.0, 0.8.1, 0.8.1, 0.8.2, 0.8.2, 0.8.3, 0.8.3, 0.8.4, 0.8.4, 0.8.5, 0.8.5, 0.8.6, 0.8.6, 0.9.0, 0.9.0, 0.9.1, 0.9.1, 0.9.2, 0.9.2, 0.9.3, 0.9.3, 0.9.4, 0.9.4, 0.9.5, 0.9.5, 0.9.6, 0.9.6, 0.9.7, 0.9.7, 0.9.8, 0.9.8, 0.9.9, 0.9.9, 0.9.10, 0.9.10, 0.9.11, 0.9.11, 0.9.12, 0.9.12, 0.9.13, 0.9.13, 0.9.14, 0.9.14, 0.9.15, 0.9.15, 0.9.16, 0.9.16, 0.9.17, 0.9.17, 0.9.18, 0.9.18, 0.9.19, 0.9.19, 0.10.0, 0.10.0, 0.11.0, 0.11.0, 0.11.1, 0.11.1, 0.11.2, 0.11.2, 0.11.3, 0.11.3, 0.12.0, 0.12.0, 0.13.0, 0.13.0, 0.14.0, 0.14.0, 0.15.0, 0.15.0, 0.16.0, 0.16.0, 0.17.0, 0.17.0, 0.17.1, 0.17.1, 0.17.2, 0.17.2, 0.18.0, 0.18.0, 0.18.1, 0.18.1, 0.19.0, 0.19.0
There are incompatible versions in the resolved dependencies.

The thing is, installation is not the same as dependency resolution.  If all you care about is installation, pip already has you covered.  If you don't want your dependencies to get obliterated by one another in the process of serially installing them, then dependency resolution is rather important.
In any event, all you've shown is your attempt at pinning a version of openstacksdk which you already knew was not compatible with the dependencies you have installed.  Like the message says, you have something in your packages that is demanding a higher version.  You can't simply brute force a lower version until that problem is solved.  You can run pipenv install --skip-lock and then pipenv graph to inspect the situation and see the hierarchical structure involved, or you can run pipenv lock --verbose (but you definitely need to unpin your openstacksdk dependency).

@techalchemy my problem is that even though I pinned openstacksdk in my Pipfile, it got updated because one of the sub(-sub)-dependencies requested something else. And there was no error for that. The install "completed" as dependencies could be resolved. But the result was broken software.
The problem of the constraints is not something that you can fix. That's PRs to the individual projects, etc..
The problem is that it didn't honour my pinned version. It just upgraded it.
Maybe that's a different issue? If so I apologise for adding noise here.
(And yes, I ran --skip-lock and the graph to inspect it and then installed other dependencies first so I could work around it with --keep-outdated (as I said).)

@till, the previously proposed solutions would roughly allow you to specify that the particular package's dependency on >=0.13.0 should be ignored.  The effect would be that a pin you do to ==0.9.13 could be satisfied (assuming no other conflicts).  Would this be satisfactory?
I generally like the idea of being able to override a particular individual thing, a single package's requirement for another package/version.  I would note that there are various possible things you may want to express when overriding though so a general solution that let's you specify a substitute requirement including regular version specifiers and even multiple dependencies would be good.

The sub-dependency isn't actually required at all for this use case
The sub-dependency version restrictions are incorrect and should be replaced

Including keeping the dependency but with no version restriction)

Something else could be used to satisfy the requirement

PIL->pillow or other forks or compatible package alternatives etc

Multiple other packages

Say a package gets split in a newer version and we need to specify multiple things, or their versions

So it's really like we want to be able to take the existing dependency, say openstacksdk>=0.13.0 and replace it with pretty much any other arbitrary dependencies.  It seems like it would be good to keep this substitution related to that package rather than simply deleting the dependency and making our own unrelated dependency elsewhere.  But perhaps it can be argued that that causes significant complication with minimal value, I haven't thought through it in detail yet.
Now we get more complicated because really this should probably be reviewed if the package with the overridden dependency ends up at a new version...  In other words, a notification/warning/error in this case would be helpful.  Good fun.
This seems like a messy rabbit hole but I can't convince myself that it's not an important use case.  There's too much room for opinion and pragmatic 'there will be errors' to just say 'go fix the original package'.

@altendky yes, that! ;) It's a follow the white rabbit thing! :D
On a more serious note, I realise the problem is also with the packages I am using. E.g. >= to say the least. Maybe it would also suffice to add a warning and not add the complication of fixing package requirements from the installer?
"Your Pipfile contains ==foo-1.3.8, but bar.foo.foobar requests >=foo-1.4.0."
bar.foo.foobar could be a tree to say:

my first dependency is bar
bar's dependency is foobar

It just doesn't do that at all, instead I had broken code.
Maybe that doesn't introduce a whole world of new hurt to this project? Then I can still figure out how to make things work, which is not ideal (for me), but would have been much more straight forward. The graph seems to have most of the info already, maybe it can be presented in a different form.

@techalchemy, I like your suggestion. I would be really useful to me right now if I could use ignore do this:
azure-cli = { {version = ">=2.0.66", ignore = ["cryptography"] }

because of setup.py dependency errors like https://github.com/Azure/azure-cli/issues/9629.

Thanks for bringing this back up -- I've spent a lot of time thinking this over and I currently am happy we never implemented this.  I think that since the tool we maintain is pipenv we need to respect Pipfile as the single source of truth
That means that if you specify a pin in your pipfile, I'm thinking we should probably raise a warning or something to let you know that it is in conflict with something else we encountered, but to prefer the explicit dependency you provided and assume you are doing so to override something else.
Currently, pipenv has a significant usability issue around this and I encounter it myself somewhat regularly -- it's pretty challenging to override a conflict you know is invalid. That's not something I'm ok with & I feel the best approach (per @altendky's insights above among others) is to just allow overrides.
/cc @ncoghlan @uranusjr -- this is mainly a UX concern on the design here because it definitely needs to be possible

Since requirements.txt is mentioned I want to mention that it being easy to override is not exactly a good thing. Generally you want to detect incompatibilities ahead of time. Say if

I am developing a site with Django 2.0
I’m looking into django-myuberplugin, which requires django<2.0

This setup would never work.
So I’d want pipenv install to fail with this Pipfile:
[packages]
django = ">=2.0"
django-myuberplugin = "*"

instead of overriding the sub-dependency, resulting in a broken (and potentially subtly buggy) environment.
I’m not objecting to a way to override subdependency versions—although I’d be satisfied if a tool does not allow it. The version conflict should be resolved by the package maintainer (in this example the author of django-myuberplugin). If a way is provided, it needs to be explicit, and make it clear it is the user’s intention to do so. Something like this could work:
[packages]
django = { version = ">=2.0", override = ["django-myuberplugin"] }
django-myuberplugin = "*"

I think this is grabbing the donkey by the wrong end. The dependency that we want to override is not on django, it is on django-myuberplugin. I'd much prefer to see something like this:
[packages]
django = ">=2.0"
django-myuberplugin = { version = "*", override=["django>=2.0"] }

That clearly says to me that the project:

wants django >= 2.0
wants django-myuberplugin, and pipenv should consider that library to have a dependency of django>=2.0, regardless of what version of django is actually specified by django-myuberplugin

For reference, I came across this issue when trying to work out a way to use a library (flake8-black) that has a dependency (black) that has no release that is not pre-. The latest flake8-black specifies that it wants black>=19.3b0; the project Pipfile specifies that it wants black==19.3b0. This causes pipenv to look for the latest released version of black, there is no released version and so kabloom. If I was able to specify an override to the deps for flake8-black, then I would be able to lock.

To me the two are the same intention expressed differently (using the same keyword):

I want django>=2.0, and this intention overrides django-myuberplugin’s.
I want django-myuberplugin, but override its django intention to django>=2.0.

FWIW both makes sense to me and I don’t have a preference either way. But the more important issue here is to find someone interested in actually implementing this; design details don’t really matter otherwise 😛

@tevansuk For the specific case of pre-release only packages, see #1760 for some further discussion. Fixing that doesn't need an override syntax, it needs improvements to the way pip handles pre-releases.

I am running into the same issue between two of my dev-packages. apache-airflow==1.10.7 and faker>=2.0.2 yields the following resolution:
adding ['text-unidecode', '==1.2,==1.3', '[]']

which is a non-breaking constraint (API-wise) because only the license changed between 1.2 and 1.3
Unfortunately @techalchemy 's workaround did not work for me, so I resorted to pinning faker==2.0.1 which requires the same text-unidecode version as apache-airflow==1.10.7, otherwise I'd be stuck and unable to use apache-airflow and faker at the same time with Pipenv.
Is there still any plan to implement explicit overrides? Looks like there was some discussion in this thread but it fizzled out with no resolution. If resources are lacking, I'm also happy to take a stab at a prototype to jumpstart this feature.

Would it be an option to bring this up to either apache-airflow or faker maintainers? I’m quite sure they have explicit reasons to pin versions like this (likely licensing), and in that case it actually serves as an example against explicit version overwrite, because that is exactly the thing you shouldn’t do in this situation.

@uranusjr That's a fair point, thanks for pointing that out. apache-airflow is on text-unidecode==1.2 which looks like the version with the more restrictive license so I'll bring it up to them.
That aside, how do pipenv maintainers feel about this override feature? I'd imagine that this situation comes up quite often, as this thread and other GH issues have alluded to.

It comes up semi-often. I've had to sometimes spend days trying to track down the maintainers of some package dependencies and ask/beg them to widen their proverbial net, so to speak.

@timorthi I am not against the idea. I think you can start by discussing this with pip-tools maintainers for directions (Pipenv currently uses it internally for dependency resolution). It would likely be a very involved task though.

Isn't the new dependency resolution enforced by the latest versions of pip making this issue a no-go? This started as "pip permits this overrides" but AFAIU this is won't so anymore and I don't see how pipenv could work around it in any way.

I think @uranusjr 's point about faker is even more relevant now than it was at the time of their comments. If a dependency in my project stops being maintained or stops being an acceptable package to use, forking that project to create a drop in replacement or finding another project which operates as a drop in replacement is a use-case that should be supported in my opinion.
Given that this is fully based on user experimentation however, it should be up to the programmer to determine what sub-dependencies from the package described in the Pipfile should be included. This can simply be done by including those packages themselves in the Pipfile.
pip allows for installation of packages with the --no-deps flag which could be used with the methodology I've described to allow developers to manage their sub-dependencies with more control and without needing to wait for packages to update their own dependencies.

On the topic of drop in replacements, this is already supported in NPM 8 via overrides. It's also something that's required for GPL/LGPL compliance (although falling back to pip in that case also works).

If a dependency in my project stops being maintained or stops being an acceptable package to use, forking that project to create a drop in replacement or finding another project which operates as a drop in replacement is a use-case that should be supported in my opinion.

This is a really important use-case to consider and most other package managers handle this case. Why was this closed as "not planned" without addressing this need?


unable to authenticate user

SQL1639N  The database server was unable to perform authentication because
security-related database manager files on the server do not have the required
operating system permissions.  SQLSTATE=08001
After trying to solve this using: https://www.ibm.com/support/pages/database-connection-fails-authentication-error-sql1639n . I can't set the ownership of those files root, it sets the owner the "nobody" and not root.

See issue reported by @northfig for root cause

Assuming you are using NFS, likely the root cause as issue #22 (refer to my comment for details in there)

Assuming you are using NFS, likely the root cause as issue #22 (refer to my comment for details in there)

Am not using NFS. Using ibmc-file-bronze . The readme doesn't state that you must use NFS

Am not using NFS. Using ibmc-file-bronze . The readme doesn't state that you must use NFS

@NickYoung-01 IBM Cloud implements ibmc-file-bronze as NFS in the background. That is why it fails, and as we cannot influence the export-options to allow root access, it would seem that we need to configure our own NFS server where we can influence these settings :-(

@northfig @NickYoung-01 you can influence the export settings on the file storage in IBM cloud. start up this deamonset - https://github.com/IBM-Cloud/kube-samples/tree/master/daemonset-sample


payable address is broken in tronbox 2.5.1

example:
function testSend(address payable to) public payable {
        to.transfer(msg.value);
    }

error:
Error parsing /home/herpderp123.sol: ParsedContract.sol:62:31: P
    function testSend(address payable to) public payable {
                              ^-----^

I think tronbox compile and tronbox migrate use different solidity compiler version.
I ran tronxbox compile with bad solidity version and it's the log:
tronbox compile
Compiling ./contracts/Bet.sol...

/home/codeminer/test/contracts/Bet.sol:1:1: SyntaxError: Source file requires different compiler version (current compiler is 0.4.25+commit.69a1e720.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version
pragma solidity ^0.6.23;
^----------------------^

and then I ran with this command, tronbox migrate --reset --network shasta, and it's the log:
tronbox migrate --reset --network shasta
(node:5461) V8: /home/codeminer/.npm/lib/node_modules/tronbox/build/cli.bundled.js:207958 Invalid asm.js: Invalid member of stdlib
Compiling ./contracts/Bet.sol...
Compiling ./contracts/Factory.sol...

/home/codeminer/workshop/tronel-contract/contracts/Bet.sol:3:1:
ParserError: Source file requires different compiler version (current compiler is 0.5.4+commit.7b0de266.mod.Emscripten.clang)

as you can see, tronbox use two different solidity version. in tronbox compile it uses 0.4.25, and in tronbox migrate --reset it uses 0.5.4.
and there is another problem that is, payable address is broken, that's true.
Temporary Solution: first make your contract compatible with version 0.4.25 then compile contracts, tronbox compile --compile-all. then deploy contracts with this command, tronbox migrate --network shasta. at least it worked for me.

@metjm @amovah We have a missing compiler version bug in tronbox, the fix is in pull request #16. We will merge and publish a new release after reviewing.

@shenyongri110 can we change compiler version now ?
and this #16 is going to fix which problem? two different compiler or payable address bug ?

@amovah @metjm
I just published TronBox 2.5.2. Could you update and check if now it works, please?
If yes, can you close the issue? Thanks

Oops, the publishing failed. I am trying again.

yes, payable address worked. Awesome

I have the same issue. When I try to compile the contract it uses compiler 0.4.25
Tronbox v2.5.2

Hi Metjm,
I have the old Tronwatch wallet, forgot/didn't to move my coins to another wallet. Now everything is gone, can you please help me? Am a bit desperate now.


Create components to ship easy to adapt applications

Description
fix #2115

Related Issues

Checklist

[ ] Is this code covered by new or existing unit tests or integration tests?
[ ] Did you run make unit_testing and make integration-testing successfully?
[ ] Do new classes, functions, methods and parameters all have docstrings?
[ ] Were existing docstrings updated, if necessary?
[ ] Was external documentation updated, if necessary?

Additional Notes or Comments

A few things which don't work:
In [1]: t.encode() # compare to `t.dict().encode()`
In [2]: db[Variables['bla']].find().variables # gives empty
In [3]: ...

Another bug:
m = ObjectModel(Variable(identifier='test'), object=lambda x: x + 2)
db.apply(t)
mm = db.load('template', t.identifier)
mm.init(db)
mm.object
# <EMPTY>