Resume a previously-aborted post download loop

With this change, Instaloader is capable of resuming a previously-aborted download loop.  To do so, it creates a JSON file within the target directory when interrupted, that contains all the necessary information to later resume that operation.
Resuming an interrupted download is supported for most, but not all targets. It is supported for:

Regular profile posts,
IGTV posts
Saved posts,
Tagged posts,
Explore posts.

This supersedes #683 and closes #636.
I consider it ready to be merged, however open for discussion, critics, testing, etc.

@aandergr, unless I'm missing something, it seems like your solution is optimized for the CLI case where someone is Ctrl-C-ing a command-line session, rather than what seems to me to be a more common case where the caller just wants to get N posts at a time and store the cursor to be resmed later (which is the use case I had in mind.)  Is there a way for the caller to get the state from this iterator programmatically?  Also, I'm not sure I like the idea of creating JSON files as a side effect of a library call vs. having the caller manage that state, which allows for the flexibility of persisting the state to a database.

Is there a way for the caller to get the state from this iterator programmatically?

The NodeIterator provides the method freeze, which returns its state as a FrozenNodeIterator. So the caller could easily stop after N posts, freeze the iterator, and later thaw it on an equally-constructed fresh NodeIterator to resume.
The iterator itself does not save any JSONs or similar, that's the job of the caller.

OK, that sounds great!  I'll try to take a closer look soon.

I'm trying to integrate this with my app, and I see that the size of the FrozenNodeIterator object that comes back is something like 18kb when saved to JSON.  Pardon my ignorance of the way the Instagram API does things, Is all of the data in there necessary to support simply resuming from a stored cursor?  My implementation in #683, twhile not as clean from an API perspective, only required saving the end_cursor attribute, and seemed to work fine.

Strictly speaking, not all of the data is necessary: there are the fields 'query_hash', 'query_variables', 'query_referer' and 'context_username' which are only used to verify that the resume data comes from a matching iterator instance. However, these fields only take up a few hundred bytes.
For resuming, the FrozenNodeIterator contains not only the end_cursor, but all the edges that have not yet been consumed. These might take up several kilobytes, especially when interrupted early within a page.

More efficient given a set of assumptions about the importance of network traffic and API calls vs. storage of the frozen iterators, sure.  It just seems strange to be storing node data in the iterator instead of storing a pointer so that the data can be retrieved in the future.  I'd rather throw away and retrieve the node data the next time I resume, knowing that I'm getting the most up-to-date information from those nodes when I fetch them later.
Is there a way you can adapt this to just require passing those mandatory attributes in, and have it re-fetch the nodes that were read but not consumed prior to freezing the iterator?

With the size of these files typically being below 20 kB compressed (and there being at most one such file per target), I think for the vast majority of use cases, we did the right trade-off here in terms of efficiency and simplicity of the code versus storage. Of course, as soon as this already-big code change proves to be reliable, we can implement alternative options for freezing iterators.

OK.  Guess I'll stick with my personal fork until such options are present.  Thanks.

OK, I'm sorry that this implementation does not fulfill your requirements. May I ask why you are so constrained regarding the FrozenNodeIterator file size?
Anyway, thanks a lot for sharing your thoughts here and for your PoC in #683, which demonstrated the longevity of pagination cursors!

It's not the size constraint so much -- though 20k per feed isn't what I'd call trivial -- but the staleness of the data that concerns me the most here.
What bothers me is the idea of a user loading the first N items in a feed, then having a bunch of retrieved but not consumed items in that feed cached in an iterator object whose job description shouldn't really include caching data under normal circumstances.  Then when the user goes to retrieve more posts from that feed, perhaps days or weeks later, they get the old node data, with expired links to content.
In my experience, Instagram expires URLs fairly often, particularly for videos, or this wouldn't bother me so much.

Then when the user goes to retrieve more posts from that feed, perhaps days or weeks later, they get the old node data, with expired links to content.

Well, that's false and as such just not a valid concern. The only links saved within the nodes are the URL of pictures and the shortcode (being used as a link to fetch more metadata), which I've not seen change within the lifetime of a Post. So the user won't get any expired links to content. The expiry is merely limited to outdated captions or metadata such as "like count" and mistakenly returned nodes that may have been deleted from the feed or that have lost their validity, both cases being very tolerable for the majority of usages.

The display URLs seem to be signed for 30 days, which I still consider sufficient for most cases of resuming a previously-aborted loop, especially since we don't know for sure yet how long pagination tokens are valid, and their expiry might further impose limitations on the resume feature. Either way, as a matter of user-friendliness, we should add a "best before" date to frozen iterators.
We're of course open for any kind of improvements on this in the future. As of now, I think the trade-off is currently between implementation simplicity, and as such risk of errors and unreliability, versus the longevity of frozen iterators (file size is typically no concern while within the magnitude of 10 kB). The current freeze/thaw mechanism is very simple. Maybe I'm overestimating the complexity, but at least one problem I can think of with storing pagination tokens only is that it requires some non-trivial handling of already-consumed nodes (maybe by storing their hashes and omitting equally-hashed nodes at the beginning resuming?). Storing an index number of the next item is obviously not sufficient, since that could lead to missing nodes when previous nodes have been deleted in the meantime.

My solution to the "already-consumed nodes" issue was giving the caller control over the batch/page size, and making it their job to consume the iterator.  This may not work for all use cases, but it worked for mine.
I've never had a pagination token expire on me, for what it's worth, and I had this same resume functionality implemented using a different IG API for many months before switching to this one.
In any event, this is your project, and you clearly know more about the tradeoffs than I do, so I'm not really interested in prolonging the conversation.  I implemented #683 as the most expedient means to an end, storing only the end_cursor token, and have had no issues with it.  I will continue using it until there's a compelling reason to switch.  Thanks for all the work you've put in on this excellent project.

Merged. Thanks for your comments and this discussion, @tonycpsu!


Fix nanosecond lie in HTTP::LogHandler

Fix nanosecond lie in HTTP::LogHandler
A thousand nanoseconds equal to one microsecond.
A thousand microseconds equals to one millisecond.
sigh
My app just got a thousand times slower.

Not only your app, everyone's apps :-(
Maybe Crystal isn't that fast after all... so sad
(Thanks!!)


Any interest in tracking Node.js core style?

Although it's not currently packaged as a shareable config, the style used by the Node core team may be of interest, particularly for code which provides polyfills for Node features (either planned features or backports), but also generally for code which runs on Node.
Would that fall within this project's scope?  If so, is there any interest in including it?  If so, I could work up a PR.
Thanks for considering,
Kevin

Hi @kevinoid it certainly is well within the project's scope and I'd happily take a PR. However, I'm cautious about taking on another unofficial config. Is there an example of the node core config that I could have a look at?

Hey @baer, I can definitely understand that.  Another argument against inclusion is that the coding convention and rationales don't appear to be documented outside of the .eslintrc, so it is not really publicized.  But it is definitely an authority source that people are likely to use for various purposes.  It won't hurt my feelings either way.
The current ESLint configuration being used by Node core is at https://github.com/nodejs/node/blob/master/.eslintrc  I didn't come across any other style guidelines in the contributor documentation, but I may have missed something.

I actually think a PR would be great IF you can be assured that they're running eslint 2.x+. In the 1.x version there were a bunch of hidden defaults which would be annoying to track down. If it's 1.x and that config is all there is to it that should be quick to write and easy to maintain.
Thanks for the suggestion!

Unfortunately, it looks like they are running a copy of ESLint 1.10.3.  Presumably they will upgrade to 2.0 once it is released.  Would it make sense to wait until then to consider adding it?

Sorry... I meant 1.0. 2.x is still in beta. It was the 0.x -> 1.x that made that change.

Gotcha.  Great!  I'll work up a PR.

:zap: :zap: :zap: :zap: :zap: :zap: :zap: :zap: :zap:
Thanks for being a contributor!
:zap: :zap: :zap: :zap: :zap: :zap: :zap: :zap: :zap:

Sure thing.  It's the least I can do, since I requested it.  Any thoughts on what it should be named?  Just node seems ambiguous with the node ESLint environment name or Node rules section or with a style that is "the one suggested for Node.js development".  Maybe node_core, nodeCore, or nodecore (since they are valid identifiers, as opposed to node-core, which might make a better filename)?

Given the file-centric uses and current naming scheme, hyphen separated seems preferable.  I also realized "core" is probably a poor choice, "runtime" seems most accurate as it is used in the project description and is unambiguous.
Unless you object, I'll use node-runtime for the rule and configuration filenames.

Closed by #62


[feature request] ICCV2019 paper

Which project are you using?
TS3
Issue description
Where can I find your ICCV2019 paper "Teacher Supervises Students How to Learn from Partially Labeled Images for Facial Landmark Detection" for now?
Can you provide a pdf copy?Thanks.

@PlumedSerpent  I just uploaded it to arXiv.
It should be available tomorrow, and I will share the link here ASAP.

@D-X-Y Thanks for your sharing. I'll close this issue.

@PlumedSerpent Please find the PDF file in https://arxiv.org/abs/1908.02116

@D-X-Y OK，I find it, thank you.


add xsim++ task under retrieval category

Checklist for adding MMTEB dataset

Reason for dataset addition:

[x] I have tested that the dataset runs with the mteb package.
[x] I have run the following models on the task (adding the results to the pr). These can be run using the mteb run -m {model_name} -t {task_name} command.

[x] sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
[x] intfloat/multilingual-e5-small

[x] I have checked that the performance is neither trivial (both models gain close to perfect scores) nor random (both models gain close to random scores).
[x] If the dataset is too big (e.g. >2048 examples), considering using self.stratified_subsampling() under dataset_transform()
[x] I have filled out the metadata object in the dataset file (find documentation on it here).
[x] Run tests locally to make sure nothing is broken using make test.
[x] Run the formatter to format the code using make lint.
[ ] I have added points for my submission to the points folder using the PR number as the filename (e.g. 438.jsonl).

@KennethEnevoldsen
Sorry, I have opened a new PR for the previously closed PR https://github.com/embeddings-benchmark/mteb/pull/601 as I accidentally messed up with the sync of the forked repo.
I was trying to make the current dataset compatible with fast loading but however, it seems I am getting the following error. I did look up the issue (https://github.com/huggingface/datasets/issues/5612) on datasets library but it seems that issue is not resolved.
raise ValueError(f"Arrow type {arrow_type} does not have a datasets dtype equivalent.")
ValueError: Arrow type large_list<item: large_string> does not have a datasets dtype equivalent.

Please let me know how we should proceed for this PR.

Isn't this by definition a CrossLingual Task (EN-Other languages) and therefore, shouldn't this extend the CrosslingualTask instead of MultilingualTask? Then you would also need to change your language definitions

Added some comments in the previous PR #601  as I am implementing something similar now and I have been working on the same issues.

Isn't this by definition a CrossLingual Task (EN-Other languages) and therefore, shouldn't this extend the CrosslingualTask instead of MultilingualTask? Then you would also need to change your language definitions

I would use the cross-lingual in this case.
Regarding the fast loading since you overwrite the load_data method I don't believe it would actually do anything.
Atm. however I examined the comments of @Andrian0s (in the original PR). These seem to raise whether the current task formulation is relevant. I believe it might be worth taking that discussion first before moving on. @jaygala24 will you address the comments (let us keep it in this thread) - it might be worth either introducing a variant task (which seems to be required due to the encode_corpus/encode_query).

This PR #560 will allow Retrieval tasks to handle CrossLingual tasks also

@jaygala24 seems like this PR has gone stale. Will close it for now but feel free to re-open it if you want to finish it up

@KennethEnevoldsen Sorry, I was away due to some personal reasons so couldn't follow up with the discussion here. I'll review the entire discussion and then either re-open this PR or make a new PR.

Wonderful @jaygala24 glad to have you back!


FeatureView overwrites feature in source

What is the purpose of the change
FeatureView overwrites the feature in the source if they have the same name when using FlinkProcessor
Brief change log

Update FlinkProcessor to overwrite the feature in the source if the feature in FeatureView has the same name.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

@lindong28 Could you review this PR?

@lindong28 Thanks for your review. I updated the PR. Could you please take another look?

@lindong28 I updated the PR to address the last comment. Could you please take another look?

@lindong28 Thanks for your review. I updated the PR. Could you please take another look?

Thanks for the update. LGTM.


Add onFailure method to GraphHook

If any exceptions are thrown whilst executing an operation chain the onFailure method should be called on each graph hook. This will allow GraphHooks that need to log errors to be able to do so.

Merged into develop.


Update the badge in README to point to github action results

The badge currently points to travis. Github actions can generate badges as well. See the official documentation.

Are you sure? It seems to point to github actions to me.
https://raw.githubusercontent.com/ddasilva/ccsdspy/main/README.rst

You are right. This got fixed at some point.


fix: remove subpath from package.json

Codecov Report

Merging #11 (0bb76ca) into main (69d1eba) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #11   +/-   ##
=======================================
  Coverage   90.02%   90.02%
=======================================
  Files          27       27
  Lines        1293     1293
  Branches      341      341
=======================================
  Hits         1164     1164
  Misses        118      118
  Partials       11       11

Continue to review full report at Codecov.

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


Adding support for Booster v1.6 channels

This PR fixes #233 by adding an additional ON/OFF toggle during the channel initial power-up.
It's not currently known if this is sufficient to clear the interlocks in all cases because of the unknown states of the power detectors during the power-up process. If the power detectors create transient voltage outputs that exceed the interlock thresholds, the channels will power up in a tripped state.
However, the most likely case is that the power detectors will remain low during the power-on process and the interlock will not trip, so there's relatively high confidence that this should address v1.6 concerns.

TESTED ON BOOSTER HL v1.6
{
"firmware_version": "v0.4.0-16-g343e7a9",
"rust_version": "rustc 1.62.1 (e092d0b6b 2022-07-16)",
"profile": "release",
"git_dirty": false,
"features": "DEFAULT, PHY_W5500, W5500",
"panic_info": "None",
"watchdog": false,
"hardware_version": "Unknown (0b101)"
}
input_power = -25 dBm
expected output_power = +8 dBm
output_interlock_threshold = +20.0 dBm
action: changing channel state from "Off" to "Enabled"
action: clearing interlock with a button
action: saving configuration to EEPROM
action: power off Booster for 1 minute
action: power on Booster
result: channel is enabled but interlock is tripped (can be reset with a button)

bors try

bors try

bors try

Bors r+

Bors merge


Problem Forking

After following these instructions:

Go to https://git.door43.org/Door43/SourceTextRequestForm and click the “Fork” button in the upper right.
Once that is completed, go to https://git.door43.org/chrisjarka/SourceTextRequestForm/src/master/.github/ISSUE_TEMPLATE.md and edit the file (paste in your wanted text).
Once that is done and saved, go to https://git.door43.org/Door43/SourceTextRequestForm/pulls and click “New Pull Request"

Christine got the following error:

I can't reproduce, maybe it's been fixed?


Emit footprint in CLI

This updates the CLI output to read eg:
 2620kB  dist/strong-globalize/cldr/cldr_32.0.1.json
 2620kB  dist/cldr/cldr_32.0.1.json
 6037kB  dist/index.js
16625kB  [15995ms]

instead of:
 2620kB  dist/strong-globalize/cldr/cldr_32.0.1.json
 2620kB  dist/cldr/cldr_32.0.1.json
 6037kB  dist/index.js [15995ms]

This is mainly to more easily assess #117.

Codecov Report

Merging #120 into master will decrease coverage by 0.49%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master     #120     +/-   ##
=========================================
- Coverage   75.11%   74.61%   -0.5%
=========================================
  Files          10       10
  Lines         450      453      +3
=========================================
  Hits          338      338
- Misses        112      115      +3

Impacted Files
Coverage Δ

src/cli.js
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Allow user to input info for specific character

Picture, name, physical appearance, abilities, moral alignment, backstory, personality

maybe return in our free time


MultiBinary action space in NES game

I'm working with a game that has a Multi-Binary action space (with 9 spots). Where can I find a documentation that explains what each action does?

Each of the indices corresponds to the buttons listed here: https://github.com/openai/retro/blob/master/cores/nes.json#L6. Note that one of them is null--this is due to the way the libretro backend is designed, so you can safely discard values in that index.

Thanks!


Only installs on Python 2

The documentation doesn't indicate this, but the LargeVis Python wrapper seems to be written as an extension module for Python 2 only. If the active environment is Python 3, then python setup.py install will fail with this error:
LargeVismodule.cpp: In function ‘PyObject* initLargeVis()’:
LargeVismodule.cpp:130:40: error: ‘Py_InitModule’ was not declared in this scope
  Py_InitModule("LargeVis", PyExtMethods);

LargeVismodule.cpp: In function 'PyObject* LoadFromList(PyObject*, PyObject*)':
LargeVismodule.cpp:97:18: error: 'PyString_AsString' was not declared in this scope
    real x = atof(PyString_AsString(PyObject_Str(PyList_GetItem(vec, j))));
                  ^~~~~~~~~~~~~~~~~
LargeVismodule.cpp:97:18: note: suggested alternative: 'PyBytes_AsString'
    real x = atof(PyString_AsString(PyObject_Str(PyList_GetItem(vec, j))));
                  ^~~~~~~~~~~~~~~~~
                  PyBytes_AsString
LargeVismodule.cpp: In function 'PyObject* initLargeVis()':
LargeVismodule.cpp:130:2: error: 'Py_InitModule' was not declared in this scope
  Py_InitModule("LargeVis", PyExtMethods);
  ^~~~~~~~~~~~~
LargeVismodule.cpp:130:2: note: suggested alternative: 'Py_Initialize'
  Py_InitModule("LargeVis", PyExtMethods);
  ^~~~~~~~~~~~~
  Py_Initialize
LargeVismodule.cpp:131:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
error: command '/usr/local/bin/gcc-7' failed with exit status 1

Hey all, did you guys ever figure out any fix?

Same here

This is related to the compatibility of python2 and python3.
PyString_AsString is no longer used in Python3.
The following link can help you resolve compatibility issues.

I am sincerely grateful for your answer, which helped me to install this package.

I am sincerely grateful for your answer, which helped me to install this package.

I am sincerely grateful for your answer, which helped me to install this package.

This is related to the compatibility of python2 and python3. PyString_AsString is no longer used in Python3. The following link can help you resolve compatibility issues.

I am sincerely grateful for your answer, which helped me to install this package.


reassess spatialRegistration vs imageRegistration

@tgbugs Is this a synonym or something different?

Yes, these are synonyms.

@MaaikevS & @UlrikeS91 this means that we need to merge the terms, keeping "image registration" with "spatial registration" as synonym. For EBRAINS this means quite a lot of cleanup.


[IMP] guidelines: complete list of directories and files

I have updated the PR so that section 1.4 and 1.7 have all the directories and main files as the template module, in the same order.

@rvalyi Do you approve the latest changes also?

I have done as suggested by @flachica
Can we merge?

I just changed
pre_migration.py & post_migration.py
to
pre-migration.py & post-migration.py

I lookup CONTRIBUTING.rst quite regularly to make sure that I follow the OCA standards. And it is complicated to navigate to this PR all the time. Can we please merge?

@sbidoul @simahawk @eantones @dreispt can you please check?

If you would like to merge this PR, now is the time for it. I will delete all appstogrow repos.
BTW The last days I have installed ArchLinux, and I am impressed by the quality of their wiki. For documentation, maybe OCA can have a wiki instead of git?

@norlinhenrik this looks good, thanks! Can you rebase to resolve the conflict?

I have rebased now.


fix(value-card-wrap): wrap long strings to two lines

Summary
This PR references these issues:
https://github.ibm.com/wiotp/monitoring-dashboard/issues/693
https://github.com/IBM/carbon-addons-iot-react/issues/1027
Long strings in ValueCards were not very accessible with only one line of text before the ellipsis. This PR allows long strings to wrap to a max of 2 lines.
Change List (commits, features, bugs, etc)
Added styling to ValueRenderer
Created new ValueCard story with a long string
Acceptance Test (how to verify the PR)
Navigate to ValueCard 'small / long string' and see the text wrap to two lines before the ellipsis.
Before:

After:

Nice work, I implemented something similar for the ValueCard's data state earlier and created a sass mixin with a fallback. Perhaps you could reuse that if you move the style over to scss.
https://github.com/IBM/carbon-addons-iot-react/blob/master/src/globals/_mixins.scss

@bjornalm thanks for the info! That looks great. I do think it would be beneficial to use that mixin here, although this specific implementation of this fix works on all browsers that I have tested. (all 'relevant' browsers, ie. Chrome, Firefox, Safari, Edge..) I tinkered a little with applying this mixin multiline-text-overflow and was having trouble getting the same result.
Seeing as though the fallback is not necessarily needed in this case, would it still be worth extracting to scss?

@bjornalm thanks for the info! That looks great. I do think it would be beneficial to use that mixin here, although this specific implementation of this fix works on all browsers that I have tested. (all 'relevant' browsers, ie. Chrome, Firefox, Safari, Edge..) I tinkered a little with applying this mixin multiline-text-overflow and was having trouble getting the same result.
Seeing as though the fallback is not necessarily needed in this case, would it still be worth extracting to scss?

Totally up to you :-) I just wanted to let you know the mixin existed.

@bjornalm thanks for the info! That looks great. I do think it would be beneficial to use that mixin here, although this specific implementation of this fix works on all browsers that I have tested. (all 'relevant' browsers, ie. Chrome, Firefox, Safari, Edge..) I tinkered a little with applying this mixin multiline-text-overflow and was having trouble getting the same result.
Seeing as though the fallback is not necessarily needed in this case, would it still be worth extracting to scss?

Totally up to you :-) I just wanted to let you know the mixin existed. Just out of curiosity, what was failing with the mixin?

The words were not breaking to wrap like they were supposed to. For some reason the word that was nearest the wrap break on the second line would just disappear, despite the use of overflow-wrap: break-word. Didn't do a whole lot of digging into it, though.

@JoelArmendariz do you know why if I expand the card width a little to 400 px there's all that empty white space after the wrap?  Can we make sure it goes full-width before wrap in this case?

See strange 'early wrapping' in the deployment preview

Fixed.

Can we do anything to improve the case where we do have units?  Seems like a lot of wasted space to the right of the units causing an unnecessary truncation.  Also, shouldn't it go two lines before truncating?

Can we do anything to improve the case where we do have units? Seems like a lot of wasted space to the right of the units causing an unnecessary truncation. Also, shouldn't it go two lines before truncating?

Can I propose that we only let the values that have units wrap to two lines at the same breakpoint that the units appear to the right of the value instead of under? In other words, in the case that the value has units, lets truncate on one line, until the card gets wide enough to trigger the previously implemented breakpoint that moves the unit onto the same row as the value.
Namely: at 133px width in the small / wrapping story. The value wrapping to two lines on the card when it's thinner than that looks bad, and it doesn't seem necessary to try and fit just a few more characters when the user should probably just make the card a bit wider anyway.

Looks like some changes that I didn't make just got pushed into this branch somehow..

Looks like some rogue commits from various authors made it into this PR. Closing in favor of a fresh one at: https://github.com/IBM/carbon-addons-iot-react/pull/1042


Share transaction details

Think about what details we can share and what - we can't

https://zpl.io/VOdBzeQ

@dariatarakanova  for this we have payment proof

this screen https://zpl.io/VOdBzeQ will be as an image. The same as receipe in mobile banking so I can send this image to other user, right @sasha-abramovich ?

Please notice, this screen should be a picture, not screen in wallet. The picture can be shared in telegram, email, other chats.

When a user shares transaction details, the picture should show the status at the time the user decided to share the transaction details. The beam icon should be displayed to the left of the status.

design:

actual:

checked


[FEATURE] Add attributes to propery options

This PR adds a new table s_filter_options_attributes and an attribute relation to the PropertyOption model to be able to add attributes to this model.

ping

We are currently building a new module to manage attributes in the Shopware backend. The s_filter_options_attributes table will also be added in this process.
Please keep an eye on the 5.2 branch.
I will close this PR for now.

That sounds like an really good idea :+1:

I'm still playing around with this. Adding the new table and association in the model is not everything we need. We also need the Attribute joined in Shopware\Models\Property\Repository::Shopware\Models\Property() and association (to a yet missing option attribute model) in the ExtJS model Shopware.apps.Property.model.Option. Will you add these, too @bcremer?

@OliverSkroblin @janbuecker Can you please take care of this in the new Attribute Module.

Since we have the code alreay, I could update this PR.

Feel free to update the PR :+1:

I have added the modified JS files which now contain a new Shopware.apps.Property.model.GroupAttribute model and a relation to the new model in the Shopware.apps.Property.model.Group model. I have also modified the Shopware_Controllers_Backend_Property controller to save the attributes when creating or updating a property group.
Please merge this changes with the new attributes feature in the 5.2 release. We will use this already in our current customer's project. To give some background information: We need this because we are importing the properties from a PIM system which is a quite common scenario in enterprise projects. To match the PIM values against the Shopware properties we need an unique identifier in Shopware. We tried to add this as an attribute to the property groups and found out that this was not possible.
The big picture might be to have a "code" on every model in core which can be used for exporting/importing things to backend system. We always have to add this to the payment and shipping models for instance.

As we are releasing Shopware 5.2 within the next weeks, please make use of the new attribute management announced with Shopware 5.2.
Feel free to create a new PR including your changes. Please select branch 5.2 as your target branch.


Network pipeline and abstract response objects.

With this change, all commands can have pipelined responses. Pipelined responses use a single (or fewer) syscalls to write responses back to a client. All meta commands and binary protocol commands should be able to pipeline now, allowing massive improvements in throughput at a trade of latency. It also reduces the memory requirements for an idle client connection by more than half (several kilobytes, depending on workload). Previous to this only the "text protocol" multiget format (get key1 key2 key3) did response syscall batching.
By default pipelines are flushed when no more commands are available in the read buffer, or "conn_yields" is reached, or a NOP command is found (such as mn from meta). This allows flexible pipeline stacking based on an application's latency requirements.
This changeset abstracts the memcached protocol handlers with stacks of "mc_resp" objects. Rather than various realloc'ed object lists and a static write buffer for every connection, response objects are allocated from a per-worker-thread cache as requests run.
Big simplification on how the response iovecs are built up and handled as well, since each response has a small set of iovec's now. Extstore's interface no longer has to be told of offsets and totals to later wipe. A lot of error handling has been completely removed as res_add_iov() can't fail. No more of the random reallocs or buffer fetches aside from the response object itself. Despite a little more indirection, overall this should be a speedup after cutting a ton of branches.
This is a first of several passes of changes. Other goals here:

remove rbuf from idle connections, make generally a static sized thread local buffer. Idle conns should then be ~400 bytes rather than 4-16k depending on realloc'ed buffers.
if a large ascii multiget, use a malloc/realloc/free routine for rbuf.
larger default rbuf (8k/etc)

PR for rbuf removal is here: https://github.com/dormando/memcached/pull/2 - covers the above three items.

pull network handling into separate file.
pull binary/text protocols into their own files.

Basic benchmark using new 'metaget' command:

8 worker threads. pinned to one numa node on 8 core machine. 1m keys loaded. pure get workload.
5 mc-crusher threads, 50 clients per thread.
next branch: 740k gets/sec (pipelines=1), 1.3m gets/sec (pipelines=8, limited by mc-crusher)
pipeline 1: 740k
pipeline 4: 2.5m
pipeline 8: 5m
pipeline 16: 7.5m

pipeline code with straight text proto multiget (batches of 50): 14.4m/s
next branch same: 15.5m/s.
... subsequent runs saw 15.5m/s on pipeline, and 14m/s on next branch. governor seems right, probably a machine/scheduler side effect.
TODO:

[x] code that uses a side thread will send output from the side thread before any stacked responses.
since binprot doesn't have any sidethread code, only need to fix ascii. add a mode to process_command() where we can swap to conn_mwrite state and force a re-read of the command to flush ahead of moving to a side thread.
[x] adjust UDP to ensure one msg doesn't use multiple response objects.
[x] some fail-safes or counters for double-free or over-allocation conditions.
[x] Ascii authentication.
[x] UDP (ugh). Should hopefully be simpler, since we can build the UDP headers at transmit() time rather than stack them as we go along. Only transmit should need to know if a connection is UDP or not.
[x] binary extstore tests broken.
[x] make binary nop command flush pipeline.
[x] test/fix binary sasl.
[x] can wbuf be WRITE_BUFFER_SIZE rather than DATA_BUFFER_SIZE, and be 1k? Can it be 512b? (headers + key + token responses + etc)
Confident on audit this can be 1k. Reasonably sure it can be 512 bytes, perhaps 384 bytes, but that will require more careful work and extra tests. The cache code can do redline testing, but need to expand normal tests to test for "the longest form" of any buffer, and/or add more protections via resp_add_iov or a wrapper around it for when using wbuf.
[x] stats counters for number of response cache objects per thread, for debuggins.
[x] extstore chunked item handling iov's are malloc/freed. does a shared cache make sense?
Punting for now, I think.
[x] address resp_start() failure. static response buffer to writeback or simply close connection and tick malloc_fails? should be nearly impossible to trigger.
[x] remove any remaining abort's.
[x] audit remaining TODO's/FIXME's for punt/address

just udp tests fail now. what a slog.

had UDP mostly working friday. added chunked support and cleaned it up a bit today. pending a small fix, extstore should now work with UDP for the first time. UDP code is also significantly constrained since it's treated as a wrapping/packaging process.
now just have to clean up the rest of the TODO list.

There're a lot of out_string() uses in error conditions that probably don't have test coverage. need to audit more to ensure those calls would have responses stacked, or perhaps out_string() should auto-add if no resp exists :/

@smukil thanks! Sorry, I never made a cleanup pass as we've been bug hunting for weeks. Looks like you caught a few things I was still waffling over at the time. Will discuss more.

This should be ready to go, just needs one last round of testing.


Remove the Custom Menu Options for Loot Thresholds Lower than Green

Recent change from Blizzard... LAME.

Message: Interface\AddOns\GogoLoot\loot.lua:937: SetLootThreshold(): threshold must be between 2 and 6
Time: Fri Sep  3 13:16:14 2021
Count: 1
Stack: Interface\AddOns\GogoLoot\loot.lua:937: SetLootThreshold(): threshold must be between 2 and 6

Two places, right click menu on Character Frame:

Master Looter Settings:

Removed the code that was obsolete. Done some basic testing with 2 accounts on PTR, no errors or unexpected behaviour.
However, this still requires testing in dungeons / raids, just to be sure everything works as expected!!
https://github.com/Gogo1951/GogoLoot/tree/NoGreyOrWhiteItemOptions


convert it to marp-vscode-documents

Hi @Octobug.
First, congrats on the extension. I just wanted to say that it is well done. 👏🏻
Second, I suggest you convert it to marp-vscode-documents (and maybe a theme: document). I say this because people may want to use it for another use than just a resume.
For instance, I am a lecturer, and I like to use marp for slides, but I will also love to do some documents using marp examples (e.g. tutorial, guides).
If you do that and publish in the vscode marketplace, I bet you have a lot of potential users, me included 🙂.
I wish you the best.

@alanlivio Thank you for your feedback!
But first of all, it is not an extension for VS Code ;)
I simply made it as a demo, to show people that a resume could be written in such way.
Your idea is great by the way!


How do I need to set up so that the Local PV Hostpath is only created on the Node I specify?

How do I need to set up so that the Local PV Hostpath is only created on the Node I specify?
There are many nodes in my k8s cluster, I hope openebs only provides Local PV Hostpath on some nodes, because not all nodes have enough storage space

@1121437613 - is there a common node label available on the nodes that have storage.
For example, if you have hostpath as /mnt/hostpath and all the storage nodes where /mnt/hostpath is available is labeled as openebs.io/node-role=storage, you can use the following topology settings in the Local PV Storage class.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-hostpath
  annotations:
    openebs.io/cas-type: local
    cas.openebs.io/config: |
      - name: StorageType
        value: hostpath
      - name: BasePath
        value: "/var/local-hostpath/"
provisioner: openebs.io/local
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowedTopologies:
  - matchLabelExpressions:
      - key: openebs.io/node-role
        values:
          - storage

@1121437613 - 具有存储的节点上是否有可用的通用节点标签。
例如，如果您的主机路径为/mnt/hostpath并且所有/mnt/hostpath可用的存储节点都标记为openebs.io/node-role=storage，则可以在本地 PV 存储类中使用以下拓扑设置。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-hostpath
  annotations:
    openebs.io/cas-type: local
    cas.openebs.io/config: |
      - name: StorageType
        value: hostpath
      - name: BasePath
        value: "/var/local-hostpath/"
provisioner: openebs.io/local
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowedTopologies:
  - matchLabelExpressions:
      - key: openebs.io/node-role
        values:
          - storage

Thank you very much, I solved my problem according to the method you provided

The problem has been solved, thanks kmova


React Port

Seeing Stories is basically an FB clone on a pre-existing idea, I feel like it is only right that there needs to be a React port to it.
I'll work on it!

Please keep me updated! :)


Handle functions as an agent

Expected Behavior
I want to be able to provide Spring AI with one or more functions that could be used to provide additional information or functionality. (See https://platform.openai.com/docs/guides/gpt/function-calling). Moreover, when the response to a prompt indicates that a function should be called, I'd like it if that decision, the call to the function, and the reissuing of a new prompt were all handled internally by Spring AI. This behavior is what I believe is commonly referred to as an "agent".
In short, I'd like to be able to configure Spring AI with one or more functions (perhaps as lambdas or method references) that could be used later. Then, if I ask a question that the LLM needs more information to answer, Spring AI would call those functions for me and resubmit the prompt. I don't want to have to do what is shown as "step 2" in the example at https://platform.openai.com/docs/guides/gpt/function-calling. That decision making should be handled internally by Spring AI.
My primary desire is to have function support, but almost as importantly, I want to not have to deal with the back and forth interactions in my own code. I want Spring AI to handle that internally.
Current Behavior
Spring AI does not yet support functions, so at this point there's no need for agent behavior. Currently Spring AI only handles one-turn Q&A type interactions.
Context
As an example (drawn from the aforementioned documentation), if I were to ask what the weather is in Boston, most/all LLMs wouldn't know that answer because they're not trained on real-time or even relatively current data. But if I provide a function that can lookup the weather in a city, then instead of the LLM responding that it doesn't know what the weather is, it could respond with an instruction to call the function. The application (or the agent on behalf of the application) would call that function as instructed, then submit a new prompt with weather data from which the LLM would be able to generate the desired answer.

I was bored at work so I played around a little bit with this. I am by no means an expert but I thought it would be cool if we could somehow auto configure and mark functions in the same way that Spring Cloud Functions does. I think this is the idea for "agents" right?
https://github.com/Kirbstomper/spring-ai/tree/function_playground
I created a new annotation and the code that should auto populate that. While on the client side its a bit quick and dirty but I have a integration test that works for using a function with the latest version of openai-java

I'm all for capitalizing the i. AIClient does feel so much better than AiClient 😆

There is a PR that will be reviewed related to this topic  https://github.com/spring-projects-experimental/spring-ai/pull/16

Man, I really apologize for not getting to this yet.  I need to set aside some time for 'understanding functions' better.  It will be merged!

We are aiming for basic function support in 0.8.0.  high level interactions, e..g Chat with conversational memory and agents etc, or high level APIs around function invocations will be in a later release.  Not quite sure when.  Just wanted to keep the thread alive, it has not been forgotten.

Hi,
just as another inspiration, I created a python function handler framework https://github.com/mxab/taifun where you can annotate function and it extracts the functions parameters as json schema and provides it to openai as functions to call.
Something similar in Spring would also work maybe nice. eg
record Location(float lat, float lon)
class AiController {
 @AiFunction("retrieves the location of the requester")
 public Location getLocation(){
 // get weather
 }
 @AiFunction("returns the weather for a given location ")
 public String getWeather(@AiParam("the lat value....") Location location){
 // get weather
 }
}

AiFunctionsBean functions = generateFromAllAiControllers()

aiclient.generate("do i need an umbrella", functions)

Function Calling support has been added.  It don't think function calling itself is equivalent to an agent, an agent likely has a persistent memory and additional files, more akin to the open ai assistants api.    Closing this issue now, but reopen if I've missed something.h


Adding que 2/ruby 3 support

Implemented que 2 and ruby 3 support.
Ruby 3 support is handled the same way as que gem (using ruby2_keywords gem)
Please let me know if there is anything I can do to get this up to get this pull request up standard.

@ZimbiX if you're able, this could use your eyes.

Any update here? Ruby 2.x is now all EOL.


"Incompatible Filters" with JINJA Template

I have created a virtual dataset with a JINJA template
 {% if filter_values('number')|length  %}
       where object_date > date_sub(day,{{filter_values('number')[0]}},now())
   {% else %}
     where object_date > date_sub(day,10,now())
   {% endif %}

My virtuals datasets works and I can filter in the dashbaord, but I get an error message "Incompatible Filters"
I am using Apache Superset 1.3.0

Hi @suedschwede ! yes, this is a known issue. we currently don't have plan to fix it yet. what type of filter are you trying to create with jinja?

I try to create native dashboard filter

@junlincc I saw a fix for this. https://github.com/apache/superset/pull/12742
But unfortunately, this works only on legacy charts and not on new echarts.

@graceguo-supercat Can you see if we can fix the same for new echarts as well?
Also, this only checks for jinja filter used in virtual dataset query, and not when used in 'Filters' section(custom sql) of chart explore menu.

@junlincc and @graceguo-supercat, any news on getting this going for ECharts?

Hello! can you please confirm in which version this resolution was applied?

@cesar-loadsmart This is fixed in master now. It will be available in upcoming 1.4 version as well.


Added [Experimental] warning to SaveMeshesInScene

Added [Experimental] warning to SaveMeshesInScene since it doesn't seem to work 100% of the time. Also reversed the checkbox logic so it's something that's being ENABLED rather than being DISABLED.

Thank gawi.#0145 for letting me know that it DOES have problems. Since I've been using it for 3 months and had none, but seemingly it acts weirdly (doesn't always regenerate the meshes). This MIGHT be due to them running on Unity 2020.3. Haven't had chance to investigate.
Flipping the toggle does make sense regardless, for the sake of UX. Enabling a feature rather than disabling the default.


Allow customization of configurator defaults

The MRTK configurator today provides sane defaults for most projects getting started - for more advanced projects, however, it can be useful to customize what those defaults should be.
For example, there have been some cases where some projects have seen that msbuild4unity's default behavior (in conjunction with their system) has led to very difficult to reconcile situations (i.e. conflicts with their own build tooling and configuration).
At the same time, having msb4u enabled by default (under WMR) is super helpful for HL2 scenarios (for remoting from Unity).
Given this, this issue tracks making it so that on a project by project basis, you can configure the defaults for the configurator (so that individual contributors to those projects don't blow away the values set manually with the defaults shown.

Would the end result be different from ignoring / hiding / having some way to tell the configurator to stop trying to change things?
It feels like, if you need to configure the MRTK's configurator, you should just be trusted to set the Unity settings yourself to whichever values you need (which it sounds like has been done already, if there's danger of MRTK blowing away those values).
Is there an issue with the ignore button, which should be check-in-able on a project-by-project basis by checking in ProjectPreferences.asset in MixedRealityToolkit.Generated?

This assumes that everyone running the configurator cares to understand the configuration, vs having it be set up by a person who is initially starting up the project and then sharing the repo with others - I think the min bar here is that for others pulling from the repo (consider someone who doesn't care about the the setup of the project, but just wants to get going with their part), they shouldn't see a dialog because the project has been configured to be different from the defaults (explicitly by the creator of the project)

So yes, if you're an individual starting up a project and looking at things and you want to customize stuff things work fine.
If you're sharing your project and working with others, currently things fall apart in certain scenarios.

I think the min bar here is that for others pulling from the repo (consider someone who doesn't care about the the setup of the project, but just wants to get going with their part), they shouldn't see a dialog because the project has been configured to be different from the defaults (explicitly by the creator of the project)

That's the scenario I think is already covered by checking in the ProjectPreferences.asset in MixedRealityToolkit.Generated after clicking "ignore" in the configurator or marking "Ignore settings prompt on startup" in the MRTK Project Settings:

This gets serialized into that .asset file and can be checked in to the repo for anybody pulling things down.
Note that the "This applies to all projects using the MRTK" part of the tooltip is now incorrect. This used to be stored in the global editor preferences but is now serialized to an asset after https://github.com/microsoft/MixedRealityToolkit-Unity/pull/6315

Though, if we're finding that that setting isn't being respected, we should definitely fix that!

I opened https://github.com/microsoft/MixedRealityToolkit-Unity/pull/7665 to improve our wording and some discoverability of this .asset file.

Perfect, yep, I think that the project setting should handle the scenario nicely, closing this out.


hide same provisioner migration

Codecov Report

Merging #697 (69e4841) into master (3ea97fa) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #697   +/-   ##
=======================================
  Coverage   41.56%   41.56%
=======================================
  Files         337      337
  Lines       24677    24677
=======================================
  Hits        10257    10257
  Misses      14420    14420

Flag
Coverage Δ

unittests
41.56% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

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


Mint 20 is Uploading from Nemo but Displaying Upload Failed

Expected behavior would be that the imgur URL would be sent to the clipboard. The error message has a URL reference, and if one follows it, one gets to the uploaded image. Am using the latest version of the script.

https://github.com/jomo/imgur-screenshot/blob/master/CONTRIBUTING.md#issues

kenny@kenny-ThinkPad-T480:~/.bin$ sh imgur-screenshot.sh -u imgur-screenshot.sh: 173: Syntax error: "(" unexpected (expecting ";;") kenny@kenny-ThinkPad-T480:~/.bin$ sh imgur-screenshot.sh --check imgur-screenshot.sh: 173: Syntax error: "(" unexpected (expecting ";;")

imgur-screenshot uses bash, please don't execute it with sh. Also, please use markdown code blocks when you paste more than one line.

kenny@kenny-ThinkPad-T480:~$ sudo install imgur-screenshot /usr/local/bin/imgur-screenshot
[sudo] password for kenny:
kenny@kenny-ThinkPad-T480:~$ sudo imgur-screenshot --update
/usr/local/bin/imgur-screenshot: line 285: jq: command not found
Failed to check for latest version:
kenny@kenny-ThinkPad-T480:~$ sudo chmod 775 /usr/local/bin/imgur-screenshot
kenny@kenny-ThinkPad-T480:~$ imgur-screenshot --check
dirname: unrecognized option '--check'
Try 'dirname --help' for more information.
basename: unrecognized option '--check'
Try 'basename --help' for more information.
file '/home/kenny/' doesn't exist !
kenny@kenny-ThinkPad-T480:~$ imgur-screenshot
Please select area
Uploading '/home/kenny/Pictures/imgur-2020_11_20-14:14:28.png'...
Upload failed: "curl: (22) The requested URL returned error: 500
{"data":{"id":"7hoEGTW","title":"imgur-2020_11_20-14:14:28","description":null,"datetime":1605899703,"type":"image\/png","animated":false,"width":357,"height":250,"size":41029,"views":0,"bandwidth":0,"vote":null,"favorite":false,"nsfw":null,"section":null,"account_url":null,"account_id":0,"is_ad":false,"in_most_viral":false,"has_sound":false,"tags":[],"ad_type":0,"ad_url":"","edited":"0","in_gallery":false,"deletehash":"RKRikkg4ltA2F2F","name":"","link":"https:\/\/i.imgur.com\/7hoEGTW.png"},"success":true,"status":200}"

/usr/local/bin/imgur-screenshot: line 285: jq: command not found
Failed to check for latest version:

Oh, the wiki page with the --check flag is outdated. That flag no longer exists, I have updated it!
However, as documented in the README, imgur-screenshot requires jq. Make sure it's installed.

jq was the issue. Now works!
Sorry to be a PITA.
On Fri, Nov 20, 2020 at 2:22 PM jomo<EMAIL_ADDRESS>wrote:

Oh, the wiki page with the --check flag is outdated. That flag no longer
exists, I have updated it!
However, as documented in the README
https://github.com/jomo/imgur-screenshot#dependencies, imgur-screenshot
requires jq. Make sure it's installed.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jomo/imgur-screenshot/issues/146#issuecomment-731362285,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AASVQPBJHDLUBDCK4LVUT7TSQ26ZBANCNFSM4T5EKVJA
.


More compatibility with web/windows platforms

And can you bump version to 1.0.11 ?

Thanks, @SergeShkurko


Added snippet for the await operator article

Supports dotnet/docs#14080

Thank you @BillWagner. I remember to update the article text, but the rename refactoring has slipped my mind.

Thanks @pkulikov I'm glad we caught everything before shipping it.
It's ready now.


add GitConfigHelper::getRemoteInfo()

Q
A

Fixed Tickets
#387

License
MIT

A new inspection was created.

A new inspection was created.

The inspection completed: 2 updated code elements


Release 0.1.0-alpha

We've made a lot of progress defining the schema and implementing prototypes in java and go (for the collector).
Its time to think about the first release, so prototype implementations can have something concrete to point to instead of the SHA of a commit on the main branch.
This issue is to discuss any prerequisites needed for a 0.1.0-alpha release.

[ ] Define release process
[ ] Identify any issues we want to resolve before release

I'll put together a release doc and open a PR

Are there any issues pending that would block the release of v0.1? @jack-berg @MrAlias

None that I know of. Let's check the box and do the release 👍

This is now complete 🎉


Add unit tests for Observer

Right now, there are many functional tests to compare with output from PyEphem. We need unit tests!

Can you clarify the difference? What is missing?

Sure.
A "unit test" tests a specific function or method, or a specific part of a function / method, with many different inputs / checks for failure modes / etc. These meant primarily to check that the code executes with valid input, returns valid output with valid input, fails as expected, etc. For example, you could write some very simple tests for _generate_24hr_grid that check that (for all possible valid inputs) you get back a length N Time object. Other good ones are to check for failure modes: What happens if you pass in a float for N instead of an int? Are there any cases for which it should fail? If so, you can check and require that it throws an error. For this function it's not critical that the tests are too extensive because it is an internal function, but same principles.
A "functional test" (sometimes called an integration test, but sometimes they are considered different...) tests more of the user-facing code and are what you mainly have implemented now -- e.g., checking calculations that may involve smaller pieces of code against output from PyEphem.
Many people have written many words about the differences / utilities of each (google 'unit test vs functional test'). Here's a blog post that (I haven't read) but has some examples: http://jeffknupp.com/blog/2013/12/09/improve-your-python-understanding-unit-testing/

@adrn – agreed that unit tests are important, but ...
IMO a few functional tests are more important, so I like that @bmorris3 started with those.
There can be millions of lines of code and unit tests, and still the software isn't functional, i.e. can't do the major use cases.
Personally I'd prefer @bmorris3 works on features, e.g. making the code work with arrays of targets and adding a functional test for that.
One can easily spend many days or weeks thinking of and implementing unit tests for everything and especially invalid input handling / response.
So maybe we can agree that @bmorris3 should implement more unit tests (or unit tests at all ... I haven't been really looking too closely) in the coming weeks, but try to avoid this becoming too big of a time sink, i.e. also spend time on more features and high-level tests?

@cdeil it's always about finding the balance of functional and unit tests. I should've made it more clear: this issue isn't even necessarily for @bmorris3, but is to remind us that there is definitely room to add some unit tests (by someone...at some point).

However, @bmorris3 is responsible for #18 !

(I assigned the units to hopefully make this more clear)

@adrn – OK, then we're on the same page.
@bmorris3 – If you have any questions about what / how to test, please ask!
Developing good tests, i.e. tests that cover a lot of ground, but are easy to read and write, is hard.
Probably browsing the tests in astropy.coordinates for a while is a good way to learn.

Current coverage report for Observer:
https://coveralls.io/builds/3413013/source?filename=astroplan%2Fcore.py#L108
(overall OK, but there's a few methods / branches of if statements that are untested)
@bmorris3 – Can you make a PR to address this issue and #18 ? Or do you want to move those to the 0.2 milestone?

@cdeil If time allows, I'd like to address #18 in time for 0.1, but the updates that I want to make for #18 depend on #69 getting merged.
I'd be happy to let #19 (this issue) slide until 0.2, and I'd like to remind @adrn of his apt prompt:

that there is definitely room to add some unit tests (by someone...at some point).

After all @adrn, it's presently some point, and he's currently someone. :wink:


how to prevent opening new tab when drop?

preventDefault() and return false not working.

What? Opening new tab?

Try dev-branch, perhaps the problem has been solved;
Use the search, maybe already have an answer;
If not found, create example on jsbin.com (draft) and describe the problem.

I mean when drop over, chrome always open a new tab

3. Create example on jsbin.com (draft) and describe the problem.

@RubaXa
I tried jsbin, but problem didn't reappear.
everything work fine in jsbin.com.  I am not sure why.
I use html sortable(http://farhadi.ir/projects/html5sortable/)
and the problem gone.
Thank you anyway :D

Okey, good luck.


Add documentation link for Service Directory

(The documentation wasn't public before, but is now.)

Will merge this after all the autosynth stuff, as I don't want to risk any extra changes :)


Reservation Number Issue

Made a reservation for 7 days (Feb 10 to Feb 17) for an Amazon Echo. When on the reservation summary page for my user account, clicked reservation number, which brought me to an error page.

Not enough information to reproduce - can you clarify?


UI Improvements

Added few UI changes to header toolbar.
For Desktop:

For Mobile:

Mobile Search active:

I see vertical alignment issues in those screenshots - elements aren't centered. I'd also suggest sticking with all caps for the menu items.
Issue #54 has some relevant design work.

@allanday Are u talking about this loading spinner or the flathub icon??

It looks a lot better :). Awesome 😍

@allanday Are u talking about this loading spinner or the flathub icon??

The Flathub icon is the most noticable issue - the vertical alignment is 3/4px off. The search box and its content also looks slightly off-center, to my eyes.

 See here:

We have the spacing of 14px from top and 15px from bottom.
and search box have 1px shift with spacing of 13px top and 16px bottom.

I also changed toolbar links to uppercase

Fixed vertical alignment issue by cropping flathub icon

And also I noticed that there are two separate heights for both mobile and desktop (56px and 64px) in original flathub store, So I also fixed this one.

@nmanumr perhaps it would be nicer to use the https://github.com/angular/material2/blob/master/src/lib/toolbar/toolbar.scss#L4-L5 given variables for that.

Hi Nauman! Thanks for contributing to Fly and fixing the little issues
Allan remarked. I'll try your code next week
El ds., 27 d’oct. 2018, 11:57, Kai Schröer<EMAIL_ADDRESS>va
escriure:

@nmanumr https://github.com/nmanumr perhaps it would be nicer to use
the
https://github.com/angular/material2/blob/master/src/lib/toolbar/toolbar.scss#L4-L5
given variables for that.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/flathub/linux-store-frontend/pull/144#issuecomment-433607223,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEFTrhFeu2w-plbhwjk9pdzIPEP8xiZks5upC4agaJpZM4X3G14
.

I've deployed the new version in the test sever. It looks good to me.
@allanday  If you don't say anything otherwise I will merge with master and deploy it into production next Thursday 15th.


✨ Allow me to keep tags in dagger.json

What are you trying to do?
Right now if I add a tag to dagger.json, it will install the correct version of my module, but it will overwrite the dagger.json to show the whole git sha. It would be nice to keep the tag visible because it's easier for me to look at a module with many installed modules and look at the human readable version to see what version I am on.
Why is this important to you?
Keeping the human readable version around is a smoother DX because it reduces cognitive load. Without it I need to go poke around in various places to see what version I am on.
How are you currently working around this?
No response

Agreed - what we should really have here is a way of attaching both a tag and a git sha in a module ref. When we resolve a module ref's tag, we should rewrite it to include both - that way, you get the pinning and the readability all in one.
For example, you can do this with docker images: <image>:<tag>@sha256:<hash>. Not quite sure what that would look like, maybe github.com/dagger/dagger/dev@<tag>:<hash>?
Alternatively, the dagger.json could have two fields, source, which has the name it was installed by, and resolved, which has the full hashed name it was resolved to.
One cool thing about tracking the tag we used at the beginning, is that if a tag is updated (e.g. v1.2 updated from v1.2.1 to v1.2.2), then this could be updated to the latest version here - but don't know if this is something we're interesting in actually supporting as a common use case.

Since this is kind of related to module ref formats, cc @grouville who is owning lots of stuff around that :tada:

Our use case could benefit from something related to this.
Context:
Our team owns plenty of dagger modules provided to the rest of the engineering team at our company.
Once an engineer writes its own dagger module/pipeline and installs one of our maintained modules as a dependency, we lose all ability to push updates and bugfixes to the dependency module (it requires action from the engineer to do dagger install again).
We are coming from Jenkins world where we provide the same type of service through a shared library where we have "rolling" tags. Engineers will write their pipelines using the stable tag, and they will have fixes and features pushed to the library without having to take any action.
I understand how pinning to a version that will be changing is not the current model, but there's a case for that (at least in our company).
Is this something that could be considered? Or any ideas on how this could be implemented in the current model?

I also need this! https://github.com/dagger/dagger/issues/8271


How to request

How to open site, and get request URL on this site ?

There is so many answers for this question that you can probably spend some time researching.


Fix "unable to rotate log files on Windows" bug

Which issue(s) this PR fixes:
Fixes #3921
What this PR does / why we need it:
Suppose we set up the log rotation on Windows as follows:

    <system>
      <log>
        rotate_age 5
      </log>
    </sytem>

Currently this does not work, because the supervisor and worker will
share the same log path, and they won't coordinate with each other.

This makes it sure that each process has a log file for themselves
on Windows.

Signed-off-by: Fujimoto Seiji<EMAIL_ADDRESS>
Docs Changes:
N/A
Release Note:
Fix log initializer to correctly create per-process files on Windows

Thanks for the fix!


Prepare for PPSecureComms

This PR prepares a secret  named kbs-client under confidential-containers-system.
The secret includes that private key of the kbs-client
It will enable  the adaptor to connect to the KBS as a client for performing a set-resource.

@davidhadas you'll need to squash the kbs operator related commits into a single one and the client example into another.


Fix attaching a dirty, detached SemanticsNode

Previously we triggered an assert.
Fixes #4850

@HansMuller @chinmaygarde

LGTM


"Teams Only" not availabe yet

Org-wide Settings > Teams Upgrade -> Teams Only is not yet an option for all tenants; when will this be GA ?

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

ID: 56ab9d91-d5c4-be13-660e-10b1fdacadec
Version Independent ID: efdd6696-1415-26ae-ab56-5e758a34311c
Content: Upgrade Basic checklist - Microsoft Teams
Content Source: Teams/upgrade-basic.md
Service: msteams
GitHub Login: @dearbeen
Microsoft Alias: dearbeen

Hi @SteffanH , thank you for your comment.
Did you try with Grant-CsTeamsUpgradePolicy?
Thanks!

@SteffanH We appreciate any feedback that improves the content in the Microsoft docs but we haven't had any response from you so we are going to close this issue.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.

@officedocsbot close


Add basil to adoptopenjdk

Description
I would like to merge and release https://github.com/jenkinsci/adoptopenjdk-plugin/pull/23. If @hrmohr is willing to merge and release that PR, great! Please do and then close this PR. If @hrmohr is not willing to merge and release https://github.com/jenkinsci/adoptopenjdk-plugin/pull/23, then please give me permissions so that I may do so myself. Note that I have no interest in maintaining this plugin, and I plan to remove myself from the maintainers list as soon as https://github.com/jenkinsci/adoptopenjdk-plugin/pull/23 is merged and released with no reported issues or regressions.
https://github.com/jenkinsci/adoptopenjdk-plugin
CC @hrmohr
Submitter checklist for adding or changing permissions
Always

[x] Add link to plugin/component Git repository in description above

When adding new uploaders (this includes newly created permissions files)

[x] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[x] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[x] Make sure to @mention the users being added so their GitHub account names are known if they require GitHub merge access (see below).
[x] All newly added users have logged in to Artifactory at least once

Reviewer checklist (not for requesters!)

[ ] Check this if newly added person also needs to be given merge permission to the GitHub repo (please @ the people/person with their GitHub username in this issue as well). If needed, it can be done using an IRC Bot command
[ ] Check that the $pluginId Developers team has Admin permissions while granting the access.
[ ] In the case of plugin adoption, ensure that the Jenkins Jira default assignee is either removed or changed to the new maintainer.
[ ] If security contacts are changed (this includes add/remove), ping the security officer (currently @Wadeck) in this pull request. If an email contact is changed, wait for approval from the security officer.

There are IRC Bot commands for it

Hey @basil,
If you're still interested in delivering the PR mentioned, I'd go ahead and merge this PR, if the merge conflicts are addressed.
More than a month later without response from the existing maintainer does suffice for the waiting period.
Thanks!

Permission granted.


[bug] parent_id is always null

Nova: 3.20
PHP: 7.4
DB: PostgreSQL 12
Menu: 5.2.*
When I try to set menu item as child, parent_id stays as null and never updates. Can't make a nested menu.

refresh page...

Hi! There was indeed a bug. Fixed in version 5.2.2, just run composer update. :) Thanks for reporting this!


Error in Multitask regression case

I tried to use this library for multitask regression (multiple perceptrons at output layer), but I get error while fitting train loader into the library.

Hey, can you share a minimal working example that reproduces your error?
There shouldn't be any error---e.g. the following works:
import torch
from torch import nn
from laplace import Laplace

# Dummy dataset
dataset = torch.utils.data.TensorDataset(
    torch.rand(256, 2),  # X
    torch.rand(256, 3),  # y
)
dataloader = torch.utils.data.DataLoader(dataset, batch_size=128)

model = nn.Sequential(
    nn.Linear(2, 10),
    nn.ReLU(),
    nn.Linear(10, 3)
)
la = Laplace(model, likelihood='regression', subset_of_weights='all', hessian_structure='full')
la.fit(dataloader)
la.optimize_prior_precision()

That worked. Thank you so much for helping me out.


Release 0.15.0

Changed

Language resources are now packaged separately from the Snips NLU core
library, and can be fetched using snips-nlu download <language>.
The CLI tool now consists in a single entry point, snips-nlu, which exposes
several commands.

Added

CLI command to parse a query

Codecov Report

Merging #609 into master will decrease coverage by 3.36%.
The diff coverage is 71.71%.

@@            Coverage Diff             @@
##           master     #609      +/-   ##
==========================================
- Coverage   93.32%   89.96%   -3.37%
==========================================
  Files          46       60      +14
  Lines        2517     2999     +482
  Branches      508      576      +68
==========================================
+ Hits         2349     2698     +349
- Misses        106      220     +114
- Partials       62       81      +19


.transformReplace gives ghost item.

Intro:
I am working on a modpack and encountered a bug.
Issue Description:
.transformReplace is giving a ghost item.
What happens:
When I use .transformReplace to try and return an empty Clay Bucket from the Ceramics mod for crafting a Fresh Water from Harvestcraft, like using a normal Bucket does, it gives a ghost version of the empy Clay Bucket that disappears when I click on it.
What you expected to happen:
To receive a real empty Clay Bucket the Ceramics mod.
Script used (Please Pastebin or gist your script, posting an unpasted or ungist'd script will automatically close this issue):
https://gist.github.com/The-Arcanian/0564521bbec8597c5e63dde7ecb6cffa
Minetweaker.log file (Please Pastebin or gist your file, posting an unpasted or ungist'd file will automatically close this issue):
https://gist.github.com/The-Arcanian/1af260d59e352ff9abde21eece892c71

Affected Versions (Do not use "latest"):

Minecraft: 1.10.2
Forge: <IP_ADDRESS>1
Crafttweaker: 3.0.24

Your most recent log file where the issue was present:
https://gist.github.com/The-Arcanian/4bb8540865dc97beb490c002e14e5d52

Fixed in later versions (aka 1.12)


Multilingual redirector does not take into account the stored cookie in SSR

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

As anonymous user/admin
In a multilingual setup, (eg. EN/DE), go to 'http://localhost:3000/' (root)
Click on the language switcher to EN
Load again http://localhost:3000/ (no /de or /en, not navigating, in SSR, first request)
Actual behavior: the site redirects to /de always (default language set)

Expected behavior
The site redirects to /en (the value that is stored in the language cookie, since we went to /en in the beginning)

I can not reproduce this error, for me this works (both in Volto and in client projects).

The issue is that the language selector checks if the language set by the cookie (in this case EN) is different from the language from the content object (in this case the root is set to DE). When it is different it sets the cookie to the language of the content object. What needs to be changed to fix this is either don't do this check on the sideroot or make the siteroot language independent and don't set the cookie if the langage is not set for the content object.

https://github.com/plone/volto/pull/5665


Color / Colour does not update when Network Module is showing the IP address "format-alt"

When the network module is showing format-alt, if the status of the connectivity changes, the module's colour does not.
If one screen is showing format-disconnected or -wifi or -ethernet, that widget changes colour, while one showing the IP address does not. It happens every time and it stays until you click it back.
Here is my config:
"network": {
"interval": 1,
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ifname}: {ipaddr}/{cidr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},

Here are both pictures of it showing the wrong colour.
The text status is correct: it is connected when showing an IP and not when not.

What does the network CSS style look like?


Text resource files saved with too long lines, VCS treat files as binary

Godot version:
3.0
Issue description:
When saving text resource, eg. scene (.tscn file) with exported var of eg. type array that contains large number of elements, resulting text file will end up with too long lines as array is stored as single line, regardless of number of elements. Linux file command would recognize them as "ASCII text, with very long lines".
Problem is two fold with common VCS like Git, Fossil-SCM etc.

They will treat these files as binary (even though they are text) so diff will fail to show changes
VCS will store changes between files not as textual delta but as binary change, which is orders of magnitude larger and usually equals compressed size of file itself. This means that developer will unknowingly and unexpectedly grow repository size orders of magnitudes more with each commit.

Eg. existing committed scene file of 500Kb size (example), with one word or value changed, will take up with next commit not ~50bytes as text delta but whole 500Kb (or compressed ~100Kb, depending on VCS, compression and ways it stores deltas).
Suggested solution:
To break up lines to reasonable length when possible. It would solve problem with exported vars of type array, dict. etc.

Note that large scene and resource files (typically > 500 KB) should be saved as binary instead of text, to decrease saving and loading times. Scenes can be converted to a binary format when exporting, but you still want your project to open and save quickly while developing.

Thanks for info, but I was mentioning 500KB file size only as an example. In practice I encountered this problem with .tscn files with size less than 10KB that contain array of array few basic types ([[Vector3, Vector3, int], ...]), with 50 or 100 elements. These is extra info set on scene using custom editor plugin (few waypoints for AI), and in no way huge amount of data nor time critical.

Some resources should be better structured in the resource files (tscn and tres), not only for this but also for readability (curves and meshes are too hard to read).

Related #12925.

This sounds more like Git issue than Godot one. I never encountered this issue myself, even though I often get super long lines due to TileMaps, so maybe it's no longer relevant for some reason.
In any case, I think this should be a proposal.


Updated Files to fix the error.. All and specific button not working …

…properly.
Thank you for your contribution.
Before submitting this PR, please make sure:

[x] PR description and commit message should describe the changes done in this PR
[x] Verify the PR is pointing to correct branch i.e. Release or Beta branch if the code fix is for specific release , else point it to master
[x] Latest Code from master or specific release branch is merged to your branch
[x] No unwanted\commented\junk code is included
[x] No new warning upon build solution
[ ] Code Summary\Comments are added to my code which explains what my code is doing
[x] Existing unit test cases are passed
[ ] New Unit tests are added for your development
[x] Sanity Tests are successfully executed for New and Existing Functionality
[ ] Verify that changes are compatible with all relevant browsers and platforms.
[ ] After creating pull request there should not be any conflicts
[ ] Resolve codacy comments
[ ] Builds and checks are passed before PR is sent for review
[ ] Resolve code review comments
[ ] Help Libray document is updated accordingly for Feature changes.

Fix was handled in different PR, hence closing this.


Support for soft link that points to original name

Like to have the ability to have the renamed file be a soft link back to the original file.
i.e. end result would be
tv/myAwesomeFilename.mkv --> staged/myCrappyFilename.mkv

I've been using hardlinks. I do cp -l staged/myCrappyFilename.mkv tv/ to create a hard link to where I want the file, and then tvnamer tv/myCrappyFilename.mkv to clean up the filename.

Actually, it looks like soft links may already be implemented. I found an option for it in the config defaults.

Some functionality was implemented in PR #59. You can also see this request in #46 and #136


Where do you add the config file shown in the guide?

It is not too obvious but after some troubleshooting I found out it should be created in ./config/plugin.js if that is your question.

Hi @carlosdubus Plugin config goes in ./config/plugins.js which Strapi does not create by default.


devenv.exe

[Window Title]
devenv.exe
[Main Instruction]
An unexpected error occurred
[Content]
Please press Ctrl+C to copy the contents of this dialog and report this error to our issue tracker.
[^] Hide details  [Close]
[Expanded Information]
Build: 16.2.19178.1

System.NotSupportedException: version 98 is no longer in memory
   at Microsoft.PythonTools.Intellisense.LocationTracker.GetLineLocations(Int32 version)
   at Microsoft.PythonTools.Intellisense.LocationTracker.Translate(SourceLocation loc, Int32 fromVersion, Int32 toVersion)
   at Microsoft.PythonTools.Intellisense.LocationTracker.Translate(SourceSpan span, Int32 fromVersion, Int32 toVersion)
   at Microsoft.PythonTools.Intellisense.TaskProviderItem.CreateSquiggleSpan(SimpleTagger`1 tagger)
   at Microsoft.PythonTools.Intellisense.TaskProvider.<RefreshAsync>d__28.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.PythonTools.Intellisense.TaskProvider.Refresh()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)

Thanks. I suspect this will be difficult to reproduce.
We're currently working on completely replacing the IntelliSense implementation as part of https://github.com/microsoft/PTVS/issues/5210, which should take care of this, as well as many other IntelliSense improvements.

Got this exception today, but with different stack trace.
Issue happened when I copied existing python file in solution explorer, rename it and start editing source.
[Window Title]
devenv.exe
[Main Instruction]
An unexpected error occurred
[Content]
Please press Ctrl+C to copy the contents of this dialog and report this error to our issue tracker.
[^] Hide details  [Close]
[Expanded Information]
Build: 16.4.19310.1

System.NotSupportedException: version 0 is no longer in memory
   at Microsoft.PythonTools.Intellisense.LocationTracker.GetLineLocations(Int32 version)
   at Microsoft.PythonTools.Intellisense.BufferParser.GetChanges(PythonTextBufferInfo buffer, ITextVersion curVersion)
   at Microsoft.PythonTools.Intellisense.BufferParser.<GetUpdatesForSnapshot>d__45.MoveNext()
   at System.Linq.Enumerable.<SelectManyIterator>d__17`2.MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Microsoft.PythonTools.Intellisense.BufferParser.<ParseBuffersAsync>d__46.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PythonTools.Infrastructure.VSTaskExtensions.<HandleAllExceptions>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)


Sort imports case-insensitive

Sort imports case-insensitive instead of case-sensitive as that seems more natural to me. Unless using case-sensitive sorting was a deliberate decision @allevato.
rdar://86096207 [SR-15565]

Lexicographical ordering was an intentional choice, but it may be influenced by our own primary use cases (Swift module names auto-derived from Bazel build targets all start with lowercase letters due to our repo path structure, so this conveniently separates system frameworks from our own modules; and it matches the order produced by companion tools that sort those build targets also using lexicographical ordering).
Since String.lowercased() in Swift isn't locale-sensitive, I'd be fine with adding case-insensitive import ordering as a configuration option, but I'd like it to be off by default so that we don't change the behavior of the default configuration from what it is today.

I wonder if the original problem is related to the fact that capital letters are put first in lexicographical order, not to case-sensitivity per se. Introducing case insensitivity as a solution would break the (in my opinion) "expected" sorting in cases of grouping by common "namespace"-like prefix, in the presense of another prefix that just happens to include the first prefix. Personally I would keep case-sensitive sorting there in favor of the proper grouping.
Below is just an illustration of the idea that the proper grouping depends on case-sensivity in some cases:
extension String {
    func lexicographicallyPrecedesCaseInsensitive(_ other: String) -> Bool {
        return self.lowercased().lexicographicallyPrecedes(other.lowercased())
    }
}

let names = [
    "App",
    "AppCore",
    "AppleServices",
    "AppViews",
]

print("case-insensitive:")
print(names.sorted(by: { $0.lexicographicallyPrecedesCaseInsensitive($1) }).joined(separator: "\n"))
print("")
print("case-sensitive:")
print(names.sorted(by: { $0.lexicographicallyPrecedes($1) }).joined(separator: "\n"))

Output:
case-insensitive:
App
AppCore
AppleServices
AppViews

case-sensitive:
App
AppCore
AppViews
AppleServices

Closing this because I probably won’t have enough time to add a configuration option. If anyone wants to pick this up, feel free to do so.


Added caveat about unpublished service limits

@QuinnyPig Do you think it would be useful to give an example?

If you've got a good one that isn't NDAd, absolutely!

Point well made :)
LGTM 👍


[BUG] Replace "Start new chat" button

Description
It is placed in top of the input prompt and when we click the button, it clears the chat leading to wrong misguidance. Instead it can be placed right to input prompt and changed as "clear chat". Mainly because it performs that funtion.
Screenshots

Any additional information?
No response
What browser are you seeing the problem on?
Microsoft Edge

Hey @lolpanda2004  I am assigning this issue to you
you can start working on this issue
Happy hacking ✨


logging.conf issue in Gentoo

reported by Alan at http://forums.scribus.net/index.php/topic,1965.0.html
I'm trying to use Scribus Generator to add addresses to a newsletter and have been working my way through error messages (Tk not compiled into Python, etc.) but now it's just hanging when I tell it to generate.
The script is in my user directory and permissions seem OK, user has read/write to directory and files.
Scribus 1.5.2.svn
Python 2.7.10 (3.4.3 is also installed and is the system default)
Gentoo Linux
It seems like it may not be parsing logging.conf but I don't do Python, so I'll leave it to the experts. By running Scribus via console and running the script, I get this error message:
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib64/python2.7/lib-tk/Tkinter.py", line 1536, in __call__
    return self.func(*args)
  File "/home/alan/Downloads/ScribusGenerator-master/ScribusGenerator.py", line 147, in buttonOkHandler
    generator = ScribusGenerator(dataObject)
  File "/home/alan/Downloads/ScribusGenerator-master/ScribusGeneratorBackend.py", line 56, in __init__
    logging.config.fileConfig("logging.conf")
  File "/usr/lib64/python2.7/logging/config.py", line 77, in fileConfig
    formatters = _create_formatters(cp)
  File "/usr/lib64/python2.7/logging/config.py", line 113, in _create_formatters
    flist = cp.get("formatters", "keys")
  File "/usr/lib64/python2.7/ConfigParser.py", line 607, in get
    raise NoSectionError(section)
NoSectionError: No section: 'formatters'

Hi Alan.
I hope we can track and fix your problem here on github, as it's easier for me to get all matters relating
to this script in a single place.
Now for the problem: some googling on the same topic led me to the fact this error message may be misleading and could relate to the logging.conf file not being found. Could you please try to make its path absolute in l.58 of ScribusGeneratorBackend.py, changing logging.conf with /home/alan/Downloads/ScribusGenerator-master/logging.conf
Let me know if that works around the problem... or if we have to look elsewhere.
It does not seem to me to be a problem of the content of loggin.conf, as this works on others OS just fine (Ubuntu, Xubuntu, Windows, Mac).
B.

Hi,
Thanks for the hint. Replacing logging.conf with an absolute path does indeed work. I've attached a small patch that should work. I'm not sure if this the best method in Python, it's how I would fix the problem in PHP.
Thanks for your help!
-Alan
ScribusGeneratorBackend.txt

Thanks @aardwolfweb for the patch.
As I cannot reproduce the issue, could you please try another fix for me, that I'd prefer using if it works: simply add an empty (text) file named __init__.py (please make sure there is no invisible .txt extension left) in the /home/alan/Downloads/ScribusGenerator-master/ directory... and leave the relative path (simple "logging.conf", without your hack).
It might work and would feel cleaner. Thanks!

No, sorry, that still gives the same error.

thanks for trying! will integrate your patch in the code.


Dinodex

@zsyed91 Nice first pass at this exercise. Please take a look at the comments and refactor.


Recreating objects

If a QSObject isn't in the catalog, it doesn't exist after a restart. This has been a problem with triggers for a long time, and will soon be a problem for Synonyms.
I think in the majority of cases, the various object sources could probably recreate the object knowing only the identifier. So, what I propose is that in +[QSObject objectWithIdentifier:], we continue to return an existing object if possible, but if it doesn't exist, do something like this:
SEL recreate = @selector(recreateObjectWithIdentifier:);
id handler = [self handlerForSelector:selector];
if (handler) {
    return [handler recreateObjectWithIdentifier:anIdentifier];
}

And then of course we'd have to implement recreateObjectWithIdentifier: in various object classes, and make sure objectWithIdentifier: gets called at some point to trigger the behavior.
Places to test:

[ ] Triggers made with internal objects (e.g. Pasteboard ⇥ Paste) should still work once the catalog entry's been disabled (see the 'Internal Objects' catalog entry). See #1373 for more info

This is a big job, but could it be a task for the sprint?

Maybe. I’ve already done it and still have the branch, but I’m sure it needs more work at this point.
If you could look over #1363 and see if you have any comments/concerns about my chosen implementation, that would help.

Wall of text incoming, apologies in advance. I'll comment here speaking about #1363 because let's say that this is the meta issue (metapullrequest incoming 😉).

Rather than try to preserve objects in dictionary form, we just ask the class that created them in the first place to create them again.

I can think of a bunch of cases where the identifier* is not sufficient to recreate something. For example, menu items from the Accessibility plugin (which I think people use to rebind Triggers).
* unless you craft it carefully, which I'm not fond of. That would need identifiers like bundle-id->menu->menu->... My personal point of view is that identifiers should be mandatory NSUUIDs and be done with it. They don't convey any meaning, they're just identifiers used to check if we already have that object "in cache" (e.g. the Catalog + the set of runtime objects). With maybe a few wrinkles because filesystem objects must be kept fast.
All in all, I'd really much prefer the mechanism to use the object's -dictionaryRepresentation in some way, because that's the only general way I can think of that would work for any case.
Now, looking at how the code is orchestrated, I'm left with wondering if this isn't a mostly-solved problem : the Catalog maintains a list of "indexes" (one for each object source). Maybe we could fix the trigger problem by always serializing everything, instead of the current "if it has an identifier, then save that, else save this, or else save whatever" ? This means that when triggers are saved, the whole representation is there for the next time and can be reconstructed.
Then the same goes for synonyms, where maybe just saying that -entryCanBeIndexed: is sufficient :wink: ?

Maybe we could fix the trigger problem by always serializing everything, instead of the current "if it has an identifier, then save that, else save this, or else save whatever" ?

You mean, like... using NSCoding?
Here's a PR I made earlier (like 2.5 years earlier!)
https://github.com/quicksilver/Quicksilver/pull/1761
I guess my NSCoding implementation is effectively the same as Etienne's dictionaryRepresentation (basically I'm just encoding the QSObject's identifier and data dictionary into an NSCoding object, but it's muuuch cleaner

Or using -dictionaryRepresentation, which makes it easier to hand-modify (provided you don't store unwanted things in data, but NSCoding has the same issue anyway).
Please notice that QSTrigger's -dictionaryRepresentation is messy "by design", because it actively tries to not duplicate objects already in the Catalog. The one in QSObject is much cleaner than that, and is already used by the indexing machinery (and Triggers, for that matter).
I don't really have a preference between NSCoding and NSPropertyListSerialization anyway. I find the latter easier to use because it's text-based (you don't have to use plutil/PlistBuddy), that's all.

My personal point of view is that identifiers should be mandatory NSUUIDs and be done with it. They don't convey any meaning, they're just identifiers used to check if we already have that object "in cache" (e.g. the Catalog + the set of runtime objects).

That makes dealing with identifiers much simpler, and more importantly (assuming some central "authority" like QSLibrarian was assigning them), you eliminate the risk of collisions.
However, as things are now, the identifier is meaningful to the object source and even if it won't always work, it's often the only way an object source can get enough information to recreate something.
Now, I already know the response to that because I've heard it from both of you repeatedly over the years, including in these very comments…

All in all, I'd really much prefer the mechanism to use the object's -dictionaryRepresentation in some way, because that's the only general way I can think of that would work for any case.

That would not work for every case. Off the top of my head, any subclass of SBObject (iTunes EQ presets, AirPlay devices) can't be stuffed in a property list.
I think you've said in the past that those things shouldn't be stored in the object's type dictionary. So, say we throw it out. Now those objects don't do anything. What difference does it make that we can safely store and retrieve them from disk?
I prefer letting plug-in developers throw whatever they want in there, because it makes life easier for them, and really, how would we enforce type limitations in setObject:forType: anyway?
Having said that, what you're shooting for (either dictionaries or NSCoding) is so much cleaner and it would be great if it worked. So, give me a way to use centrally assigned UUIDs, property-list-safe types that can be stored to disk, etc. but when it comes time to run an action, still have access to what the action needs to work. (Some form of SBObject for example.)
At the very least, the information in the dictionary needs to convey that something important is missing.

Here’s an idea (for getting to a point where QSObjects can be saved to disk in their entirety). We already have a dictionary that can tell us information about a type: QSTypeDefinitions. We could add a “can be indexed” boolean to that dictionary (defaulting to YES).
This would take the place of entryCanBeIndexed: on catalog entries. So we’d say which types are or aren’t safe to index, instead of which catalog entries. That makes more sense anyway, in my opinion.
There’s still the issue of what to do with the non-indexable types. Just have the NSCoding methods store a placeholder for that type, and then ask the handler to fill it in when it gets “woken up” from disk, I think.
Restoring the value for those types could still be challenge, but that’s probably unavoidable. The advantage here is that we can pass the handler the full object instead of just type and identifier.

I've just (properly) implemented NSCoding into QSObject (and QSCommand and QSTrigger) so you should now be able to write any object/command/trigger to disk with an NSKeyedArchiver. Should be really easy, as I showed previously here: #1761
I plan on moving triggers etc. over to just writing to the disk using NSKeyedArchver, then all these problems should just go away.
For the question of:

Having said that, what you're shooting for (either dictionaries or NSCoding) is so much cleaner and it would be great if it worked. So, give me a way to use centrally assigned UUIDs, property-list-safe types that can be stored to disk, etc. but when it comes time to run an action, still have access to what the action needs to work. (Some form of SBObject for example.)

If you wanted to save the SBObject to disk, then that would be the responsibility of the QSObjectHandler of your plugin. We could extend QSObjectHandler to have a method called -[QSObjectHandler archiveObject:XXX forType:YYY] that would do whatever it wants with archived data. Otherwise, we just throw it out as you say.


TS eats newlines in front of text after every save / reload

Testcase:

Create a new tiddler.

content .. \n for newline
\n
\n
some text

After a browser save / reload, one \n is gone.
After a browser reload, same result. only 1 \n is there
Edit the text eg: "some more text"
Save / reload -> no \n in front of "some more text" anymore

http://groups.google.com/group/tiddlywiki/browse_thread/thread/efee168eca0a2ea3?hl=en

This is a TiddlyWiki issue so moving here - https://github.com/TiddlyWiki/tiddlywiki/issues/58


Show search bar upon the main content rendering

Is your feature request related to a problem? Please describe.
Currently the search bar loads before the main content and it looks strange.
Describe the solution you'd like
Let's make it visible upon/after the main content is loaded.

@arkid15r please assign it to me