Handle discontinuing services that will start in the future

GIF of issue

@alexsoble The original intent was to capture the historical log of who has entered what and what changes have been made.  That allows looking back to see who has edited what (as in auditing) and also to look back historically at what services students had in past years.  So it wouldn't just be storing the current state in the database, it'd be storing it such that we capture the complete history.  This might be different than other data we store in the database, since Student Insights fully owns this.
My overall mental model is: somewhere we want a log of all the things that have happened.  This could be done directly in the data model as it was initially (eg., when users create a service we make a record for that, and then when they discontinue it we make a DiscontinuedService for that).  The downside is at read time you have to merge those things together to understand the current state.  Or the data model could model the current state, and we write the set of changes somewhere else where we could recreate what happened.
It sounds like the change to add "end date" complicates this, and that you all found a bunch of edge cases.  @alexsoble @Jngai you all should figure out whatever you think makes sense, and feel free to ignore what the past intents were too as you're figure out how to improve this!  If changing it to just capture the current state is simpler, and persist a log of changes to another table keeps the history, that seems great too!

Check out #1138

@alexsoble @kevinrobinson I think the edge cases are very useful. I do find myself coding to adjust for each edge case. I think the bigger picture is coming soon since I have to investigate #1112 . Overall I think what we added help answer multiple ways that a user would go about using the service feature. @alexsoble I just notice that the input box says "when did they start" so a teacher seeing that is less likely to enter a future date however it still could be possible.

Hey @kevinrobinson! I like the "somewhere we want a log of all the things that have happened" framing, that seems correct for sure.
Here's my mental model of all the things that can happen to a service:

First, educator creates the service or Uri bulk uploads the service.

recorded_by_educator_id captures who created the service
date_started specifies when the service started (or was meant to start)
estimated_end_date specifies when they think it will end

Later, another educator or the same educator ends the service

Right now we have DiscontinuedService object, but that same data could be flattened down into just two fields: a discontinued_by_educator_id and a date_discontinued

@kevinrobinson @Jngai does that line up with your mental model?
@Jngai, I think Kevin's point about maintaining a log of everything that happens is an important one. To me that says that we shouldn't delete any Service records. We could do one of two things instead:

Disallow educators from entering Services with future start dates
Change the column name date_started to estimated_date_started to make it clear that this is just an estimate, so that it would be valid to have a Service with a date_discontinued that actually comes before estimated_date_started

Which option makes more sense to you @Jngai @kevinrobinson? I'm leaning towards (2) but both seem like good options from my vantage point.

@alexsoble I prefer the first one because it only took 15 minutes. Also for (2) I don't want to add a field and then have it cause such a cascading effect. I don't think all scenarios will have its date_started to be estimated_date_started for all scenarios either. We can try #2 if you don't like the way it looks.

@alexsoble Yeah, this all sounds great, thanks for explaining!  The clarification about Uri bulk uploading is good, I forgot that too.  These flattening options sound like good improvements to me. 👍   And @Jngai glad you are thinking of how to handle all the cases!

@alexsoble The pr has been merged. Should we close this?

@Jngai Yeah closing now!


BTG RECOVERY NOT WORKING !

This is the error that is showing when i try to recover my BTG.
error: "66: min relay fee not met. Code:-26" }
ANY HELP ON THIS PLZ  ????????
I need to recover my money man.

i can give a '' $$ tip '' to someone who can help recovering my money


Update GitHub Actions

shellcheck Actions is failing due to SC2001, yet I believe we fall under the exception, please let me know if you think it is safe to ignore too. Then I will add the exception to the shellcheck options.


refactor(app): Show robot system update modal

overview
This PR

auto pops up Robot System Update modal when FF enabled, and robot is still on balena.
pops up sync robot modal when FF enabled and appVersion !== robotApiVersion
gets new release notes from buildroot files with proper modal titles
if buildroot files are not present, show placeholder download in progres modal

closes #3562
closes #3561
Flow implemented based on discussion with @sfoster1 and @mcous

changelog

refactor(app): Show robot system update modal
refactor(app): Add getBuildrootStaus selector
refactor(app): Get BUILDROOT_RELEASE_NOTES from buildroot files

review requests
make -C app dev

[ ] Old upgrade/downgrade/reinstall functionality unaffected

make -C app dev OT_APP_DEV_INTERNAL__ENABLE_BUILD_ROOT=1
Balena robots:

[ ] Balena robots auto pop up Robot System Update modal
[ ] Not Now sets update seen in shell/buildroot state
[ ] View Robot Update shows release notes from buildroot if 'downloaded' (ping me for file)
[ ] View Robot Update shows placeholder download in progress modal if buildroot files not present
[ ] All install buttons disabled

Buildroot robots:

[ ] Pop up sync robot modal if appVersion !== robotApiVersion
[ ] Not Now sets update seen in shell/buildroot state
[ ] View Robot Update shows release notes from buildroot if 'downloaded' (ping me for file)
[ ] View Robot Update shows placeholder download in progress modal if buildroot files not present
[ ] All install buttons disabled
[ ] App update available shows before sync robot when applicable

please run all version mismatch + reinstall scenarios to ground on a buildroot robot. I think i got them all, but this one's a doozy!

Changing this PR to WIP due to fact that some rebase/rework will be required after @mcous PR for download buildroot update is merged

Tested:

wait til update downloaded, click on out of date balena robot, get out of sync modal, then update warning, then release notes
click on out of date balena robot, get out of sync modal, then update warning, then interstitial with download progress, then autoredirected to release notes

Would like to avoid merging this PR before the 3.10 release to reduce risk


Different depthwise convolution kernel sizes?

In your paper, I see you use a depthwise convolution with kernel size 5 to generate offsets, but in the code you use different kernel sizes for different input sizes. Am I missing something?

In our experiments, k=5 in stage 3, k=3 in stage 4 work well.


how to accelerate through SSD?

how to accelerate through SSD?

server contain SSD and normal SAS disk,how to configuration

how to tell SAS disk is the bottleneck?

Tiered storage will be provided later. The plan is, periodically check and balance the load by moving volumes to different storages.

i start 12 volume server, one server with a SATA disk
use seaweed benchmark, write parallel with 100 threads, write 2M files
i see: only 4 or 5 disk has pressure, not all 12 disk
how to make data write more balance, i think this will improve performance

@wangyongqiang0617 https://github.com/chrislusf/seaweedfs/wiki/Optimization#increase-concurrent-writes

A good idea is to write mostly to SSD and eventually move data to rotational disks.

Now you can mark volume servers as SSD or HDD using -dataCenter paramater. Upload data to SSD using "/dir/assign?dataCenter=SSD". And eventualy move volume from SSD to HDD server when you need using commad "shell volume.move". I hope, sometime we will have this function out of the box.

This is related to a fixed issue https://github.com/chrislusf/seaweedfs/issues/1265.
In 2.13, the volume server index storage can be configured to smaller faster SSD.
Other SSD acceleration will be worked on later.

bcache is a choice.

Bcache is rubbish. dm-writeboost is better.


Sprint 26 Planning

1.0.4 scope: https://github.com/janhq/cortex.cpp/milestone/25
Sprint 25 In progress / QA + Release next week

janhq/cortex.cpp#1567
janhq/cortex.cpp#1675
janhq/cortex.cpp#1662
janhq/cortex.cpp#1729
release name alignment to upstream llamacpp janhq/cortex.cpp#303

Sprint 25 Not yet started + Sprint 26 stories
Jan: Engine Management, Hardware Settings
Jan Bugs that should be solved (requires QA)

janhq/cortex.cpp#1525
janhq/cortex.cpp#1467
janhq/cortex.cpp#1457

Jan Bugs that needs investigation (to prioritise)

janhq/cortex.cpp#1459 - computer going to sleep
janhq/cortex.cpp#1140
janhq/cortex.cpp#1469
janhq/cortex.cpp#1656
janhq/cortex.cpp#1099, janhq/cortex.cpp#985 Tokens per second calculation:
Mismatch between Jan UI & model configuration options https://github.com/janhq/jan/issues/4035

janhq/cortex.cpp#1668

Jan x Cortex implements Hardware Detection

janhq/cortex.cpp#1104
janhq/cortex.cpp#1468

Need technical help understanding:

janhq/cortex.cpp#1097: is this fixed by proxy?
janhq/cortex.cpp#1717

New Features
P0: Jan & Cortex supports Multi GPU -> Create parent Jan issue

janhq/cortex.cpp#1679
janhq/cortex.cpp#1391
Fixes Jan multiple GPUs #1458

P0: Model sources - needed for Jan Hub

planning: Cortex API supports /model/sources #15

P0: Jan x Cortex supports Python

janhq/jan-internal#8

Support Ichigo & TTS & STT -> Sprint 27, blocked on Python

Jan Parent issue: https://github.com/janhq/jan/issues/3488

janhq/cortex.cpp#1247
janhq/cortex.cpp#23
janhq/cortex.cpp#743

Supports Vision, upstream llama.cpp -> Move to Sprint 27

janhq/cortex.cpp#1728
janhq/cortex.cpp#1493

QA

janhq/cortex.cpp#1565
janhq/cortex.cpp#1069
https://github.com/janhq/qa/issues/3

Cortex UX Improvements

janhq/cortex.cpp#1685
janhq/cortex.cpp#1060
janhq/cortex.cpp#1656

Sprint 26 current
RAG

janhq/cortex.cpp#1597
Planning: RAG = Assistant specific File Search janhq/cortex.cpp#20

Assistants

janhq/cortex.cpp#1573

Unprioritised / Icebox

janhq/cortex.cpp#1185
janhq/cortex.cpp#1101
janhq/cortex.cpp#985
CI for VNNI support janhq/cortex.cpp#60

Cortex Server?

Cloud Saas Architecture janhq/cortex.cpp#12
janhq/cortex.cpp#1452
janhq/cortex.cpp#1162

Docs / Website:

https://github.com/janhq/cortex.cpp/issues/1736
Decision: Are we publicly marketing Cortex or focusing on Jan?

Suggested Jan Epics (as parent issues for Cortex) cc @imtuyethan @dan-homebrew @0xSage
1.  Jan implements Hardware API (Detection, Activation)

Cortex Backend: https://github.com/janhq/cortex.cpp/issues/1568
Jan: Todo implement

2. Jan & Cortex Supports Hardware Model compatibility

Cortex backend: [WIP] https://github.com/janhq/cortex.cpp/issues/1108

3. Jan & Cortex fixes Vulkan acceleration

Need Eng planning / investigation
https://github.com/janhq/cortex.cpp/issues/1525
https://github.com/janhq/jan/issues/3874

4. Jan & Cortex supports Multi GPU

https://github.com/janhq/cortex.cpp/issues/1391
https://github.com/janhq/cortex.cpp/issues/1679
Will fix: https://github.com/janhq/cortex.cpp/issues/1458

Closing after sprint planning discussion, now on kanban boards


Notebook: Regression trees

See the spreadsheet for details

Content
Programming

DB
AO

Ideas/prereqs:
advantages and disadvantages of trees
Direct link
https://jupyter.olney.ai/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fmemphis-iis%2Fdatawhys-content-notebooks&subPath=Regression-trees.ipynb&app=lab

Closing with https://github.com/memphis-iis/datawhys-content-notebooks/pull/57 to clear the board


Where is the code?

hello, please help me with finding code of this project

@ClmRmb can you please provide the code if possible? Thank you.

@ClmRmb yes please provide code if possible

@ClmRmb still looking for the code.


Email Notification Setup Issue

<post-scan-actions/aws-python-email-notification>
Describe the bug
Despite following the steps to configure email notifications via AWS Console, notifications are not appearing in my inbox after uploading eicar test file to my S3 bucket. I double and triple checked my work to rule out any errors on my part. Lambda function logs appear to indicate that the SNS trigger from ScanResultTopic is functioning, so that leaves the handler.py code that I copied into the FSS_Scan_Send_Email Lambda code field.

Hi @sb118, did you observe any error in the FSS_Scan_Send_Email Lambda's logs? Would you please help provide the logs to investigate the issue?

Hi, @sb118
Just want to follow up on that...


IndexError: list index out of range while running lsort

Hello,
My workflow is like this:

Running lumpy on 10 samples.
SVTyper using lumpy vcf on each sample
lsort SVTyper vcfs
lmerge SVTyper vcfs.

Until SVTyper everything was okay. I am getting error while running lsort.
Traceback (most recent call last):
File "/software/deepali/anaconda3_5.0/envs/sv/bin/svtools", line 6, in
sys.exit(svtools.cli.main())
File "build/bdist.linux-x86_64/egg/svtools/cli.py", line 78, in main
File "build/bdist.linux-x86_64/egg/svtools/lsort.py", line 118, in run_from_args
File "build/bdist.linux-x86_64/egg/svtools/lsort.py", line 44, in execute
File "build/bdist.linux-x86_64/egg/svtools/l_bp.py", line 31, in parse_vcf
IndexError: list index out of range
I have checked vcf files and they have 10 columns
#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  BO2660(my sample name)
I am not sure where it went wrong. Thank you.

I believe that error indicates that there is a line missing a FORMAT field. It's trying to check if the line has a GT field specified, but it looks like there isn't a 9th column.
Did you check every line of your input VCFs? Or just the header?


Spectral Normalization

Please make sure that this is a feature request. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:feature_template
System information

TensorFlow version (you are using): TF 2.2
Are you willing to contribute it (Yes/No): Yes

Describe the feature and the current behavior/state.
Need to support Spectral Normalization as a tf.keras.layers.Wrapper to wrap dense and convolution layers.
Will this change the current api? How?
No
Who will benefit with this feature?
Spectral Normalization (https://arxiv.org/abs/1802.05957) is widely used for training generative adversarial networks. Many recent research use it and it is supported in pytorch (torch.nn.utils.spectral_norm) for a long time now, but still no supported in tensorflow.
Any Other info.
The main difficulty in implementing Spectral Normalization is that it needs to update the layer kernel (e.g. the kernel of tf.keras.layers.Conv2D) using tf.Variable.assign() which is not permitted within a Replica context (e.g. building a convolution layer under tf.distribute.MirroredStrategy).

can we just treat spectral normalization as one layer in the graph?

can we just treat spectral normalization as one layer in the graph? so we don't need to worry about modifying the previous layers

This is what I've done for now. I've extended tf.keras.layers.Conv2D and tf.keras.layers.Dense directly. This way I need to store the value of a single variable used for normalization, and this variable is created with aggregation=tf.VariableAggregation.ONLY_FIRST_REPLICA, since its value doesn't depend on different minibatches to different replicas.

@MoustafaMeshry Can you please check this link for Spectral Normalization available in tensorflow addons. Please let us know if this help. Thank you.


Disables the built-in Dark theme in Cuztomize section.

For some reason the dark theme is disabled in Customize section: https://i.imgur.com/ZJgEiF9.png
OS Used; Windows 7 Home Premium (64bit)
Firefox Version Used: 60 Stable (64bit)

I don't actually think I can control this. May be related to #18, not sure though because it IS themed in the default dark mode.

Also, I have a question about this on Windows 7. How does it interact with the legacy Aero system that 7 uses? I didn't test for compatibility and I thought #11 would be a problem.

It seems it has to do with Windows 7 Aero theme feature or something because when i try to switch to a theme where it doesn't use Aero the Customize section color also changes.


Support GCC 11

Is your feature request related to a problem? Please describe.
Arch Linux recently switched to GCC 11 and a minor patch is required to compile eCAL with it. The patch only adds two includes to two files (see "Header dependency changes" at https://gcc.gnu.org/gcc-11/porting_to.html for more information) that were implicit before and need to be explicit with GCC 11. As this does not interfere with building on officially supported platforms, I'd like to ask if it is possible to add this patch.
Describe the solution you'd like
The patch is applied to the official eCAL repository.
Describe alternatives you've considered
I have no problem to apply this patch during the build process of the AUR package each time which clearly is an alternative; but applying the patch to the official code is convenient for me and saves you a minor headache later when an officially supported platform moves to GCC 11.
Additional context
I also have a patch changing one line to support Protobuf >= 3.15.6, but that breaks compiling against lower versions of Protobuf and so I'll keep applying it in the AUR package (it's just one line that changes, so no worries for the future).
Patch
Index: samples/cpp/multiple/multiple_snd/src/multiple_snd.cpp
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/samples/cpp/multiple/multiple_snd/src/multiple_snd.cpp b/samples/cpp/multiple/multiple_snd/src/multiple_snd.cpp
--- a/samples/cpp/multiple/multiple_snd/src/multiple_snd.cpp	(revision b160392e47800319a498b2ff30c85cb418bb794c)
+++ b/samples/cpp/multiple/multiple_snd/src/multiple_snd.cpp	(date<PHONE_NUMBER>427)
@@ -25,6 +25,7 @@
 #include <atomic>
 #include <chrono>
 #include <thread>
+#include <memory>

 #define PAYLOAD_SIZE      1024
 #define PRINT_LOG            0
Index: app/rec/rec_addon_core/src/time_limited_queue.h
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/app/rec/rec_addon_core/src/time_limited_queue.h b/app/rec/rec_addon_core/src/time_limited_queue.h
--- a/app/rec/rec_addon_core/src/time_limited_queue.h	(revision b160392e47800319a498b2ff30c85cb418bb794c)
+++ b/app/rec/rec_addon_core/src/time_limited_queue.h	(date<PHONE_NUMBER>591)
@@ -25,6 +25,7 @@
 #include <chrono>
 #include <thread>
 #include <functional>
+#include <condition_variable>

 template <class T>
 class TimeLimtedQueue : public std::enable_shared_from_this<TimeLimtedQueue<T>>

Hey, thanks for the patch! Of course we want to have a fix like that in our eCAL repository. There are rumours that in a few centuries even Ubuntu will support gcc11, so it's nice to be prepared for that 😉
Do you want to create a PR, or shall I manually add the patch?
And btw, I am also interested in the protobuf 3.15.6 fix. A while back I prepared eCAL for protobuf 3.15.3, but we decided to not switch to it in the forseeable future, as it broke compatibility with earlier protobuf Versions due to the claimed pb namespace (-> issue).

I think I'll great PRs this weekend (no need to hurry for this) and create one branch per compatbility patch so you can pick what you want once it is either necessary or not interfering with the supported OS builds.
After reading through the issue you linked, I think I did not really create a patch to build with protobuf >= 3.15.6, but one to build against 3.16.0 - I jumped to conclusions because I looked at the protobuf repository to identify when the change that failed the build with 3.16.0 was introduced and it was with 3.15.6, but it looks like they solved the pb namespace problem with 3.16.0, so my patch is probably actually for "building with protobuf >= 3.16.0", which is just a one-line change.
I never had issues with GCC 10 by the way and all warnings that I get currently get are deprecation warnings from my newer Qt versions, so kudos to you all for doing a great job in keeping eCAL portable & upgradeable (especially upgradeability is a feature painfully often missing in the automotive context).

Protobuf removed the namespace claming with some later 3.15.x version again. So actually our Projects (and eCAL) should be upgradable to 3.16 or higher. The only plattform we manually decide the protobuf version for is Windows, all other plattforms bring their own specific protobuf version, anyways.
Yesterday I have noticed a compile issue with our macOS build caused by protobuf. As we are using homebrew to install protobuf and homebrew just forcefully upgrades you to the latest and greatest version, the macOS build is great for detecting issues with the latest protobuf. Later that day however the macOS build magically fixed itself. At the moment (20201-05-27 08:45 UTC+2), homebrew installs protobuf 3.17.1. I don't know which version it was when the build failed, but it may have been something different. But it looks like protobuf 3.17.1 is working just fine.
Failed build:
https://github.com/continental/ecal/runs/2674341994?check_suite_focus=true
All macOS builds, latest work again without changing anything:
https://github.com/continental/ecal/actions/workflows/build-macos.yml
BTW, thanks for the nice words 😊. We are trying hard to keep eCAL compatible with a wide variety of compiler versions and operating systems. Since we have official Ubuntu PPAs we even support non-LTS Ubuntus; at the moment those are Ubuntu 20.10 and 21.04. Therefore the range of gcc versions is 5.4 to 10.3, along with msvc 2015 - 2019 for Windows and CLang for macOS.


Submit images while submitting images

You can click on the drop area to upload more images while the upload of one job runs. However, the additional images are not enqueued with the other ones. If you click again on submit, the second ones are submitted to a another job.
Looks like it works but it's a strange mixup of separate jobs. Also, only one result link is show. The easiest and best solution is probably to disable additional file drops while the upload runs.

fixed


Fixes#1706  NullPointerException at SearchImageFragment.updateImageList

Title (required)
Fixes#1706 (NullPointerException at SearchImageFragment.updateImageList)
Description (required)

added try catch statements in case screen have changed between API call so it won't crash now.

Tests performed (required)
Manually Tested on 25 API level & MOTO G5S+, with ProdDebug variant.

@nicolas-raoul I have fixed the issue. Can you please review.

I would love to try this, but my Android phone just died, I have to buy a new one :-/
@neslihanturan would you mind trying?


error  in new release of mxnet-ssd amalgamation

hi,@zhreshold
I have used your new release of mxnet-ssd/mxnet/amalgamation and use following command.
./ssd ../demo/000001.jpg
then the error occured:

[04:21:39] mxnet_predict-all.cc:634: [04:21:39] mxnet_predict-all.cc:23298: Check failed: op != nullptr Operator L2Normalization is not registered
Segmentation fault

Seems like the amalgamation makefile hasn't been updated for quite a long time.
Adding operator source file to the makefile might solve it, but I'm not quite sure how it works right now.

Sovled by adding operator source.


Remove attn mask patching

What does this PR do?
Removes attention mask patching for specific models when doing an ONNX export.
Picked this up but I am not sure about:

Whether to log a warning or raise an error upon exporting with sequence_length=1 and also not what the exact scope is for such an action. Right now it raises a warning for any models that have tasks prefixed with text-generation. Maybe this should be more specific.
Whether to add a warning/error for previously exported models with such a configuration.

Fixes #1461

Not sure if this context is given anywhere in the code base, but anyway:
That's great @baskrahmer, thank you for the simplification! For context, @echarlaix introduced a simplification for the ONNX export of decoder-only models in https://github.com/huggingface/optimum/pull/1257, where a single ONNX without subgraphs can be used, handling both prefill and decode steps (contrary to the previous decoder_model_merged.onnx) that handled both with subgraphs.
However, to do that, the traced model during the ONNX export needs to encompass the causal mask generation. Unfortunately, some architectures as llama https://github.com/huggingface/transformers/blob/fc142bd775ae4639f80a8b0085a5df33bd2853ce/src/transformers/models/llama/modeling_llama.py#L139-L147. So to export models with the new structure, we either need to patch the models to remove this controlflow (what was done), or simply use sequence_length>1 to go into the controlflow during tracing. That is what I was suggesting in https://github.com/huggingface/optimum/issues/1461 for simplification purpose.

@fxmarty thanks for the context. Sounds sensible :)

Hi @baskrahmer, following https://github.com/huggingface/transformers/pull/27086 quite a few _make_causal, _prepare_attention_mask functions were removed and moved elsewhere. So this PR should fix the issue. I believe you can also remove the patching of _prepare_attn_mask and _make_causal_mask for Falcon (that don't exist anymore).

see https://github.com/huggingface/optimum/issues/1495

I believe you can also remove the patching of _prepare_attn_mask and _make_causal_mask for Falcon (that don't exist anymore).

Not sure if I follow - you mean also removing this?

Hi @baskrahmer, sorry for the late reply. I meant this: https://github.com/huggingface/optimum/blob/1aee8ff05c9aca4877c28109e8eadf5a47d5539c/optimum/exporters/onnx/model_patcher.py#L407-L411
I'm preparing a release for today in sync with Transformers release and we'll need this PR in, for the interest of time I'll be pushing to your branch to get this PR merged, apology in advance about that!

@fxmarty thanks for the reply. All good, you are definitely more in the details here so feel free to change anything :)

@baskrahmer https://github.com/huggingface/optimum/pull/1509 is merged (I could not push to your branch), sorry for the hurry and thank you for your contribution!


BUG: sparse: fixing unbound local error

M and N aren't defined in this conditional branch, so the following happens (on current master):
In [1]: import scipy.sparse as ss

In [2]: ss.coo_matrix(None, (4,5))
---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-2-62651dfca412> in <module>()
----> 1 ss.coo_matrix(None, (4,5))

/usr/local/lib/python2.7/dist-packages/scipy/sparse/coo.pyc in __init__(self, arg1, shape, dtype, copy)
    163             warn('coo_matrix(None, shape=(M,N)) is deprecated, '
    164                     'use coo_matrix( (M,N) ) instead', DeprecationWarning)
--> 165             idx_dtype = get_index_dtype(maxval=max(M, N))
    166             self.shape = shape
    167             self.data = np.array([], getdtype(dtype, default=float))

UnboundLocalError: local variable 'M' referenced before assignment

The deprecation warning indicates that this kind of constructor call isn't recommended, so another alternative would be to remove the special handling altogether. For now, this PR fixes the bug.

This has been deprecated since at least 2007, but it was only broken in 62ec92f7187163705fb4fcb26307accc2b8c2a7c of January 2014. I'll merge the patch but submit a new PR removing the code path.


UI doesn't show file

Describe the bug
when deleting a file while the IDE is booting, it's possible to get into a state where files are present but not visible in sidebar

Link to the blitz that caused the error
https://stackblitz.com/edit/nuxt-starter-apljqi?file=vitest.config.ts,package.json,nuxt.config.ts
Steps to reproduce

open url
click 'trash' button beside plugins/ directory immediately and delete it
run ls plugins/ in terminal and see file still exists

Expected behavior
file should be deleted or still present in UI
Parity with Local

[X] I have run the project in my local machine and I could not reproduce the issue.

Screenshots
No response
Platform
Browser name  = Chrome
Full version  = <IP_ADDRESS>
Major version = 112
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 72126919,
  "usedJSHeapSize": 64650631,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Hash = d830b1a2

Additional context
No response

This definitely looks like a bug :+1:


Plans to support MSSQL?

Curious if there are plans to support MSSQL, especially now that it runs on linux.  This would be a huge value add.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@ravensorb No, none. But, I designed db-migrate in the late versions to provide the most possible freedom to the community. Drivers are external, so everyone can just freely write their own driver. So if you're in a big need for it. It is not too hard to write a driver for old standard SQL databases like MSSQL is.
I dedicated a section in the docs for this:
https://db-migrate.readthedocs.io/en/latest/Developers/contributing/#creating-your-own-driver
You can also look in the organisation at the other drivers for examples: https://github.com/db-migrate or even search in npm for community drivers. A driver always needs to start with the prefix db-migrate- so they're easy to find.
I will flag this as a feature request and with help wanted, since I wont invest work here. You could however also put a bounty on this issue via https://www.bountysource.com/, if the invested time gets payed I will also dedicate some time for this request or someone from the community, but I don't have enough time to spend them on all community request, also I would love to do so.
Feel free to reach out should you have any additional questions.

@ravensorb @wzrdtales I've built one today. Here it is: https://github.com/devotis/db-migrate-mssql
I started from a fork of https://github.com/db-migrate/pg . Took me about half a day to build it, and it's working. Without transactions for now. I'm sure there's room for improvement though. If you want to try, run: yarn add @devotis/db-migrate-mssql

@wzrdtales Running into a problem here. Somebody already published db-migrate-mssql, but they did half the job since it's not working. I redid it from a fork of pg and it's working, but since the name db-migrate-mssql is already published at npm, I had to scope-publish mine at @devotis/db-migrate-mssql. But now when I use the driver mssql to migrate, db-migrate is telling me:

Error: No such driver found, please try to install it via npm install db-migrate-mssql or npm install -g db-migrate-mssql

And that's correct, but the driver IS there, just not under the conventionalized name. How about adding a repository configuration for that? Something like:
{
  "prod": {
    "driver": "mssql",
    "repository": "@devotis/db-migrate-mssql",
    "user": {"ENV": "PRODUCTION_USERNAME"},
    "password": {"ENV": "PRODUCTION_PASSWORD"}
  },
}

For the time being, you guys can add this to your package.json and than yarn/npm install:
"db-migrate-mssql": "https://github.com/devotis/db-migrate-mssql",
So, don't do yarn add @devotis/db-migrate-mssql for now, and if you already did, remove the line "@devotis/db-migrate-mssql": "1.0.1", from your pacakage.json

Hey, sry for the delay. Today is again some Open Source Time free for me.
I will add support for name scoped packages. Have nothing to argue against that in general.

@christiaanwesterbeek Btw. always try to reach out the npm support and report them an inactive package. Of course try to contact the mssql package owner first and ask him to transfer it to you. Most people will gladly do that if their package is not being maintained anyways.

Hi, I work for a company named Level Up Development, and we published the db-migrate-mssql package and it is working for us. We are open to PR's as long as it doesn't break any of our migrations we are currently using in our dev stream.

Also @christiaanwesterbeek - If you'd like to be added to our git repository as a collaborator - i'd be happy to add you.

@ryd0rz Can you open this repo up to the public so we can contribute and report issues specific to this mssql driver? Others in the community would love to help contribute to this.
Also, it would be helpful to have you and @christiaanwesterbeek collaborate as it feels like he has built the full version of this driver (SQL and Object based). The main issue as you notice in this thread is that we have a terrible work around in order to connect the driver to the base db-migrate library.
Thanks everyone!

@ryd0rz You mean your repo for db-migrate-mssql is not public? Why would you close source that one? You're missing out on contributions by the community.
Let's work together on a single mssql driver for db-migrate that all of us can contribute to.

Agreeing, there is no reason to close something that contributes to open source and giving back to the community.

Hey guys, the repo is actually public...
Here's the repo:
https://github.com/ryd0rz/db-migrate-mssql
We can accept any PR and I can even add you @christiaanwesterbeek as a collaborator if you'd like.

Hey @ryd0rz, so I reviewed your github repo and there are just a lot of issues with your approach here. No tests, no readme, missing half of the functionality, committed node_modules to git, missing basic information in your package.json that connects npm to your repo, etc.
If you review everything that @christiaanwesterbeek published, you will see this supports all the key features that the rest of the drivers have. Honestly, it would be best for this community for you to transfer ownership of this npm package to @christiaanwesterbeek so everyone can utilize his version that aligns with what is supported.
See link to understand how to transfer ownership: https://docs.npmjs.com/transferring-a-package-from-a-user-account-to-another-user-account
PS. I mean this all in the most respectful way. Love everything you started and that you are in the community! It is great to see you putting yourself out there and contributing. Stay encouraged

Actually I don't need ownership of his repo. I just need to be able to publish to db-migrate-mssql on npm. I'm not sure if it works like this, but if @ryd0rz would unpublish his db-migrate-mssql on npm, then I can publish what's on https://github.com/devotis/db-migrate-mssql to db-migrate-mssql on npm.
I guess it's either this (option 1) or a feature (option 2) that I mentioned here https://github.com/db-migrate/node-db-migrate/issues/593#issuecomment-483039315 that would allow node-db-migrate to be configured with not just driver="mssql", but also repository="@devotis/db-migrate-mssql".
So I see two ways to handle this. Option 1 seems to me the path of least technical friction and best for new user adoption (that like to configure as little as possible to get it working)

@christiaanwesterbeek Yes option 1 is your best bet! If you follow that link it shows that they would actually transfer ownership of that npm package namespace so you can republish your version overtop of what is publish now. (Irrelevant of the repo). I tried to see if they could just unpublish but I think you can only unpublished a version, not the whole package.

@jpinkster I will clean up my repo in attempt to make it worthy.

@ryd0rz I see what you are saying but there will be no difference between these two scenarios.

Transfer ownership, the next published version would be 2.0.0 and your production apps (assuming your package.json is setup correctly) will remain on 1.0.0 until you choose to upgrade to 2.0.0 with full support
Go through an overhaul of your repo (or merge all of @christiaanwesterbeek's code in since it's all there), publish next version as 2.0.0 and your production apps will still remain on 1.0.0

You're advantage is that you remain in control of the opensource repo. In the meantime I guess I can create PR's to get your repo fixed up

@jpinkster - your changes are merged and published. Apologies for the delay.
<EMAIL_ADDRESS>

Any updates on this?

Good Afternoon Jesse,
The changes were merged as of Oct 8, 2019 and published as<EMAIL_ADDRESS>Can I help you with something else?


added datetimepicker in create task

Integrates datetime picker from https://github.com/Eonasdan/bootstrap-datetimepicker. If we end up using this, we should send him an email letting him know.

For the date-time picker we can use: https://angular-ui.github.io/bootstrap/

Error: [ngModel:nonassign] Expression 'project.startDate | date:'MM/dd/yyyy h:mm'' is non-assignable. Element:


AttributeError: module 'graphlearn' has no attribute 'encoders'

Describe the bug
A clear and concise description of what the bug is.
tensorflow :2.2.0
run node_classification_on_citation.ipynb :
config = {"class_num": 349, # output dimension
"features_num": 130, # 128 dimension + kcore + triangle count
"batch_size": 500,
"val_batch_size": 100,
"test_batch_size":100,
"categorical_attrs_desc": "",
"hidden_dim": 256,
"in_drop_rate": 0.5,
"hops_num": 2,
"neighs_num": [5, 10],
"full_graph_mode": False,
"agg_type": "gcn",  # mean, sum
"learning_algo": "adam",
"learning_rate": 0.0005,
"weight_decay": 0.000005,
"epoch": 20,
"node_type": "paper",
"edge_type": "cites"}
train(config, lg)
the error:
AttributeError                            Traceback (most recent call last)
 in
18             "edge_type": "cites"}
19
---> 20 train(config, lg)
 in train(config, graph)
27                              config["learning_algo"],
28                              config["learning_rate"],
---> 29                              config["weight_decay"]))
30     trainer.train_and_evaluate()
~/anaconda3/envs/graphscope/lib/python3.7/site-packages/graphscope/learning/graphlearn/python/model/tf/trainer.py in init(self, model_func, epoch, optimizer)
161                                          epoch,
162                                          optimizer)
--> 163     self.model = self._model_func()
164
165   def init(self, **kwargs):
 in model_fn()
21                     node_type=config["node_type"],
22                     edge_type=config["edge_type"],
---> 23                     full_graph_mode=config["full_graph_mode"])
24     trainer = LocalTFTrainer(model_fn,
25                              epoch=config["epoch"],
~/anaconda3/envs/graphscope/lib/python3.7/site-packages/graphscope/learning/examples/tf/gcn/gcn.py in init(self, graph, output_dim, features_num, batch_size, val_batch_size, test_batch_size, categorical_attrs_desc, hidden_dim, in_drop_rate, hops_num, neighs_num, full_graph_mode, node_type, edge_type)
88     self.src_ego_spec = gl.EgoSpec(src_spec, hops_spec=[hop_spec] * self.hops_num)
89     # encoders.
---> 90     self.encoders = self._encoders()
91
92   def _sample_seed(self):
~/anaconda3/envs/graphscope/lib/python3.7/site-packages/graphscope/learning/examples/tf/gcn/gcn.py in _encoders(self)
128
129     depth = self.hops_num
--> 130     feature_encoders = [gl.encoders.IdentityEncoder()] * (depth + 1)
131     conv_layers = []
132     for i in range(depth):
AttributeError: module 'graphlearn' has no attribute 'encoders'
Environment (please complete the following information):

GraphScope version: main
OS: Linux
Version centos7
Kubernetes Version:1.20.1

Additional context
Add any other context about the problem here.

Looks like you encounter a tensorflow's ImportError first, then install tensorflow and continue to run the demo script.
To use models from examples/ in graphscope.learning.examples, you need to install tensorflow first then "import graphscope", i.e., you need to restart the notebook after install tensorflow.

Hi @zdx  I think that has already been fixed in your environment. Feel free to re-open if you have any further comment.


Events and Inhibitors

I'm not sure if this is planned or if you guys have plans to ever implement this but i'd like to see events (i.e: messageUpdate, etc.) and inhibitors separated from the main bot file similar to other frameworks and add some inhibitor types (similar to akairo).

Can be 'all' to run on all messages, 'pre' to run on messages not blocked by the built-in inhibitors, or 'post' to run on messages that are commands.

#199


fix(discord): v13 update

This PR Addresses #594 where older versions of the Discord API will stop working. Currently, txAdmin runs Discord.JS v11 which is a far outdated version and uses old API's that will soon be discontinued.
Hopefully some time with some assistance from @tabarra I'd like to be able to add slash commands as a configurable option and work on some new commands. I don't want to go anywhere near adding settings without a bit of help haha
webpack is a bitch, this tool me a lot longer than id like to admit

Since I couldn't commit to your fork, I committed and merged locally: c2cb039b8ba715ba9e2d7208be85c3147d9024bd
Thanks again for the help!


Not passing --peft_method should fallback to a method which is not parameter efficient like full model param tuning

Currently, not setting --peft_method defaults to prompt tuning. However, intuitively, not passing --peft_method means not to use any parameter efficient method like LoRA and prompt tuning. Therefore, its good to fallback to full parameter tuning rather prompt tuning.

I agree with this suggestion. Do you think you can contribute this too @kmehant ? We are making our first wheel release in a few days, would be good to have this change before that as its an API breaking change. We will wait for wheel release until this can be contributed.

@Ssukriti Have raised a PR for this - https://github.com/foundation-model-stack/fms-hf-tuning/pull/100


Minor update to enable 'white box' testing of some internal functions

https://github.com/walbourn/directxtktest/commit/36b73c6eeac7249ef75f641517eef586f632bb8b


[2.0]: Duplicate variable collections when renaming theme groups and themes

Duplicate variable collections on renaming of theme groups and themes :ladybug:

create variables
change the name of theme group and or mode
export to Figma
Duplicate variables collections are created

Expected: It renames the variable collection (we save the theme id so we should be able to do so)
https://hyma-team.slack.com/archives/C06RHB9RT2B/p1713034153486329
https://github.com/tokens-studio/figma-plugin/assets/4548309/54b33133-f2a2-4183-8a24-190ec1de8751

Added to Featurebase Roadmap-	💚 Theme management enhancements - QOL
Added to Featurebase Roadmap-	❖ 🪄 Sync variables and styles is now Export to Figma


Don't require client reauth if Relay is restarted

Relay is restarted
New TURN credentials are created
Clients must sign out and sign back in to be able to use that Relay

Users shouldn't have to sign out and back in for infra deploys.
This also breaks headless accounts since those can't easily create a new token.

Verified by @AndrewDryga that this is not the case: clients fetch new relay credentials when a connection is requested.


Fix tedge agent restart on self update

Proposed changes
As highlighted by flaky tests, there is a race condition when a self-update is detected by the agent. While a first thread is publishing the operation status over MQTT, a concurrent thread is triggering a shutdown of the agent, possibly before the status is actually published.
This fix introduces two mitigations:

The agent shutdown is delayed.
On shutdown, all the MQTT messages already queued are published.

Types of changes

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Improvement (general improvements like code refactoring that doesn't explicitly fix a bug or add any new functionality)
[ ] Documentation Update (if none of the other choices apply)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Paste Link to the issue
https://github.com/thin-edge/thin-edge.io/issues/2623
Checklist

[x] I have read the CONTRIBUTING doc
[x] I have signed the CLA (in all commits with git commit -s)
[x] I ran cargo fmt as mentioned in CODING_GUIDELINES
[x] I used cargo clippy as mentioned in CODING_GUIDELINES
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)

Further comments

QA has thoroughly checked the bug and here are the results:

[ ] Test for ticket exists in the test suite.
[x] QA has tested the bug and it's not reproducable anymore


The script on the main page errors

Currently the only way I've found to run the program consistently is going to that directory and starting it manually with cmd it almost always fails to find the python file and even when it does it gives errors.

The problem here is that i didn't make it on or for a windows os , i'll develop a windows variant

do you have any platform i can reach you, i want to know more about this


Order of stations error in subsample_stations

@Mikejmnez the subsample_stations method returns stations ordered backwards. Try:
import oceanspy as ospy
from poseidon_viewer import get_shapes
import numpy as np
import xoak
import matplotlib.pyplot as plt

od = ospy.open_oceandataset.from_catalog('ECCO')

# From Poseidon-viewer:
ps = [{"type":"Point","coordinates":[-56.761672775466664,60.13158802096402]},{"type":"Point","coordinates":[-39.43864698533882,23.746791019792084]}]

# Create dataset with station data for the time of interest
lons, lats = ospy.utils.viewer_to_range(ps)
stations_ds = od.subsample.stations(Ycoords=lats, Xcoords=lons)
stations_ds._ds = stations_ds._ds.sel(time = '1992-03-16T12:00:00.000000000')
Nstations = len(lons)

# Plot station locations...
cut_od = od.subsample.cutout(XRange = [min(lons)-10,max(lons)+10],YRange = [min(lats)-5,max(lats)+5])
fig = plt.figure(figsize=(12, 5))
ax = cut_od.plot.horizontal_section(varName="Depth", cmap='Greys_r')
colors=['r', 'b', 'k', 'orange', 'darkgreen', 'm', 'yellow', 'c', 'indigo', 'magenta', 'green']
legestations_ds = np.arange(Nstations)
for i in range(Nstations):
    plt.plot(lons[i], lats[i], 'o', color=colors[i], label='station ' + str(legestations_ds[i]))
plt.legend();
plt.show()

# plot vertical profiles...
for i in range(Nstations):

    plt.subplot(1,2,1)
    plt.plot(stations_ds["THETA"].isel(station = i),stations_ds["Z"], color=colors[i], label='station ' + str(legestations_ds[i]))

    plt.subplot(1,2,2)
    plt.plot(stations_ds["SALT"].isel(station = i),stations_ds["Z"], color=colors[i], label='station ' + str(legestations_ds[i]))

plt.legend();
plt.show()

One station (0, red) is in the Labrador Sea, the other in the subtropical Atlantic (1, blue). But the vertical profiles have them backwards (see screenshot and look at temperature profiles on the left).

Important info about this sampleMethod:
The code you are referring in this issue is only accessible through a branch on my local repo (which you forked and pip installed), meaning this sampleMethod is not yet accessible via hainegroup/oceanspy. This particular branch and therefore sampleMethod is under active development, and broadly remains untested... I am getting close to finishing but there are details that remain unfixed (like accurate representation of velocity/corner points in the arctic)
With that said I tried to reproduce the behavior you describe with my up-to-date fork-branch and couldn't...
%%time

# From Poseidon-viewer:
ps = [{"type":"Point","coordinates":[-56.761672775466664, 60.13158802096402]},{"type":"Point","coordinates":[-39.43864698533882,23.746791019792084]}]

# Create dataset with station data for the time of interest
lons, lats = ospy.utils.viewer_to_range(ps)
Nstations = len(lons)

args = {
    "Xcoords": lons,
    "Ycoords": lats,
    "tcoords":'1992-03-16T12:00:00.000000000'
}
od_stations = od.subsample.stations(**args)
cut_od = od.subsample.cutout(XRange = [min(lons)-10,max(lons)+10],YRange = [min(lats)-5,max(lats)+5])
fig = plt.figure(figsize=(12, 5))
ax = cut_od.plot.horizontal_section(varName="Depth", cmap='Greys_r')
colors=['r', 'b', 'k', 'orange', 'darkgreen', 'm', 'yellow', 'c', 'indigo', 'magenta', 'green']
legestations_ds = np.arange(Nstations)
for i in range(Nstations):
    plt.plot(lons[i], lats[i], 'o', color=colors[i], label='station ' + str(legestations_ds[i]))
plt.legend();
plt.show()
# plot vertical profiles...
for i in range(Nstations):
    plt.subplot(1,2,1)
    plt.plot(od_stations._ds["THETA"].isel(station = i).squeeze(), od_stations._ds["Z"], color=colors[i], label='station ' + str(legestations_ds[i]))

    plt.subplot(1,2,2)
    plt.plot(od_stations._ds["SALT"].isel(station = i).squeeze(), od_stations._ds["Z"], color=colors[i], label='station ' + str(legestations_ds[i]))
plt.legend();
plt.show()


User profile pages return 404

Issue Summary
When viewing a blog post, clicking the author name/link should take you to the profile page with their blog posts.
This works for the administrator but not other users; these users get a 404.
Steps to Reproduce
Create a ghost blog instance using Ghost-CLI.
Import data from previous blog with multiple users.
Users are imported and can be viewed in admin; clicking their links in the blog returns 404 page.
Technical details:

Ghost Version: 1.0.0 Beta 2
Node Version: 6.11.0
Browser/OS: N/A
Database: sqlite3

I can replicate that on my installation. Apparently the reason for that is that when you import team members they are imported with status "locked". The problem is that you can't see that from admin panel as per #8652. The workaround is to suspend that user and unsuspend.

Ah cool; thanks @PaszaVonPomiot

@theDustRoom Thanks for your report 👋
Closing as it is related to #8652.

The workaround is to suspend that user and unsuspend.

If a user is locked on import, he get's a random password. So simply suspending, un-suspending won't resolve this completely, because the affected user can't login, but he can reset his password, but it's harder to guess for the user, because he would get an error message that his password is incorrect instead of showing "You account was locked, please reset your password".

I think this needs to be reopened. I am not sure when this bug was introduced, however it means that content on a blog may 404 if a user accidentally locks themselves out of their account, as well as meaning that a blog is effectively missing content after an import until all the users have unlocked their accounts.

@ErisDS Agree. I thought the behaviour for locked users is expected, i was wrong. We will fix this before releasing 1.0 officially 👍


Finish automated release: fix upload, release draft

[x] fix upload
[x] release draft
[x] DMG with Applications alias

switched to github4k


Resolve Frame-to-Page Visit event ordering

The problem
By attempting to avoid unnecessary renders and events by introducing the
willRender: Visit option, the initial <turbo-frame data-turbo-action="..."> implementation was skipping several crucial
lifecycle hooks. For example, the resulting Visit would fire a
turbo:render, but would not fire a turbo:load. This left the
<html> element in an inconsistent state without cleaning up any
[data-turbo-preview] or [aria-busy] attribute modifications.
The solution
Forego the willRender: option, and instead propose a visit with a
pre-populated statusCode, redirected, and responseHTML value so
that the Session (including all of its hooks) can handle transparently
the same as other Visit instances.
The result is much simpler than the original implementation: a promoted
Visit doesn't receive any specialized treatment, so it stands to
benefits from all the existing plumbing.

If this were merged, we could skip and close https://github.com/hotwired/turbo/pull/443 since https://github.com/hotwired/turbo/pull/444/commits/23963f120b5700fae5afa84750658e3a29e04ccd resolves the build error and https://github.com/hotwired/turbo/pull/444/commits/c5479d48ed10f38ff6d7ca03aa9de500c596696b fixes the flaky test more directly.


Warning in size limit

Recently I noticed that projects generated with webpack-simple template generate the following:
    WARNING in asset size limit: The following asset(s) exceed the recommended size limit (250 kB).
    This can impact web performance.
    Assets:
       build.js (1.4 MB)

    WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the       recommended limit (250 kB). This can impact web performance.
    Entrypoints:
    main (1.41 MB)
    build.js
    0.5e82a6ff665ce85050db.hot-update.js

This the the first time seeing these warnings. How do I fix this?

This seemed to fix it:
performance: {
hints: process.env.NODE_ENV === 'production' ? "warning" : false
},

Looks pretty clear imo. Having such a big file is not a good idea, you should split that file. Check the webpack template to get an idea about how to do it


Adversarial Arbitrary values for fuzzing

What problem does your feature solve?
In https://github.com/stellar/rs-soroban-sdk/pull/957 I mentioned that the Arbitrary impls for contract types never generate "adversarial" values.
The Soroban type system allows for Vals to have various states that are unexpected but representable. The fuzzing infrastructure doesn't generate these.
What would you like to see?
~Vals with bad tags~
These are no longer allowed by the runtime.
If a fuzz tests asks for a raw Val type then we should sometimes give them one with a bogus tag.
~Vecs and maps with heterogeneous element types~
Done.
The Rust wrappers around vecs and maps are not fully recursively typechecked when created - individual element accesses may fail due to dynamic typing errors.
When arbitrary vecs and maps are requested we should occasionally return ones where the keys and/or values are not the expected type but a random type.
~Object types with invalid references~
These are no longer allowed by the runtime.
For any of the possible object types (the ones that aren't encoded directly in the 64-bit rawval), we should sometimes provide a broken value; a good tag, but a reference that doesn't exist. I believe these are representable within the typed Rust wrappers around the various object kinds, and will produce errors at access-time.
~Object types that are shared references~
These are not actually possible. Soroban values are immutable.
Any object type might be a shared and mutable reference in the Soroban type system. This is something that would likely be unexpected to Rust programmers.
It would be desirable that, for any object types, the Arbitrary implementation returns the exact same reference as in a previous invocation, creating shared object references within the contract.
This is a pretty tough thing to do because it requires remembering the state of previous Arbitrary invocations. We would need to do this inside our SorobanArbitrary implementations, probably by stashing away previous objects in some private location in Env, then pulling them back out and returning them.
~Deeply nested vecs and maps~
I don't think this is worth doing. It would be rare code that would be rare code that would actually fail to this type, and the inevitable impact would be stack overflow and transaction failure.
This probably only makes sense for arbitrary Vals - typed vectors and maps can't be arbitrarily-deeply recursive. So deeply-nested containers may not be so useful for finding real bugs - it will only matter if a contract is attempting to fully and recursively interpret Val types, which would be an ambitious thing for a contract to do.
But we could provide deeply nested vecs and maps when a Val is requested.
~BytesN with more than N bytes.~
I don't think this is worth doing. It's possible to construct unsafely, and probably possible to transmit between contracts, but the constructor from Val to BytesN will always fail and terminate the transaction.
These may be possible.
What alternatives are there?
Don't do any of these.

Another unexpected but probably possible case:
BytesN that actually has > N bytes.

soroban-env has checks for object validity now that should make it impossible to create invalid objects.

soroban-env now also rejects bad tags

Done.


Switch to pytorch

Pytorch is proving to be much much easier to debug.
This will be key, especially when enabling Bayesian inference via variational inference.

Issues #45 #49 #50 try to address this.


DOM-35895 Supplemental images

This pull request is practically ready (requires final refactoring). It's in a draft state in order not to trigger github actions.


Feature/airflow status and mps file

This PR has some new changes.
Beware. One of this changes may break something. Now the execution status endpoint ("execution-status") now returns a json with the format {'status': 'state'}. I'm not sure if this was the case before.
Changes:

Cornflow now asks the status to airflow in case it has not finished.
New cornflow endpoint to send an mps. With some tests.
A couple tests on the cornflow-client.
Tests now use sqlite instead of postgres.

As a side comment I think we're going to have to change the name and type of the "finished" column in the execution table. That way we can store "finished" or "error". In both of these cases it should return the status to the user and not ask airflow for more info.

I think everything is alrright, just some minor comments. Check them and we can merge.

I think everything is alrright, just some minor comments. Check them and we can merge.

I've just see that my comments in this page are not correctly seen as the show the above code, not the below code, that is the one that I am always referencing, please check the comments in the files changed tab.

I've just see that my comments in this page are not correctly seen as the show the above code, not the below code, that is the one that I am always referencing, please check the comments in the files changed tab.


There are no d and e pins. panel works differently.

There are no d and e pins. panel works differently. https://imgur.com/0rL6SeR

Please insert clear photo panel's rear side .
There should be at least two types chips on the panel, please copy its partnumbers to the forum.

Below is the panel I tried(The 32x64 panel is the one I shared with you. ). When it didn't work, I tried the other panel, but it didn't work either.

It is normal for these panels that they have A B C pins only.The both panels are 8 scan, so they doesnt requires D and E pins for multiplexing.
Please find a chips on the panel and copy it partnumbers  to the forum.

https://ibb.co/3yKdk8w

https://ibb.co/ydtCNF3

Hi
These drivers are the most common types. The panel should work with the current library. The only problem is that a some pixel mapping could required.

how can I do that?

Honesty, I don't know how to remapping pixels in this library. You should ask the author.


[DMN-Editor] Prefix of imported file is used wrongly

There is a namespace error when using datatypes from an imported model. The attribute names are incorrectly showing the prefix of the type.
Assume we have a file that contains a data type:

That file is imported from another .dmn file, that consumes the data types:

Now in that file we create a decision, and specify the imported data type. We also give it some input:

If I open the Edit button on the decision, I am able to select an expression. I select decision table:

The input and output columns are filled automatically, but wrong:

As you can see, the attribute names are prefixed with the namespace of the imported file.
What I expected is this:

This clearly is a bug.

reproducer_Kie-issues_435.zip

I see now that I reported a similar issue: https://issues.redhat.com/browse/KOGITO-7601

Great catch. Definitely a bug. Thanks for all the issues you're reporting @hanjoosten! We still have a long way to go, but we'll get there. Please do keep reporting everything you find, and feel welcome to propose new ideas as well. Every contribution helps!

Will be fixed as part of #577.


MMC_supervised is not deterministic

Description
Hi there, I have found that you have used random sampling in the MMC_supervised, however, I found that by doing this the output transformation matrix is not deterministic, that is, for a fixed input, the fitting results are not identical.
Steps/Code to Reproduce
Example:
from metric_learn import MMC_Supervised, MMC
from sklearn.datasets import load_iris
import numpy as np

iris_data = load_iris()
X = iris_data['data']
Y = iris_data['target']

n = X.shape[0]
mask = (Y[None] == Y[:,None])
a, b = np.nonzero(np.triu(mask, k=1))
c, d = np.nonzero(np.triu(~mask, k=1))

for trial_num in range(3):
    mmc = MMC(convergence_threshold=0.01)
    mmc.fit(X, (a, b, c, d))
    L = mmc.transform(np.diag(np.ones(4)))
    print('\n MMC No.%d Trial'%(trial_num+1))
    print(np.dot(L, L.T).round(6))

    mmc_s = MMC_Supervised(convergence_threshold=0.01)
    mmc_s.fit(X, Y)
    L = mmc_s.transform(np.diag(np.ones(4)))
    print('\n MMC_Supervised No.%d Trial'%(trial_num+1))
    print(np.dot(L, L.T).round(6))

Expected Results

The outputs should all be identical(actually this is the exact case in the test code).
[[ 0.000514  0.000868 -0.001195 -0.001703]
 [ 0.000868  0.001468 -0.002021 -0.002879]
 [-0.001195 -0.002021  0.002782  0.003964]
 [-0.001703 -0.002879  0.003964  0.005648]]

Actual Results

 MMC No.1 Trial
[[ 0.000514  0.000868 -0.001195 -0.001703]
 [ 0.000868  0.001468 -0.002021 -0.002879]
 [-0.001195 -0.002021  0.002782  0.003964]
 [-0.001703 -0.002879  0.003964  0.005648]]

 MMC_Supervised No.1 Trial
[[ 0.001361  0.000813 -0.00236  -0.002915]
 [ 0.000813  0.000485 -0.001409 -0.001741]
 [-0.00236  -0.001409  0.004092  0.005054]
 [-0.002915 -0.001741  0.005054  0.006243]]

 MMC No.2 Trial
[[ 0.000514  0.000868 -0.001195 -0.001703]
 [ 0.000868  0.001468 -0.002021 -0.002879]
 [-0.001195 -0.002021  0.002782  0.003964]
 [-0.001703 -0.002879  0.003964  0.005648]]

 MMC_Supervised No.2 Trial
[[ 0.000738  0.001115 -0.001666 -0.001599]
 [ 0.001115  0.001683 -0.002516 -0.002413]
 [-0.001666 -0.002516  0.00376   0.003607]
 [-0.001599 -0.002413  0.003607  0.00346 ]]

 MMC No.3 Trial
[[ 0.000514  0.000868 -0.001195 -0.001703]
 [ 0.000868  0.001468 -0.002021 -0.002879]
 [-0.001195 -0.002021  0.002782  0.003964]
 [-0.001703 -0.002879  0.003964  0.005648]]

 MMC_Supervised No.3 Trial
[[ 0.000421  0.000776 -0.00126  -0.001333]
 [ 0.000776  0.00143  -0.002322 -0.002456]
 [-0.00126  -0.002322  0.003769  0.003987]
 [-0.001333 -0.002456  0.003987  0.004217]]

for the trails with MMC_surpervised, it is not deterministic.

Yes, this is a consequence of using random sampling to generate constraints from a labeled dataset to approximate supervised learning using a semi-supervised algorithm like MMC.
You can guarantee deterministic behavior for MMC_Supervised by passing a fixed random_state parameter to the fit method.

Is this for the purpose to derive non-trivial results? or to save the computation cost for large data set...?

Yes, this is a consequence of using random sampling to generate constraints from a labeled dataset to approximate supervised learning using a semi-supervised algorithm like MMC.
You can guarantee deterministic behavior for MMC_Supervised by passing a fixed random_state parameter to the fit method.

Is this for the purpose to derive non-trivial results? or to save the computation cost for large data set...?

Is this for the purpose to derive non-trivial results?

What do you mean by non-trivial results ?

or to save the computation cost for large data set...?

Yes, if we trained on all possible pairs, we would have n_samples**2 pairs, which can become huge
Also, I think having a sampling strategy allows to balance the constraints, i.e. have the same number of positive pairs and negative pairs, which would most of times not be the case if we used all possible pairs

What do you mean by non-trivial results ?
There are some circumstances where the MMC will raise ValueError '...has no non-trivial dissimilarity constraints given for MMC', which might due to the unideal separation property of the input features and similarity constraints. During my implementation, I will return the initial setting of the algorithms, which is np.diag(np.ones(n_features)) :)

What do you mean by non-trivial results ?

There are some circumstances where the MMC will raise ValueError '...has no non-trivial dissimilarity constraints given for MMC', which might due to the unideal separation property of the input features and similarity constraints. During my implementation, I will return the initial setting of the algorithms, which is np.diag(np.ones(n_features)) :)

What do you mean by non-trivial results ?
There are some circumstances where the MMC will raise ValueError '...has no non-trivial dissimilarity constraints given for MMC', which might due to the unideal separation property of the input features and similarity constraints. During my implementation, I will return the initial setting of the algorithms, which is np.diag(np.ones(n_features)) :)

What do you mean by non-trivial results ?

There are some circumstances where the MMC will raise ValueError '...has no non-trivial dissimilarity constraints given for MMC', which might due to the unideal separation property of the input features and similarity constraints. During my implementation, I will return the initial setting of the algorithms, which is np.diag(np.ones(n_features)) :)

This error should be raised if MMC has not managed to find any pair of two similar points or any pair of two dissimilar points, that are actual different points (up to a tolerance of 1e-9), see these lines:
https://github.com/metric-learn/metric-learn/blob/617f7e5e5d202422f8957dafecea7d361f4110cd/metric_learn/mmc.py#L83-L91
By the way, these lines will be removed in the next release, since we'll assume it's the responsability of the user to have good data. But if the user has regular good data (i.e. data with several classes, and several samples per classes, for instance), it should not raise this error, so it's weird that you see it.
Could you provide a minimum example of when you have this message thrown ? We could investigate whether this is a bug or not

I'am not sure whether this comes from the implicit module bug or the poor of the data. Need to noticing that during my implementation, there is no two identical instances during my training set.
import warnings
warnings.filterwarnings("ignore", category=FutureWarning)
data_dict = dict()

for respondent_id in range(35):
    #print(respondent_id)
    for week_idx in range(1,11,1):
        weighted_pred = weighted_prediction(round_idx=week_idx)
        y_test = weighted_pred[respondent_id].values.reshape(-1, 1)
        mask = (y_test[None] == y_test[:,None])[:,:,0]
        a, b = np.nonzero(np.triu(mask, k=1))
        c, d = np.nonzero(np.triu(~mask, k=1))

        mmc = MMC(convergence_threshold=0.01)

        try:
            mmc.fit(X_test.values, (a, b, c, d))
            L = mmc.transform(np.diag(np.ones(9)))
            M = np.dot(L, L.T)
        except ValueError:
            print('R%d_W%d has no non-trivial dissimilarity constraints given for MMC.'%(respondent_id+1, week_idx))
            M = 0.1 * np.diag(np.ones(9))

        data_dict['R%d_W%d'%(respondent_id+1, week_idx)] = M

        #print(np.dot(L, L.T).round(2))
        #print(np.dot(L, L.T).round(4) ,"")
        #print('============================================\n')
np.save(r'../new_data/mmc_metric.npy', data_dict)

Output:
R5_W9 has no non-trivial dissimilarity constraints given for MMC.

week_idx = 8
respondent_id = 4

weighted_pred = weighted_prediction(round_idx=week_idx)
y_test = weighted_pred[respondent_id].values.reshape(-1, 1)
mask = (y_test[None] == y_test[:,None])[:,:,0]
a, b = np.nonzero(np.triu(mask, k=1))
c, d = np.nonzero(np.triu(~mask, k=1))
y_test.ravel()

Output:
array([-5,  6,  6,  6,  5,  6, -5, -5,  3, -4,  6, -5,  6, -5,  6,  6,  6,
       -5, -5, -5, -3,  6, -5,  5,  6,  5, -5,  5,  6,  6, -4,  6, -5,  5,
        6,  5,  5,  6,  6,  6, -5,  6, -3,  5,  5,  6,  5,  5,  5,  6])

I think you need to look at week_idx = 9 to see the case that raised the error.

Oh..I change the week_idx into 9, it seems that it is due to the input data..many thanks
y_test.ravel()

array([-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
       -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1])


League of Legends doesnt work

While downloading League of legends it downloads until a certain point and than gives a error 004.
When i delete the DNS it downloads again.

Can you provide any logfiles from the docker container (docker logs container id) that might show any errors, or from any logging in the League client.
We're not aware of any issues currently affecting caching for LoL.

The other thing to ensure is that you are running the SNI Proxy container. Details are in the readme and FAQ. It needs to listen on port 443 on the same IP as the cache server. It is used to pass through HTTPS traffic and is required for LoL and Blizzard.


Bump webpack to 3.0.0 and update related deps

Note: Work in progress :construction:
Addressing #1815
Quoting @TheLarkInn here-

Migrating from webpack 2 to 3, should involve no effort beyond running the upgrade commands in your terminal. We marked this as a Major change because of internal breaking changes that could affect some plugins.

For webpack 3 overview, head over to this awesome medium article.
UPDATE
Minor reduction in main bundle size after using ModuleConcatenationPlugin()- 693kb -> 684kb
Known Issue
Looks like html-webpack-plugin is incompatible with webpack 3. So expect this warning while installing dependencies.
warning<EMAIL_ADDRESS>has incorrect peer dependency "webpack@1 || ^2 || ^2.1.0-beta || ^2.2.0-rc".

Coverage remained the same at 100.0% when pulling 3df8fcdc0c0d34ded842f93b10806c8dd5bcbfaf on KarandikarMihir:feat/webpack3 into a07d70e576a73f4beca359a4fd68498985894994 on react-boilerplate:dev.

Coverage remained the same at 100.0% when pulling 47544487e05734aec99c43a74aca82b68a74f2b6 on KarandikarMihir:feat/webpack3 into a07d70e576a73f4beca359a4fd68498985894994 on react-boilerplate:dev.

@gihrig @Dattaya I came across this comment after adding ModuleConcatenationPlugin. We can add that plugin later when things are stable.

@KarandikarMihir, agreed.
If it's not the only bug it would be better to wait until webpack 3 is more stable before mergin.

@KarandikarMihir Yes, I agree as well, stay with webpack 2 until 3 and related packages are stable.
In the case of webpack 1 -> 2 there were features we wanted to use so we went with beta versions. Is there any such use case for webpack 3?
Finally webpack 3 has many breaking changes, updating will require very thorough testing by several people.

@Dattaya @gihrig Thank you for your inputs. Let's sit on this for a while, then.

I've updated my project generated with react-boilerplate to webpack 3.
The main problem was with html-webpack-plugin and extract-text-webpack-plugin
I had to upgrade them to :
        "extract-text-webpack-plugin": "3.0.0-beta.3",
        "html-webpack-plugin": "2.29.0",
        "webpack": "3.0.0",

it may be time to take another look at this... things seem to have stabilized, what do you guys think? would be great to include with next release

Looks like html-webpack-plugin is incompatible

It supports webpack v3 since 2.29

@pgdejardin Awesome! @justingreenberg @Dattaya Sorry for the late reply. I'm looking into this as I type.

Coverage remained the same at 100.0% when pulling f11c24906d0fd887cb630f4e9cbb715296de30bc on KarandikarMihir:feat/webpack3 into d54858f1dcb3cb61b719c7521c3151fcf0ec9cc1 on react-boilerplate:dev.

Coverage remained the same at 100.0% when pulling 9b13688b65c9902370ccd550b75fba696c62f45e on KarandikarMihir:feat/webpack3 into d54858f1dcb3cb61b719c7521c3151fcf0ec9cc1 on react-boilerplate:dev.

Coverage remained the same at 100.0% when pulling 20f6da8959861f3ae0f5ead97f5daa193423d0aa on KarandikarMihir:feat/webpack3 into d54858f1dcb3cb61b719c7521c3151fcf0ec9cc1 on react-boilerplate:dev.

Unfortunately hot reloading with Webpack 3.x is still broken (for example, try to modify HomePage) at first I thought it's webpack's fault but now I can't reproduce the bug in a basic hot reloading demo. I'll need to investigate it further.

Do we even need ModuleConcatenationPlugin in development? For the time being we can move it to the production config (main chunk will be reduced down from 668kB to 655kB) and that'll resolve the problem.

I can't reproduce

btw, I did manage to reproduce the bug: https://github.com/webpack/webpack/issues/5510; it's now marked as 'urgent'. Also I've noticed in 3.5.4 release notes this: 'HMR: disable Scope Hoisting for modules using HMR' and we hot reload almost everything. So I still think it's a good idea to move this plugin to the production config and then we can merge this PR.

@Dattaya 👏 awesome!!

3.5.5 Released!

whoa, @ sokra is so fast, amazing work.

@Dattaya Do we still need to move ModuleConcatenationPlugin?

Coverage remained the same at 100.0% when pulling e1376d4fc9c39326b9ff26d7150849f21f705c51 on KarandikarMihir:feat/webpack3 into 0fd58488d1404ceb23ffdcd85c359c9e3cdc0773 on react-boilerplate:dev.

In my experience incremental builds became around 400ms slower and it's still possible to stumble on edge cases; I experienced one weird bug during hot reloading and had to restart the server to get rid of it, now I don’t remember how to reproduce the bug. So my preference is to use ModuleConcatenationPlugin only in production. But if you, or @justingreenberg, or @gihrig want to keep it, I'm fine with that too.

@justingreenberg @gihrig I'm not sure what exactly ModuleConcatenationPlugin does.. Could you shed some light and help close this one?

@KarandikarMihir

Scope Hoisting is the flagship feature of webpack 3. One of webpack’s trade-offs when bundling was that each module in your bundle would be wrapped in individual function closures. These wrapper functions made it slower for your JavaScript to execute in the browser. In comparison, tools like Closure Compiler and RollupJS ‘hoist’ or concatenate the scope of all your modules into one closure and allow for your code to have a faster execution time in the browser.

You can now add the following plugin to your configuration to enable scope hoisting:

module.exports = {
  plugins: [
    new webpack.optimize.ModuleConcatenationPlugin()
  ]
};

Scope Hoisting is specifically a feature made possible by ECMAScript Module syntax. Because of this webpack may fallback to normal bundling based on what kind of modules you are using, and other conditions.
To stay informed on what triggers these fallbacks, we’ve added a --display-optimization-bailout cli flag that will tell you what caused the fallback.

Because scope hoisting will remove function wrappers around your modules, you may see some small size improvements. However, the significant improvement will be how fast the JavaScript loads in the browser. If you have awesome before and after comparisons, feel free to respond with some data as we’d be honored to share it!

@DJTB Thanks! :sweat_smile: I know it's used for scope hoisting.. I was actually referring to-

In my experience incremental builds became around 400ms slower

Sorry if that was confusing. Did you experience anything similar? We're not using webpack 3 yet in our project, so I don't have any hands-on experience.
@Dattaya Let's keep ModuleConcatenationPlugin in both dev and production. That way more people will use it and chances of finding that weird bug will be more. Fixing it is just one line change..

Coverage remained the same at 100.0% when pulling 8a169ac41d2eb3c265d70d8e80baeeae459c4201 on KarandikarMihir:feat/webpack3 into 2ffd85fd4dd6864b6168c1c1fd12c7025c30aa97 on react-boilerplate:dev.

@KarandikarMihir I'm only using it in production, and I haven't benchmarked that since I don't expect it to be speedy anyway :turtle:
I assume in dev it slows down the incremental builds simply since there's more work for webpack to do - and the benefits of the plugin aren't really necessary there either since the browser code execution is slowed down by prop checks and redux devtools etc regardless

@DJTB Aah.. Okay. Then let's remove it from dev config without further delay, since we have 2 votes.

Coverage remained the same at 100.0% when pulling 259d7d9d4176ea6247bb971659f4e0cd56767716 on KarandikarMihir:feat/webpack3 into 2ffd85fd4dd6864b6168c1c1fd12c7025c30aa97 on react-boilerplate:dev.


#412 Add path validation in untracked files processing

Fixes #412

I've implemented a function _get_file_lines that emulates the behavior of self._git_diff(), which returns an empty list for binary files. Additionally, the function leverages the basic path validation mechanisms used in self._git_diff() to ensure consistency.

Yes, it's ready. I have added the tests and ran the linters using the script poetry run bash -x verify.sh.

Alright, lets get this out there. Thanks for the PR!

Released https://pypi.org/project/diff-cover/9.1.1/ Thanks again!


SE cannot find the blueprint file due to incorrect number formatting.

In certain cultures, the program incorrectly uses a comma for numbers instead of the decimal points that space engineers is expecting. In game, when attempting to paste the file, the error "Cannot find the blueprint file" will show. Replacing all commas with decimal points will fix the issue.

Fixed in v1.1


NullPointerException occurs after another plugin fails

Error
I ran into what looks like an edge case related to a different plugin (vista.vim) failing. Here's the :messages output:

Conjure is working fine in general, I just run into this problem when vista fails. Here's the timeline that reliably produces the error condition:

I have a prepl already started for my project. (Conjure will connect to it successfully if I don't attempt to open the vista.vim sidebar like I do below.)
I start a Vim session, editing a .clj file in my project.
I run :Vista!! to open the vista.vim sidebar.
Vista throws an error. (the first error in the screenshot above)
Conjure then does its usual startup routine where it tries to connect to prepls according to my conjure.edn settings.
Conjure throws an error. (the second error in the screenshot above, starting with Error from thread 'RPC message handler')

Logs
19-07-17 16:29:59 moondog INFO [conjure.main:40] - Logging initialised
19-07-17 16:29:59 moondog INFO [conjure.main:42] - System versions
=== Conjure ===
v0.22.0-0-g0cbb94a56f

=== OS ===
Linux moondog 4.15.0-54-generic #58~16.04.1-Ubuntu SMP Mon Jun 24 13:21:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

=== Neovim ===
NVIM v0.4.0-dev
Build type: RelWithDebInfo
LuaJIT 2.0.4
Compilation: /usr/bin/x86_64-linux-gnu-gcc -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -DMIN_LOG_LEVEL=3 -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wvla -fstack-protector-strong -fdiagnostics-color=auto -Wno-array-bounds -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -I/build/neovim-Vk_ngi/neovim-0.4.0+ubuntu3+git201907152022-5193826-f1ec5d7/build/config -I/build/neovim-Vk_ngi/neovim-0.4.0+ubuntu3+git201907152022-5193826-f1ec5d7/src -I/build/neovim-Vk_ngi/neovim-0.4.0+ubuntu3+git201907152022-5193826-f1ec5d7/.deps/usr/include -I/usr/include -I/build/neovim-Vk_ngi/neovim-0.4.0+ubuntu3+git201907152022-5193826-f1ec5d7/build/src/nvim/auto -I/build/neovim-Vk_ngi/neovim-0.4.0+ubuntu3+git201907152022-5193826-f1ec5d7/build/include
Compiled by buildd@lgw01-amd64-005

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

Run :checkhealth for more info

=== Java ===
openjdk version "11.0.4-ea" 2019-07-16
OpenJDK Runtime Environment (build 11.0.4-ea+9-post-Ubuntu-1ubuntu116.04.1)
OpenJDK 64-Bit Server VM (build 11.0.4-ea+9-post-Ubuntu-1ubuntu116.04.1, mixed mode, sharing)

19-07-17 16:29:59 moondog INFO [conjure.rpc:149] - Starting RPC TCP server on port 35339
19-07-17 16:29:59 moondog INFO [conjure.rpc:167] - Starting RPC loops
19-07-17 16:29:59 moondog INFO [conjure.prepl:196] - Started prepl server on port 38857
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :notify, :method :up, :params [""], :client :stdio}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-set-var, :params ["conjure_ready" 1]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 2, :method :nvim-get-current-buf, :params nil}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error nil, :result nil, :client :stdio}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 2, :error nil, :result #msgpack.core.Ext{:type 0, :data #object["[B" 0x5b37e33f "[B@5b37e33f"]}, :client :stdio}
19-07-17 16:29:59 moondog INFO [conjure.main:47] - Everything's ready! Let's perform some magic.
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 3, :method :nvim-call-atomic, :params [(["nvim_buf_get_name" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x5b37e33f "[B@5b37e33f"]}]] ["nvim_buf_line_count" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x5b37e33f "[B@5b37e33f"]}]] ["nvim_buf_get_lines" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x5b37e33f "[B@5b37e33f"]} 0 25 false]] ["nvim_get_current_win" []])]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 3, :error nil, :result [["/home/dave/code/api-proxy/src/adzerk/api_proxy_dev.clj" 13 ["(ns adzerk.api-proxy-dev" "  \"DEVELOPMENT-ONLY entrypoint that wraps the application with a wrap-reload handler.\"" "  (:require [adzerk.api-proxy :as api-proxy]" "            [ring.middleware.reload :refer [wrap-reload]]" "            [clojure.java.io :as io]))" "" "(def src-dirs" "  (filter #(not (.endsWith % \".jar\"))" "          (.split (System/getProperty \"fake.class.path\") \":\")))" "" "(def app" "  (-> #'api-proxy/app" "      (wrap-reload {:dirs src-dirs})))"] #msgpack.core.Ext{:type 1, :data #object["[B" 0x4101a8c5 "[B@4101a8c5"]}] nil], :client :stdio}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-call-function, :params ["getcwd" (0)]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error nil, :result "/home/dave/code/api-proxy", :client :stdio}
19-07-17 16:29:59 moondog INFO [conjure.prepl:121] - Adding :cwd <IP_ADDRESS> 34829
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-get-var, :params ["conjure_log_auto_open"]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error nil, :result ["ret-multiline" "out" "err" "tap" "doc" "test"], :client :stdio}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-execute-lua, :params ["return require('conjure').upsert_log(...)" ("/tmp/conjure.cljc" "small" false false true)]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error [0 "Error executing lua: /home/dave/.vim/bundle/conjure//lua/conjure.lua:87: Vim(if):E482: Can't open file /tmp/user/10007d12eecc0088a7ae6e413b2dd9867a4f3aabb0807309eacc4899826f7042e53a.clj for writing: permission denied"], :result nil, :client :stdio}
19-07-17 16:29:59 moondog ERROR [conjure.nvim.api:12] - Error while making nvim call {:method :nvim-execute-lua, :params ["return require('conjure').upsert_log(...)" ("/tmp/conjure.cljc" "small" false false true)]} -> {:error [0 "Error executing lua: /home/dave/.vim/bundle/conjure//lua/conjure.lua:87: Vim(if):E482: Can't open file /tmp/user/10007d12eecc0088a7ae6e413b2dd9867a4f3aabb0807309eacc4899826f7042e53a.clj for writing: permission denied"], :result nil}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-buf-line-count, :params [nil]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error [0 "Wrong type for argument 1, expecting Buffer"], :result nil, :client :stdio}
19-07-17 16:29:59 moondog ERROR [conjure.nvim.api:12] - Error while making nvim call {:method :nvim-buf-line-count, :params [nil]} -> {:error [0 "Wrong type for argument 1, expecting Buffer"], :result nil}
19-07-17 16:29:59 moondog ERROR [conjure.util:63] - Error while pretty printing java.lang.Exception: :parse-string-all? requires a string!
19-07-17 16:29:59 moondog ERROR [conjure.rpc:?] - Error from thread 'RPC message handler': java.lang.NullPointerException
19-07-17 16:30:24 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :notify, :method :stop, :params [0], :client :stdio}
19-07-17 16:30:24 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-get-current-buf, :params nil}
19-07-17 16:30:24 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error nil, :result #msgpack.core.Ext{:type 0, :data #object["[B" 0x75fc5f53 "[B@75fc5f53"]}, :client :stdio}
19-07-17 16:30:24 moondog ERROR [conjure.util:63] - Error while pretty printing java.lang.Exception: :parse-string-all? requires a string!
19-07-17 16:30:24 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-call-atomic, :params [(["nvim_buf_get_name" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x75fc5f53 "[B@75fc5f53"]}]] ["nvim_buf_line_count" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x75fc5f53 "[B@75fc5f53"]}]] ["nvim_buf_get_lines" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x75fc5f53 "[B@75fc5f53"]} 0 25 false]] ["nvim_get_current_win" []])]}
19-07-17 16:30:24 moondog ERROR [conjure.rpc:?] - Error from thread 'RPC stdin handler': java.io.EOFException
19-07-17 16:30:24 moondog INFO [conjure.main:22] - Shutting down

Ah damn, I'm sorry, that's really annoying! I'll have a dig asap. I see
some errors around not being able to read a file in tmp which looks fishy
to me. I didn't think conjure read files like that 🤔 I'll solve it!
On Wed, 17 Jul 2019, 17:40 Dave Yarwood<EMAIL_ADDRESS>wrote:

Error
I ran into what looks like an edge case related to a different plugin (
vista.vim https://github.com/liuchengxu/vista.vim) failing. Here's the
:messages output:
[image: 2019-07-17-123252_1719x292_scrot]
https://user-images.githubusercontent.com/4909079/61393487-0ccc0e00-a88f-11e9-8be1-cc441071cdb4.png
Conjure is working fine in general, I just run into this problem when
vista fails. Here's the timeline that reliably produces the error condition:

I have a prepl already started for my project. (Conjure will
connect to it successfully if I don't attempt to open the vista.vim
sidebar like I do below.)
I start a Vim session, editing a .clj file in my project.
I run :Vista!! to open the vista.vim sidebar.
Vista throws an error. (the first error in the screenshot above)
Conjure then does its usual startup routine where it tries to
connect to prepls according to my conjure.edn settings.
Conjure throws an error. (the second error in the screenshot above,
starting with Error from thread 'RPC message handler')

Logs
19-07-17 16:29:59 moondog INFO [conjure.main:40] - Logging initialised
19-07-17 16:29:59 moondog INFO [conjure.main:42] - System versions
=== Conjure ===
v0.22.0-0-g0cbb94a56f
=== OS ===
Linux moondog 4.15.0-54-generic #58~16.04.1-Ubuntu SMP Mon Jun 24 13:21:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
=== Neovim ===
NVIM v0.4.0-dev
Build type: RelWithDebInfo
LuaJIT 2.0.4
Compilation: /usr/bin/x86_64-linux-gnu-gcc -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -DMIN_LOG_LEVEL=3 -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wvla -fstack-protector-strong -fdiagnostics-color=auto -Wno-array-bounds -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -I/build/neovim-Vk_ngi/neovim-0.4.0+ubuntu3+git201907152022-5193826-f1ec5d7/build/config -I/build/neovim-Vk_ngi/neovim-0.4.0+ubuntu3+git201907152022-5193826-f1ec5d7/src -I/build/neovim-Vk_ngi/neovim-0.4.0+ubuntu3+git201907152022-5193826-f1ec5d7/.deps/usr/include -I/usr/include -I/build/neovim-Vk_ngi/neovim-0.4.0+ubuntu3+git201907152022-5193826-f1ec5d7/build/src/nvim/auto -I/build/neovim-Vk_ngi/neovim-0.4.0+ubuntu3+git201907152022-5193826-f1ec5d7/build/include
Compiled by buildd@lgw01-amd64-005
Features: +acl +iconv +tui
See ":help feature-compile"
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/usr/share/nvim"
Run :checkhealth for more info
=== Java ===
openjdk version "11.0.4-ea" 2019-07-16
OpenJDK Runtime Environment (build 11.0.4-ea+9-post-Ubuntu-1ubuntu116.04.1)
OpenJDK 64-Bit Server VM (build 11.0.4-ea+9-post-Ubuntu-1ubuntu116.04.1, mixed mode, sharing)
19-07-17 16:29:59 moondog INFO [conjure.rpc:149] - Starting RPC TCP server on port 35339
19-07-17 16:29:59 moondog INFO [conjure.rpc:167] - Starting RPC loops
19-07-17 16:29:59 moondog INFO [conjure.prepl:196] - Started prepl server on port 38857
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :notify, :method :up, :params [""], :client :stdio}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-set-var, :params ["conjure_ready" 1]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 2, :method :nvim-get-current-buf, :params nil}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error nil, :result nil, :client :stdio}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 2, :error nil, :result #msgpack.core.Ext{:type 0, :data #object["[B" 0x5b37e33f "[B@5b37e33f"]}, :client :stdio}
19-07-17 16:29:59 moondog INFO [conjure.main:47] - Everything's ready! Let's perform some magic.
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 3, :method :nvim-call-atomic, :params [(["nvim_buf_get_name" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x5b37e33f "[B@5b37e33f"]}]] ["nvim_buf_line_count" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x5b37e33f "[B@5b37e33f"]}]] ["nvim_buf_get_lines" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x5b37e33f "[B@5b37e33f"]} 0 25 false]] ["nvim_get_current_win" []])]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 3, :error nil, :result [["/home/dave/code/api-proxy/src/adzerk/api_proxy_dev.clj" 13 ["(ns adzerk.api-proxy-dev" "  "DEVELOPMENT-ONLY entrypoint that wraps the application with a wrap-reload handler."" "  (:require [adzerk.api-proxy :as api-proxy]" "            [ring.middleware.reload :refer [wrap-reload]]" "            [clojure.java.io :as io]))" "" "(def src-dirs" "  (filter #(not (.endsWith % ".jar"))" "          (.split (System/getProperty "fake.class.path") ":")))" "" "(def app" "  (-> #'api-proxy/app" "      (wrap-reload {:dirs src-dirs})))"] #msgpack.core.Ext{:type 1, :data #object["[B" 0x4101a8c5 "[B@4101a8c5"]}] nil], :client :stdio}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-call-function, :params ["getcwd" (0)]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error nil, :result "/home/dave/code/api-proxy", :client :stdio}
19-07-17 16:29:59 moondog INFO [conjure.prepl:121] - Adding :cwd <IP_ADDRESS> 34829
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-get-var, :params ["conjure_log_auto_open"]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error nil, :result ["ret-multiline" "out" "err" "tap" "doc" "test"], :client :stdio}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-execute-lua, :params ["return require('conjure').upsert_log(...)" ("/tmp/conjure.cljc" "small" false false true)]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error [0 "Error executing lua: /home/dave/.vim/bundle/conjure//lua/conjure.lua:87: Vim(if):E482: Can't open file /tmp/user/10007d12eecc0088a7ae6e413b2dd9867a4f3aabb0807309eacc4899826f7042e53a.clj for writing: permission denied"], :result nil, :client :stdio}
19-07-17 16:29:59 moondog ERROR [conjure.nvim.api:12] - Error while making nvim call {:method :nvim-execute-lua, :params ["return require('conjure').upsert_log(...)" ("/tmp/conjure.cljc" "small" false false true)]} -> {:error [0 "Error executing lua: /home/dave/.vim/bundle/conjure//lua/conjure.lua:87: Vim(if):E482: Can't open file /tmp/user/10007d12eecc0088a7ae6e413b2dd9867a4f3aabb0807309eacc4899826f7042e53a.clj for writing: permission denied"], :result nil}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-buf-line-count, :params [nil]}
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error [0 "Wrong type for argument 1, expecting Buffer"], :result nil, :client :stdio}
19-07-17 16:29:59 moondog ERROR [conjure.nvim.api:12] - Error while making nvim call {:method :nvim-buf-line-count, :params [nil]} -> {:error [0 "Wrong type for argument 1, expecting Buffer"], :result nil}
19-07-17 16:29:59 moondog ERROR [conjure.util:63] - Error while pretty printing java.lang.Exception: :parse-string-all? requires a string!
19-07-17 16:29:59 moondog ERROR [conjure.rpc:?] - Error from thread 'RPC message handler': java.lang.NullPointerException
19-07-17 16:30:24 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :notify, :method :stop, :params [0], :client :stdio}
19-07-17 16:30:24 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-get-current-buf, :params nil}
19-07-17 16:30:24 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error nil, :result #msgpack.core.Ext{:type 0, :data #object["[B" 0x75fc5f53 "[B@75fc5f53"]}, :client :stdio}
19-07-17 16:30:24 moondog ERROR [conjure.util:63] - Error while pretty printing java.lang.Exception: :parse-string-all? requires a string!
19-07-17 16:30:24 moondog TRACE [conjure.rpc:186] - Sending RPC message: {:type :request, :client :stdio, :id 1, :method :nvim-call-atomic, :params [(["nvim_buf_get_name" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x75fc5f53 "[B@75fc5f53"]}]] ["nvim_buf_line_count" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x75fc5f53 "[B@75fc5f53"]}]] ["nvim_buf_get_lines" [#msgpack.core.Ext{:type 0, :data #object["[B" 0x75fc5f53 "[B@75fc5f53"]} 0 25 false]] ["nvim_get_current_win" []])]}
19-07-17 16:30:24 moondog ERROR [conjure.rpc:?] - Error from thread 'RPC stdin handler': java.io.EOFException
19-07-17 16:30:24 moondog INFO [conjure.main:22] - Shutting down
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Olical/conjure/issues/50?email_source=notifications&email_token=AACM6XPULXGPM3GGQF3Z4OTP75DPBA5CNFSM4IESLL22YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G7ZL5FA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AACM6XKN7BGAK32WPUHWCPDP75DPBANCNFSM4IESLL2Q
.

That Can't open file /tmp... error is from vista.vim, to clarify :)

Also thank you for calling it an edge case rather than a bug, that's one step away from calling it an unintended feature :smile:

So this error is actually coming out of Conjure:
19-07-17 16:29:59 moondog TRACE [conjure.rpc:199] - Received RPC message: {:type :response, :id 1, :error [0 "Error executing lua: /home/dave/.vim/bundle/conjure//lua/conjure.lua:87: Vim(if):E482: Can't open file /tmp/user/10007d12eecc0088a7ae6e413b2dd9867a4f3aabb0807309eacc4899826f7042e53a.clj for writing: permission denied"], :result nil, :client :stdio}

More precisely, it's coming out of the Lua function, upsert_log. So it seems like there might be a race condition there somewhere :thinking:

So the error is coming from this:
    if open then
      if focus ~= true then
        vim.api.nvim_command("wincmd p") -- <- this line
      end
    else
      vim.api.nvim_command("wincmd q")
    end

How's develop look for you now @daveyarwood? I basically wrapped that wincmd p in pcall which is kinda like a catch all? Because I think it's the act of going to the previous buffer that's causing this issue, which is weird.
I'm just kinda paving over this edge case since it's not something Conjure is causing directly... as far as I can tell.

The changes on develop do not seem to fix this issue. The behavior seems to be the same, although I haven't dug into the logs to verify if anything has changed. Here they are, in case it's helpful.
Screenshot:

Logs:
conjure.log

Ah, that sucks :sob: okay, I'll have another dig, I'm not sure what could be causing it right now.

Oh, did https://github.com/liuchengxu/vista.vim/issues/124 fix the issue? Because I was beginning to see what vista was doing to check if it was conflicting with Conjure and it's log buffer upsert somehow. Basically that permission error was causing the log buffer to never get created which breaks all sorts of things.
Luckily the upsert is run every time, so that's why it works after you attempt something else.