Characters' recipes not showing up in professions tab

I'm having problems seeing entire recipe sets from characters when I click on the profession from the professions tab. I know that the addon has stored the professions data because when I click on the profession icon for a specific person from the roster I can see their correct professions list. But I am running into problems when more than one person has the profession. The main list from the professions tab will only show recipes that one of the people has, not the combined list from everyone. We don't have widespread adoption in the guild right now and only have a max of two people with any profession with this addon, so I can't say if it's just showing one person's list or everybody's except for one person.
For example:
I click my own leatherworking icon in roster, see nethercobra leg armor on my list.
I click the LW in the professions tab, then only see recipes that a different guild mate has and no nethercobra or any others of mine.
I can search specifically for nethercobra leg armor in the search feature and click on it once I see it there, and it will just scroll through the whole LW profession and not find it.
If I do click on a recipe from the professions tab I can see that I have it, but if the other guildmate doesn't have it then I can only see it by clicking my LW icon on the roster.
This is not limited to only professions that one of my characters has. I am having the same issue with JC from two other guildmates that both have that profession.

And to add with that, Characters are not showing up on the characters listing on the Recipes UI.
For example my guildie have an Alchemist along with another guild member, I could see the guild recipes but the ones who have Alchemy is not listed on the Characters Listing on the Recipes UI.

Issue seems to be resolved for me with a recent update, thanks


Missing tests

I noticed that Observable is stuck on 0.3, while 0.4 is out. Wanted to PR that but noticed there are no tests?

Related, PR #29


Some variables are not defined

@ValentinKoch
This code has some issues and bugs. Here are some issues and bugs I found:
You should define the function before calling the svdna function, because the interpreter needs to know the definition of the function before calling the function. Move the definition of the svdna function before the call.
In the get_all_statistics function, you used the get_random_images function to get random target images. However, the definition of the get_random_images function is not provided in the code. Make sure the definition of the function exists and returns the correct random image path.
In the svdna function, you resized the image and used the np.reshape function to resize the dimensions. However, the dimensionally adjusted results may not be what you expect. Check the resizing code to make sure the resizing shape is what you expect.
In the final drawing part, you used some undefined variables, such as resized_cirrus, resized_topcon, resized_bioptigen, svdna_im_cirrus, svdna_im_topcon and svdna_im_bioptigen. Make sure these variables are defined before plotting and contain the correct image data.
In the final drawing part, you used ax5.axis("off") to turn off the axis of the fifth subplot. However, ax5 is not defined in the previous code. Make sure you define these undefined variables before using them.

Hi,
thanks for using the repository and your valuable feedback! I moved all the function definitions to the beginning as you suggested :)
The function "get_random_images" is defined as far as I can see, if not here is the implementation I used:
def get_random_images(path,length=1):
    all_images = sorted(Path(path).glob("*.png"))
    return np.random.choice(all_images, length,replace=False)

The resizing function is doing what I expect it to do, could you please let me know what kind of issues you are facing?
The variables that are plotted are defined in the function call:
resized_src,resized_target,content_src,target_style, svdna_im,noise_adapted_im_clipped=svdna(40,"/content/Farsiu_Ophthalmology_2013_AMD_Subject_102575.png","/content/3-75.png")

Unfortunately I cant provide you with the images themselves, but at least the Farsiu dataset is publicly available!
If you need any more assistance please let me know ;)
Best
Valentin


Testing: to_xml -> from_xml with collections.

Hello.
I'd like to use Roar in a Sinatra-based project that provides an XML API. Trying to be convinced that the from_xml of a to_xml's output produces the original data. All is ok until using collections of compound objects. For example:
class Song < OpenStruct
end
class Comp < OpenStruct
end

class CompDecorator < Roar::Decorator
  include Roar::XML
  property :name
end

class SongDecorator < Roar::Decorator
  include Roar::XML
  property :title
  collection :composers, decorator: CompDecorator, class: Comp
end

song = Song.new(title: "Roxanne", composers: [Comp.new(name:"Sting"), Comp.new(name:"Stu Copeland")])
puts "INPUT:    " + song.inspect

doc = SongDecorator.new(song).to_xml
puts "TO_XML:   " + doc

song = Song.new
SongDecorator.new(song).from_xml(doc)
puts "FROM_XML: " + song.inspect

Output:
INPUT:    #<Song title="Roxanne", composers=[#<Comp name="Sting">, #<Comp name="Stu Copeland">]>

TO_XML:   <song_decorator>
  <title>Roxanne</title>
  <comp_decorator>
    <name>Sting</name>
  </comp_decorator>
  <comp_decorator>
    <name>Stu Copeland</name>
  </comp_decorator>
</song_decorator>

FROM_XML: #<Song title="Roxanne">

The same result when i'm using the Extend strategy (- representers instead of decorators).
Am I misunderstanding something?
Please help. Thx.

That looks odd - can you make sure you tried the same with module representers (you said you used :extend but please make sure the representers are modules.
In the first place, I don't understand why there's comp_decorator etc in your markup?!

Thanks for quick reply. Yep, I'd tried the :extend also. Instead of 'song_decorator'/'comp_decorator' I get 'song'/'comp', accordingly. It's ok. However the end result of the from_xml is the same -- collection field is not created.

PS. I used the :extend with modules of representers of course.

I haven't used XML in years, I guess you have to do this.
collection :composers, decorator: CompDecorator, class: Comp, as: :composer/:comp_decorator # whatever the wrapping item tag is named.

I've tried:
collection :composers, decorator: CompDecorator, class: Comp, as: ':composer/:comp_decorator'

Unfortunately:
... in `evaluate': Invalid expression: :composer/:comp_decorator (Nokogiri::XML::XPath::SyntaxError)

Haha that's not what I meant! You have to try either :composer or :comp_decorator for as:, dependent on how your XML looks like. Representable doesn't know where to find the collection items, so you have to tell it. Unfortunately, I found out that I did not properly document that, yet!

It helps. Thank you.

Cool! Please close this ticket if that solved your problem. :beers:


Feedbacks

Can you please remove formatted changes from files? It will cause lots of conflicts for me because I have updated common components?


change how to select bevy-glsl-to-spirv or shaderc

cfg for bevy-glsl-to-spirv use now mimics https://github.com/cart/glsl-to-spirv/blob/master/Cargo.toml

Could you edit the PR Description to include Fixes #1348 and Fixes #898 so that these #1348 and #898 are automatically closed when this is merged.

Confirming https://github.com/bevyengine/bevy/commit/a46c35a7a050440fa3e672d46bad97c94ed8a0a9 fixes https://github.com/bevyengine/bevy/issues/1942.

@mockersf I found another Issue that can be closed when this merges: #1078


Inquiry Regarding Audio Spectrogram Transformer

I am a graduate student from China, and our team recently had the privilege of studying your article on the 'Audio Spectrogram Transformer'. We were truly impressed by the content and scope of your work, and it has sparked a great deal of interest within our team. Following our admiration for your research, we endeavored to replicate your work on the ESC-50 dataset. However, as we proceeded to fine-tune the model using our own dataset, we encountered several challenges. We would greatly appreciate your guidance and assistance in navigating these challenges.
1、Our dataset consists of 2400 samples, each audio clip is 4 seconds.  We set the audio_length parameter to 400 and timen to 80. We replaced the labels while keeping the rest recipe consistent with ESC-50. We downloaded a pre-trained model from Audioset and followed the same process as replicating ESC-50. We are pleased with the final result; the accuracy can reach 0.9. However, what surprises us is that the average precision is only between 0.3 to 0.5. Why could this be?
2、We understand your work involves projecting spectrograms to embeddings. (If our understanding of your work is incorrect, please forgive us.) After fine-tuning the model, we process new speech data and aim to obtain the embeddings. Could you please guide us on how to do this?
3、For example, if we want to fine-tune a pre-trained model with an English dataset and then validate the fine-tuned model with a Chinese dataset, can we set the training set as the English dataset and the validation set as the Chinese dataset during the fine-tuning process?

1、Our dataset consists of 2400 samples, each audio clip is 4 seconds. We set the audio_length parameter to 400 and timen to 80. We replaced the labels while keeping the rest recipe consistent with ESC-50. We downloaded a pre-trained model from Audioset and followed the same process as replicating ESC-50. We are pleased with the final result; the accuracy can reach 0.9. However, what surprises us is that the average precision is only between 0.3 to 0.5. Why could this be?
This could be many reasons, but I do not have time to debug (and do not have information). The possible reasons include ESC-50 is balanced, so acc is a good metric, your dataset might be imbalanced. So the model is biased to the majority class, in that case, you would need to turn on class balancing, etc. Acc is not a good measure when the dataset is not balanced.
2、We understand your work involves projecting spectrograms to embeddings. (If our understanding of your work is incorrect, please forgive us.) After fine-tuning the model, we process new speech data and aim to obtain the embeddings. Could you please guide us on how to do this?
If you wish to get the last layer embedding, you should let the model return x right after this line (the model needs to be a trained model).
https://github.com/YuanGongND/ast/blob/31088be8a3f6ef96416145c4b8d43c81f99eba7a/src/models/ast_models.py#L184
3、For example, if we want to fine-tune a pre-trained model with an English dataset and then validate the fine-tuned model with a Chinese dataset, can we set the training set as the English dataset and the validation set as the Chinese dataset during the fine-tuning process?
That is totally possible, you can simply prepare two dataset and replace the original dataset in our recipe. But you might lose some performance due to the training / test mis-match. This will be true for all models, not just AST.
-Yuan

Thank you very much for your help. I have a new question to ask you. I want to extract 768-dimensional features from new speech data. I found this feature extraction method (as shown in the figure below). I would like to ask, how can I perform feature extraction using my own fine-tuned model? Due to my limited technical skills, I don't know how to proceed. Can you help me?


Added cvm testcases, dmesg get_isolation_config()

Added test that checks devices on guest
Added test that checks isolation config on guest
Added get_isolation_config function to dmesg tool
I am unsure if I am using the correct requirements, I currently only have deployed requirement for both test cases. I use dmesg and lsvmbus, but since these are tools LISA should ensure they are available on guest.
added testsuite under acc/ due to it being related to confidential computing but can be moved if asked.
Please let me know if anything needs to be changed, I tried to copy formatting of surrounding code.

Once everything is working, I will squash all commits into just one for tree cleanliness. I still need to test with Kameron's CVM changes

Tested with Kameron's changes successfully. Only items left are

Priority
@LiliDeng 's question regarding the case applying to non-cvm

If these tests fail on CVM, then this means something has been incorrectly configured. If the test has ran than it means the CVM was able to deploy despite it being mal configured, but it may not be providing the security a customer is expecting. I believe this falls under "an important feature doesn’t work with default settings; or the system can be used with limited functionality.", but I am not confident and willing to change if you think a different priority is better.

CVM guests have a list of allowed devices which is determined by .allowed_in_isolation=true in https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/hv/channel_mgmt.c
This is tested because AFAIK the host offers the devices regardless of if the device is allowed or not on the guest. It is up to the guest to either accept/reject the valid/invalid devices.


Unexpected Keyword Argument 'jitter'

I got an error when trying to generate an attention map using visualize_saliency. On line 153 of visualization.py there is unexpected keyword argument jitter.

I'm having the same problem, using Anaconda with a Python 3.5 virtual environment running, so I'm also making use of OpenCV3. Here is the output and offending line:
Working on filters: [3]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-15-4d1a18352923> in <module>()
      4
      5
----> 6 heatmap = visualize_saliency(faceNet, 7, yclas[idx], X[idx,:,:,:], text=names[yclas[idx]])

/Users/eric/anaconda/envs/tf35/lib/python3.5/site-packages/keras_vis-0.1.2-py3.5.egg/vis/visualization.py in visualize_saliency(model, layer_idx, filter_indices, seed_img, text, overlay)
    151     ]
    152     opt = Optimizer(model.input, losses)
--> 153     grads = opt.minimize(max_iter=1, verbose=False, jitter=0, seed_img=seed_img)[1]
    154
    155     # We are minimizing loss as opposed to maximizing output as with the paper.

TypeError: minimize() got an unexpected keyword argument 'jitter'

Additionally, if one removes the jitter keyword from l.153 you are then presented with a new error when "smoothing the activation map"...
Working on filters: [3]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-7-4d1a18352923> in <module>()
      4
      5
----> 6 heatmap = visualize_saliency(faceNet, 7, yclas[idx], X[idx,:,:,:], text=names[yclas[idx]])

/Users/eric/anaconda/envs/tf35/lib/python3.5/site-packages/keras_vis-0.1.2-py3.5.egg/vis/visualization.py in visualize_saliency(model, layer_idx, filter_indices, seed_img, text, overlay)
    164     # Smoothen activation map
    165     grads = utils.deprocess_image(grads[0])
--> 166     grads /= np.max(grads)
    167
    168     # Convert to heatmap and zero out low probabilities for a cleaner output.

TypeError: ufunc 'true_divide' output (typecode 'd') could not be coerced to provided output parameter (typecode 'B') according to the casting rule ''same_kind''

It seems this is coming from updates in NumPy. See NumPy issue #6464 here.

Fixed in latest.

I had the same issue when removing the argument, I solved it by replacing the line grads /= np.max(grads) with grads = grads / np.max(grads). Also I installed the latest version of the package and this issue persists. On top of this I get an error for heatmap[np.where(grads <= 0.2)] = 0, I fixed this by using cv2.cvtColor to match the shapes.
I don't know why I would be having these issues and you wouldn't, @raghakot. I would guess you've got an out of date version of numpy.

Hmm, the tests pass on travis. I dont think its a numpy versioning issue. Can you post full example of what you are trying to run. Is it in theano?

Feel free to reopen if you are seeing issues. There is no point in closing issues if the fix doesnt work.

It doesn't seem right to reopen the issue, as the original issue in this thread was addressed. Also I did actually get the function working in the end, my final code looked like this,
    # Smoothen activation map
    grads = np.float32(utils.deprocess_image(grads[0]))
    grads /= np.max(grads)
    grads = cv2.cvtColor(grads, cv2.COLOR_GRAY2RGB)
    blurred = np.uint8(cv2.GaussianBlur(255*grads, (3, 3), 0))
    # Convert to heatmap and zero out low probabilities for a cleaner output.
    heatmap = cv2.applyColorMap(blurred, cv2.COLORMAP_JET)

    heatmap[np.where(grads <= 0.2)] = 0

I'm not sure if its actually giving the correct output,

Try gradCAM. it usually gives better results.


DISH socket not working with asyncio context

Hi,
I'm trying to initialise a DISH socket using zmq.asyncio.Context fails with:
File "zmq/backend/cython/socket.pyx", line 492, in zmq.backend.cython.socket.Socket.get
server_1  |   File "zmq/backend/cython/socket.pyx", line 264, in zmq.backend.cython.socket._getsockopt
server_1  |   File "zmq/backend/cython/checkrc.pxd", line 25, in zmq.backend.cython.checkrc._check_rc
server_1  | zmq.error.ZMQError: Invalid argument

The code i'm using is:
ctx = zmq.asyncio.Context.instance()
ctx.socket(zmq.DISH)

Initialising the socket with zmq.Context works as intended.
System Info:
os: Debian 8
python: 3.6.3
pyzmq: 17.0.0.b4
libzmq: 4.2.3
Draft API available: True

I'm also getting this exception when the application closes.
Exception ignored in: <bound method Socket.__del__ of <zmq.asyncio.Socket object at 0x7f3901bb4e18>>
 Traceback (most recent call last):
   File "/usr/local/lib/python3.6/site-packages/zmq/sugar/socket.py", line 66, in __del__
     self.close()
   File "/usr/local/lib/python3.6/site-packages/zmq/_future.py", line 157, in close
     self._clear_io_state()
   File "/usr/local/lib/python3.6/site-packages/zmq/asyncio/__init__.py", line 60, in _clear_io_state
     self.io_loop.remove_reader(self._fd)
   File "/usr/local/lib/python3.6/asyncio/selector_events.py", line 342, in remove_reader
     return self._remove_reader(fd)
   File "/usr/local/lib/python3.6/asyncio/selector_events.py", line 279, in _remove_reader
     key = self._selector.get_key(fd)
   File "/usr/local/lib/python3.6/selectors.py", line 189, in get_key
     return mapping[fileobj]
   File "/usr/local/lib/python3.6/selectors.py", line 70, in __getitem__
     fd = self._selector._fileobj_lookup(fileobj)
   File "/usr/local/lib/python3.6/selectors.py", line 224, in _fileobj_lookup
     return _fileobj_to_fd(fileobj)
   File "/usr/local/lib/python3.6/selectors.py", line 39, in _fileobj_to_fd
     "{!r}".format(fileobj)) from None
 ValueError: Invalid file object: None

do DISH sockets not have zmq.FD? If so, then they cannot be used with asyncio.

@minrk How do I find out?

Looks like it was an explicit design choice in libzmq to not support ZMQ_FD (https://github.com/zeromq/libzmq/issues/2941) in new threadsafe sockets (server/client, radio/dish, scatter/gather). Until that's fixed, you won't be able to use these sockets with asyncio or tornado. I wouldn't recommend using any of the draft-api sockets in production.

Like you mentioned in the libzmq issue it's pretty important for the final version of the sockets to expose a way for event loops to work with them. Until then I recommend we keep this issue open.
Thanks for your help.

Adding a note to draft support that libzmq draft sockets cannot be used with eventloops would be worthwhile. Thanks!

Was poking around with RADIO/DISH and asyncio, stumbled onto this issue.
I've gone through some of the genesis of the problem.
Do we know if this is still an issue in libzmq?

Hi,
It would be very nice if this can be implemented or even some hints of how to implement/what to look into.
Thanks,

This is a feature request for libzmq to implement event-loop-supporting handles for sockets. Until they address that, there isn't really anything pyzmq or users can do, other than do blocking calls in background threads. If DISH sockets get ZMQ_FD support, it should work with asyncio without any changes to pyzmq. If they choose to go another way, it might require some code in pyzmq to deal with it. There is a proposal that sounds like it would work, to me, but someone has to implement it in libzmq.

Thanks for explaining that @minrk,
I will try to see if there is an open issue at libzmq side and create relationship.

Found: https://github.com/zeromq/libzmq/issues/2941


Mask Script

I'm having issues with the mask script. I am using the Mask_Pipeline_June.ipnb and when I get to the create manual mask step, the entire image is blank. I noticed that the step that shows the md['pixel_mask'] looks backwards, in other words the area we don't want to mask are zeros. Below is a screen shot:

Did the pixel_mask change or did I mess up the script somehow?

julbrandt, you are right. The pixel_mask changed. Recently, the data analysis package is corrupt. We update the code and the mask function was updated with an old code.
Please use the following code to make the pixel_maks inverse (make 0 to 1 and 1 to 0)
md['pixel_mask'] =  1- np.int_( np.array( md['pixel_mask'], dtype= bool)  )

Thank you, it works now.
 We recently developed a fast algorithm to do time correlation. I can use the uid/data in your provided pipeline to create an example notebook for you, and then you can play with it.

Yugang, here is a link to a pipeline:
https://notebook-backup.nsls2.bnl.gov/user/julbrand/notebooks/analysis/julbrand/XPCS_GiSAXS_2016_June_Si_sam1_early_time_35e040.ipynb

Great, Thanks!

An announcement from NSLS-II data acquisition group:
https://notebook.nsls2.bnl.gov has been fixed. The reliability problems were due to a hardware failure, as it turns out. Please go back to using notebook..., not notebook-backup or a locally-run server. Please report any problems you have. If there are other issues, identifying them and fixing them is a high priority. We want to achieve high reliability on this system.

Hi Yugang, I ran into another issue with the mask pipeline. On the manual mask step we are supposed to press 'i' and then draw a mask. When I press 'i' I do not get the "lasso" on the bottom right, nor can I draw a mask. Also, I am unable to move on to the rectangle mask step because m.mask is all false.
Thanks, Jeff

@julbrandt I got the same problem. It seems like the ManualMask package does not work. We have to take a deep look at it. But, usually, we use a code to generate a mask rather than manually making. I put an example pipeline in
https://github.com/NSLS-II-CHX/CHX_Pipelines/blob/master/Mask_pipeline_Aug_template.ipynb
Please take a look at "Create a polygon mask" part. It allows you easily to make any shaped mask by giving the vertices coordinates.


The maps dont work on Android Pie

The maps dont show it in Android 29 (Pie), and the location search dont load the request, I have my own key of API Google places and maps. Everything else its ok. I will be thankful so much if you help me. Sorry for the bad english, regards from Mexico.

I had the same problem and I solved by adding my credit card into the Google Platform, you do not need to pay anything, you can access for free during 1 year, after that you pay according to your project. Remember to active all the API related to the Location.

You need to have a valid api key for proper working of the library. @luiiss997


MakeFile

[ ] Create MakeFile
[ ] Update README with Make instructions
[ ] Automate Jupyter Book with Make

This SO post for reference which may help automate the copy/pasting of the JB files to the doc folder.

Thanks Nico. That post helped in the copying/pasting of the files.


Realtime updates

Post realtime updates to a firestore.
Infra not ready.

Just merging. Shouldn't affect anything yet anyway.


As a user, I want the Jupter notebook archive browsers to use the same number formatting as the Media Suite

See #150 for the format.  already tested that this is possible, one method is to use a locale that has this formatting style, eg. fr-FR

Issue moved to beeldengeluid/labs-search-api #86 via ZenHub


Add support for mock SGX builds

Great stuff!
Mock is disabled by default. Was this planned to be used only locally or also in CI? I guess the former, as otherwise non-sgx non-mock code could be neglected.

Currently only locally. We can add one test for mock SGX (as we also test non-mock SGX anyway). It will also be used more in the SDK CI.


🐛 fix(core): Update list of external dependencies to ignore

Current dependencies on/for this PR:

new-dawn

PR #1049   👈

This stack of pull requests is managed by Graphite.


[Mobile / Desktop ] Create SfNotification

Desktop

Mobile (no icon, full width)

Proposed API
<SfNotification type="some types as SfAlert" message="" icon="string|boolean if false just don't show ">

No slots here I believe. Also provide a default set of icons

@mayashavin I'm temporarily unassigning you before yesterday hackathon since you have 4 issues on yourself. If noone will take it tomorrow i'll reassign you :)

It's also a good component to use color modifiers.
I would like to take this as an example right after this PR merged (will be ready today I guess).

Good idea :)

Issue si free since @leomp12 is currently busy ;)

@AdamPawlinski sure, no problem at all ;) Have you got a chance to finish this component on Monday?

@filrak  Today it will be hard, I'm sorry.


delete stable manifest for external-dns

was created in the incorrect location

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

Needs approval from an approver in each of these files:

OWNERS

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

/approved

/test tekton

@cagiti: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

tekton
00aeb67aa5fe187b85efca94582a758b91f66cb9
link
/test tekton

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

/close


do not block start procedure if there's no registry center

start ops without registry center, and let user to config the address

Sorry, because this issue was raised very early, we have closed it temporarily. You can verify whether this problem still exists in the latest code of the develop branch. If this problem still exists, please reopen it at any time.


Hot Module Reloading (HMR) after build

After building and serving the dist/ folder with http-server, the application is still trying to get  __webpack_hmr
"GET /__webpack_hmr" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36"
"GET /__webpack_hmr" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36"
"GET /__webpack_hmr" Error (404): "Not found"
"GET /__webpack_hmr" Error (404): "Not found"

Shouldn't this be gone on the built version?

Did you solve this problem?

yes, it was a hidden browser window which still had the hmr version loaded.


chore: Update project to ESM and narrow dependencies

This PR performs some housekeeping. There is no new functionality for consumers. It:

Updates many dependencies to the latest versions
Converts the SDK to "type": "module", i.e. uses ES modules instead of common JS. Many dependencies are now ESM only in their latest versions, making it hard to stay up to date with cjs code.
Pins all dev dependencies, and narrows public dependency version ranges to patch versions only. In many cases, a minor version release of e.g. TypeScript, eslint, or webpack can introduce compile/lint errors in code that previously worked. We want to make sure that consumers are using versions of these packages that we have actually tested.
Adds a package lock to facilitate npm audit.
Adds checks for minimum versions of Node and npm that we support. We use modern JS syntax that will not work in Node 12 or earlier.
Adds ease of life VS Code settings for maintainers.

Testing Suggestions

Make sure that the various scripts (create, start, build, test) work from the SDK repo itself.
Make sure that the consumer project scripts (start, build, upgrade) work from both a new project created with this build of the SDK, and from an existing project created with an older version of the SDK that is upgraded to use this build.

For the latter, npm link won't work very well. I recommend using npm pack to create a *.tgz file from this branch, then npm install <path-to-sdk-tgz> from within the library project that is being used for testing.

Issue (sorry accidently approved the PR) Running into error when

Ah. The issue is that the old SDK created a project with a reference to TypeScript 3.9.5, which is ancient. The solution in this case would be to upgrade the TypeScript version in package.json to "^4.8.4". There isn't much we can do here. It's expected that if you update the version of the SDK in an old project, you will likely have to update to a more recent version of TypeScript as well.

Thank you Eric for taking a look.

Thanks. That warning is expected with the older version of the default sample and newer TypeScript/eslint version. If developers run into similar warnings in their own code, they should also fix their code.


Messages in a short thread don't get marked as read

Symptoms as described by @rishig :

When you narrow to a topic and the whole topic fits on the screen, we don't mark the messages as read, and instead show the "6 unread messages" banner.

Steps to reproduce:

Narrow to such a topic/stream/pm, where messages are very less (2-3).
Now as the list is not completely covering screen, it is not scrollable and there is no way to mark messages as read except manually using mark as read button.
Ideally it should mark those messages as read.

I have worked on this issue and submitted #2579, will be updating that PR/submitting new PR next.
@zulipbot claim

If I understand your two PRs #2990 and #2991 correctly, your diagnosis is that the reason this is happening is that

we are in fact calling sendScrollMessage, but
getStartAndEndNodes is failing to find a message at the end, so we're sending endMessageId: 0.

Is that right?
Let's focus the PRs on that, then: make getStartAndEndNodes work reliably.
Your #2988 approaches one side of this, which is that this line looking for the last message might be probing empty space at the end of the list:
  const endNode = getMessageNode(document.elementFromPoint(200, window.innerHeight - 20));

I think the issue goes deeper than that, though. For example, as I look at this closely, I see that even when we don't get empty space off the end of the list, we'll get things wrong if we happen to hit a date separator, or a recipient bar. Here's a sample of the webview as seen via chrome://inspect:

That timerow div is 36px high. As a hack to avoid completely missing that there are messages there, we've given it a data-msg-id attribute that corresponds to the message after it... but that means that if the user scrolls down so that the timerow is just halfway visible, we'll mark the following message as read -- a message which the user has not seen a single pixel of. So that is a pretty unfortunate workaround.
Here's what I think would be a better approach:

Find the first, and the last, child of documentBody that's visible. This is almost like what we're doing with document.elementFromPoint and getMessageNode, but if we don't find anything then use firstChild and lastChild to get the node. This solves the "empty at the end" problem.
Instead of smearing out data-msg-id onto neighboring timerow and header divs, use nextSibling to turn "first visible child" into "first visible message", and similarly previousSibling/"last".
That should do it.

Want to try that?

Is that right?

Yup! 👍

use firstChild and lastChild to get the node.

I have confusion on this
find first child and last child using document.getElementsByClassName('message') or document.getElementById("documentBody").firstChild ?

Instead of smearing out data-msg-id onto neighboring timerow and header divs, use nextSibling to turn "first visible child" into "first visible message", and similarly previousSibling/"last".

got it 👍

Want to try that?

Yup! sure :)

I believe this also applies to private messages as when I read a new private message that is really short it doesn't get marked as read. Not sure if its the same bug. If not I can create a new issue.

@armaanahluwalia Yep, same issue, thanks! The OP mentions the PM case, though pretty tersely.


Zod Record/Map Input Doesn't Appear

z.record() and z.map() don't show up in the panel
Example input
  .input(
    z.object({
      walletAddress: z.string().transform((val) => val.toLowerCase()),
      page: z.number(),
      filters: z.record(z.string(), z.string()),
    })
  )

The filters don't show up. I'm on 1.2.3

Record and Map are just not supported yet - it's possible to support them though, and is on the roadmap.
You can see a full list of supported zod types at the bottom of the readme - https://github.com/iway1/trpc-panel#supported-zod-types.
Feel free to open a PR if you want to contribute 😊 If not, I'll probably add it myself this weekend or so, adding the rest of the zod types at the top of my priorities for this project.

Alright, thanks. We are loving tRPC.panel() :D


[WIP] Initial stub on the road to address #20

Opening PR to track evolution on #20. Before merging, the following needs to be completed:

[x] Method add_basemap implemented (including web and local url sources)
[x] Documentation + docstrings for user-exposed functionality
[x] Place.plot_map refactored to move plotting machinery into the new plotting.py module, and plot method inside the Place class.
[x] Unittests

This fails in Python 2.7, but that relates to #36. Merging to address elsewhere and also be able to implement other issues.


Better handling for parameters in simple json queries

Fixes #743 (for common cases)
The original issue says the types should always be any (which is mapped to interface{} in go), but I thought it would be better to use the return type for each operator (for example, col_name ->> 'field_name' returns the text type).
I also added support for type conversions as a way to "force" the correct type for situations that still aren't handled.

@robholt I think we need to come at this from a different approach. The problem is that the ->> operators are PostgreSQL-specific. We need a way for the database engine to declare these operators and their return types. Adding hard-coded support will cause issues for people using MySQL, as their queries might compile.

I'm going to close this out as I'm pretty sure this isn't the approach we want to take. Instead, we should mimic how the function resolution logic works by looking up operators in the catalog to determine the return value.


BetterDiscord doesn't launch

Describe the Bug
When I install BetterDiscord and click 'Exit' it doesn't install as predicted
To Reproduce
Install - Exit and it doesn't open
Expected Behavior
I expected to open discord.
Screenshots
Can't explain by screenshots
Discord Version
Stable

I need some help, I've tried everything.

Can you join the support servers? It would be easier to help you there.

hello, i have the same problem and i cant join the server, can you resend an invite?


Resolve different type in list creation

This PR applies getMaxLogicalType logic to list creation. So we can now handle cases like [1, 2.0].
The logic is as follows
// resolve a combined type for children in bindFunc
// cast each child towards the combined type

To do so, I have to

Introduce parameter types in FunctionBindData because this information is only available after bindFunc
Apply casting after bindFunc

On the side, this PR also tries to remove isVarLength field from function. But it's not trivial to do so. I think fundamentally I still need some kind of indicator to tell me if a function accepts any number of parameter. So keep it in Function now and remove it from constructor (otherwise our constructor are getting messed up)

Merged in #3330 instead.


Barcodes cannot be recognized

Hi, can anyone help with these images? I debugged the binarization results but they look OK. I'm wondering why these barcodes cannot be recognized. Are they not standard-conformant?

The first image is simply invalid. There is a white line above the '5' missing. Compare with https://barcode.tec-it.com/en/UPCA?data=012345678905
The second image would need just a little bit more resolution. Interestingly, if I scan it with my phone running the android demo off my monitor, it sometimes is able to decode it.


Determining code organization

Time to break ground on this repository -- there's no one true way to organize code in an SDK repository, but I wanted to document a proposed structure to start with.
What do we think of something like this:
- docs
- src
| - lib
| | - getAccounts.ts
| | - getAccount.ts
| | ...
| | - index.ts // aggregates all the functions so we can do things like "import * from './functions'"
| - utils.ts
| - types.ts
| - index.ts // project root, exports the full contents of /api and a subset of /types

Under this structure our types would be defined in one place and each individual "function" of the SDK would have its own file.
We would then export anythign public facing from the root level index.ts
functions may not be the right directory name; some alternatives: api, sdk, or functions.

Missing from this structure: where does the internal code for interfacing with the PHP API go.
Maybe a tools directory would be appropriate?
I also think sdk might be a more explicit name for the directory that contains the actual sdk definition (instead of lib).


Implement startup probe configuration for slow starting containers

Appears Jackett and NZBHydra are still a culprit of slow start up times. From researching on the k8s docs we can implement a startupProbe which might solve my issue once and for all.
I'll just implement this on Jackett and NZBHydra2 as the others seem to be pretty quick at starting.
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes

I will continue to debug before accepting this is actually needed :/

Apply probe configuration as such has allowed these services to come online and not crash:
    probes:
      liveness:
        initialDelaySeconds: 300
        failureThreshold: 5
        timeoutSeconds: 10
      readiness:
        initialDelaySeconds: 300
        failureThreshold: 5
        timeoutSeconds: 10

I will close this issue.

Did you ever explore the startupProbe in more detail?  It looks like the ideal solve for slow-starting applications.
It looks like one of the challenges with having really long initialDelaySeconds for liveness and readiness probes is that the service can be artificially unavailable for a long time.

I didn't explore it further as I got it working with bumping the liveness and readiness to those insane values.
Reviewing the Kubernetes docs, I'm certain that if we were to test out the startupProbe it would also solve the problem as well. Do you think that is a better solution? If so I can get a PR to implement the startupProbe config.


Unify api-server rest api path

[#150033265]

but the travis build looks hang. althrough it passed as green, but git still shows the "some checks haven't completed yet"


Update bundle to 4.9.0 (candidate channel)

/hold
Till CI is green.

/retest

Ignore?

Ignore?

Yes, we do need to ignore it.


{load:[array]} different complete behaviour to [{load:string}] on Android

My main.js required both HistoryJS and jQuery, and my HistoryJS file needs jQuery. I also need JSON and XSLT...
Anyway, I have been using the following YepNope style, featuring a "load" property with an array of URL strings:
Modernizr.load([{
  test: window.JSON,
  nope: 'json2.js'
}, {
  test: window.XSLTProcessor,
  nope: 'ajaxslt-0.8.1-r61.min.js'
}, {
  load: [ 'jquery-1.6.1.min.js', 'history-1.7.0.min.js', 'main.js' ],
  complete: function() { onMainLoad(); }
}]);

However, I've noticed that onMainLoad() was being called out of sequence, often before main.js had even defined it. After clearing my cache, I would even get errors about HistoryJS loading before jQuery was available. This was on Android, by the way, with the worst web browser ever built by Google.
So as an experiment, I changed it to look like this:
Modernizr.load([{
  test: window.JSON,
  nope: 'json2.js'
}, {
  test: window.XSLTProcessor,
  nope: 'ajaxslt-0.8.1-r61.min.js'
}, {
  load: 'jquery-1.6.1.min.js'
}, {
  load: 'history-1.7.0.min.js'
}, {
  load: 'main.js',
  complete: function() { onMainLoad(); }
}]);

Now it works perfectly on Android and other browsers. I'm not sure where I first came across that first style, but it's not on the official website. I guess that should have been a hint that it was the wrong way to do something. However, I just thought I'd bring this up in case both styles were perfectly valid. Does feeding an array into "load" change the sequence somehow? Or is the timing being thrown off by a slow JIT compiler or something in Android?

Marking this to add a test for this behavior before v1.1 goes live. I haven't reproduced, but the code above should be close to create a test for it.

I have encountered a situation where the files are being downloaded (no 404s) and the complete handler is executing, but the script inside the JS files is not executing. I will see if I can build a sanitised example (this is company code, unfortunately) to demonstrate. I put alert()s at the top of the loaded scripts and never saw any of them pop up. This is not only happening on Android, and even putting a setTimeout() in the complete handler isn't enough to guarantee script execution.
I've had to resort to jQuery.getScript in the meantime, which I've noticed is blindingly fast compared to YepNope. I have a feeling I can probably do away with those setTimeout()s too. It obviously doesn't work for CSS files, but I am thinking of building something that accepts similar parameters to YepNope but uses jQuery.getScript underneath.

The underlying code for jQuery.getScript is the same as in yepnope. The difference is that yepnope executes things in order. If you don't need that functionality, you probably should just use barebones script injection:
(function(d){
  var s = d.createElement('script'),
        t = d.getElementsByTagName('script')[0];
  s.src = 'script.js';
  s.async = true;
  t.parentNode.insertBefore( s, t );
})(document);

The fastest it gets, and doesn't make you wait on jQuery.

This should be fixed along with this issue in this commit (reworked how complete works entirely):
https://github.com/SlexAxton/yepnope.js/commit/6715e2c7646462c33411c0e3af4aebadb623c4e9

Thanks so much. I've just switched from using complete to callback in a few places (still using Modernizr, so it'll be a while before I get this fix) and already I can see improvements. Kind of annoyed that I didn't notice that it was mostly my completes that were fishy. :P


QWIK WARN A unsupported value was passed to the JSX, skipping render. Value: Symbol(skip render)

Qwik Version
0.9.0
Operating System (or Browser)
Windows / Chrome
Node Version (if applicable)
No response
Which component is affected?
Starters / CLI
Expected Behaviour
I wanted to create a new component by copying an existing component.

Started development server with npm start (VSCode launch.json used to start tasks.json)
Navigated to src/routes/flower
Copied the directory and pasted as "flower2"
Navigated to /flower2
See the contents of /flower at the route /flower2

Actual Behaviour
In step 5, I see nothing. Browser logged a console error: "Failed to load resource: the server responded with a status of 404 (Not Found)"
Terminal logged:
Executing task: npm run start

> start
> vite --open --mode ssr

  VITE v3.1.1  ready in 966 ms

  ➜  Local:   http://<IP_ADDRESS>:5173/
  ➜  Network: use --host to expose
QWIK WARN A unsupported value was passed to the JSX, skipping render. Value: Symbol(skip render)

Additional Information
Workaround: Terminate the batch job and restart the development server. After doing so, navigating to /flower2 shows me the flower page.

Hi @Gregory-Ledray
Sorry for the late response 🙈  i just gave it a spin on the latest version of qwik and qwik-city and it works as expected on my end. can you confirm that?
pnpm create qwik@latest
-> qwik city
cd <project>
pnpm install
pnpm dev

copy flower to flower2
change url to flower2


Quarkus Resteasy Problem is still flagged as experimental

The extension is still flagged as experimental. Although this is just a meta description, it could be a bit daunting for a developer as the extension looks like this at the dev-ui.

I would call it stable, the only hesitation is - when we finally decide to move this project to Quarkiverse it will most likely end up in EXPERIMENTAL status again...

When will you move it to Quarkiverse?

Definitely +1 for including this in the Quarkiverse

whats blocking from moving to quarkiverse?
note - its for sure not a requirement to be in quarkiverse hub to show up in code.quarkus.
I'm wondering if we shouldn't have this be part of core quarkus-rest?

whats blocking from moving to quarkiverse?

@geoand @maxandersen None of us maintainers of this extension work at Tietoevry anymore, and infra folks that helped us make this code public in Tietoevry github organisation are also gone, so it can be tricky for me to reach someone, who could migrate this project into quarkiverse org, which would allow us to keep nice 60 github stars :) On the other hand we can simply fork it into quarkiverse.
I'll try to reach someone who knows someone regarding project migration, if this doesn't work, we'll proceed with a fork.

@geoand @maxandersen sorry it took so long. After some internal discussions we would like to proceed with moving this extension to quarkiverse, although we will not migrate this github repo, w're going to archive this one and copy over source code into empty quarkiverse project.
How can we proceed here? Who could assist us with setting up a project in quarkiverse?
cc @pazkooda

That's very nice to hear!
@gastaldi is the OG of Quarkiverse :)

I can provision a new repository there, too bad we'll miss the GitHub stars. I can also move the repository there to preserve the stars if you make me an admin for this repository. Let me know what you prefer

@gastaldi let's move the repo then, I've just added you as an admin.

The migration is complete, and the extension itself is no longer experimental, so I'm closing this issue. Thanks everyone for participation (and motivation :))


dhcpcd does not start if defaultGateway6 is set (18.03 regression)

Issue description
dhcpcd does not start if either defaultGateway or defaultGateway6 is set statically:
https://github.com/NixOS/nixpkgs/blob/7fb90db6960832cf16fa806d6e59fc6ab3cd0456/nixos/modules/services/networking/dhcpcd.nix#L158-L163
On scaleway.com cloud, IPv4 address is assigned via DHCP while IPv6 should be configured statically.
Static defaultGateway6 prevents dhcpcd to start and obtain IPv4 address.
@fpletz for https://github.com/NixOS/nixpkgs/commit/b1799084147b0b862eeffd7b4bb526de09fd34a5

How would you fix this? Add dhcpcd to the network-online target unless both defaultGateway and defaultGateway6 or are you suggesting to revert this entirely?

As a quick workaround, I just set systemd.services.dhcpcd.wantedBy = [ "network-online.target" ]; in my configuration
It might be more accurate to check only defaultGateway without defaultGateway6 (assuming IPv6 is either configured statically or may use other means for router discovery than DHCP)

Fixed by #34716.


issue webhook "sidecar-injector.dapr.io" sentry SignCertificate

i am using eks verson 1.30 and suddenly today I got an issue: Error creating: admission webhook "sidecar-injector.dapr.io" denied the request: error from sentry SignCertificate: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing : dial tcp <IP_ADDRESS>:443: connect: connection refused"
for all my replicas

I started running into this on AKS:

kubectl run -i --tty --rm debug --image=busybox --restart=Never -- sh
Error from server: admission webhook "sidecar-injector.dapr.io" denied the request: error from sentry SignCertificate: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp <IP_ADDRESS>:443: connect: connection refused"

Were you able to find a workaround for this @tupt100?

Were you able to find a workaround for this @tupt100?

Not yet

@tupt100 were you able to resolve this?
In my case, the Sentry deployment only has one desired replica, and its ReplicaSet can't spin it up because the sidecar injector fails due to there being no Sentry pods to work with. Was the IP <IP_ADDRESS> for the Sentry service?
In other places that I see, there are always at least two Sentry replicas, so if one goes down, the other can still respond to requests, but with there only being a single replica, when it went down, it can't come up again.
I believe it's because of this piece of code. From what I'm reading, it tries to get the trust anchors from Sentry to do the injection even for pods that don't require injection.


Add TODO document to track API coverage

A pretty basic way to track what's been implemented, created by finding all the documentation links in Octokit.rb:
ag --no-numbers "@see https://developer.github.com/v3" ~/code/octokit.rb@octokit | sed -ne 's/.*\(http[^"]*\).*/\1/p' | sort -u > TODO.md

/cc @jingweno @dhruvsinghal

I haven't yet ticked off what's been built.

:+1:


add license to all packages

#38

Coverage remained the same at 92.869% when pulling 23fce42168fd29b5aaebf5d86ad1186d45bfdadb on packagesLicense into 5adb881a9a021fc4d7dcfa7c960d72a2b16bf295 on master.


Update jsonschema to work with the latest web3

What was wrong?
This is originally from #1916 and hopefully addresses the current CI breakage with the beacon chain docker job.
How was it fixed?
Update dependency of jsonschema
To-Do

[ ] Clean up commit history

[ ] Add entry to the release notes

Cute Animal Picture

Merging this which originally from #1916 in hope to fix the current CI breakage


Merge Swift 3 support into master

It would be great if we get a new release which supports Swift 3. 😃
Ref: #14

@jdhealy I'm sorry to bother you, but is there any news on a new Swift 3 compatible release? Looks like some works are done on your development branch.

@ikesyo No, my apologies. I have some time scheduled away tomorrow to test on a local Linux machine, then tag and ship a release.
Appreciate the huge amount of swift3-prep that you've been doing on Carthage!

bump

5.0.0: Swift 3 · Support Swift Package Manager
https://github.com/jdhealy/PrettyColors/releases/tag/5.0.0


Submitting governance actions: Use latest guardrails script

👋 Hello there! Welcome. Please follow the steps below to tell us about your contribution.

Please complete a Checklist
Fill in all sections of the template
Click "Create pull request"

Checklist
<-- Please fill the boxes with [x] before submitting a pull request -->

[x] I have read the How to Contribute.
[x] I have run yarn build after adding my changes without getting any errors.
[x] I have not committed any changes to yarn.lock (or have removed these changes).

Updating documentation or Bugfix
<-- Help us understand your motivation by explaining why you decided to make this change. We must be able to understand the purpose of your change from this description.  Does this fix a bug? Does it close an issue? If so please mention it.  -->

I believe we are all in an agreement that based on contributions and reputation that @disassembler and @CarlosLopezDeLara have been added as a collaborator with write permissions on the repository so that their review counts as approval going forward.

@katomm I'm a bit puzzled. This is merged but I don't see the changes on the live site.

Merged to staging, not main branch yet

Merged to staging, not main branch yet

I suppose this is automated. Is there a way for me to track it?

It is not automated. We often push to main Fridays, also today. It is live now.
Staging is on https://staging-dev-portal.netlify.app/ btw.

Note: We should consider doing releases for the developer portal like on cardano.org https://github.com/cardano-foundation/cardano-org/releases in the future.


add OGO erc20 token

Please check the following to ensure a successful verification of Token Profile
.json and .png document checklists

[x] logo dimensions: 120*120 px
[x] logo background: Transparent
[x] At least one transaction on the token contract
[x] For ERC-20 project teams: Upper and lower capitalized alphabets in token address (For checksum purposes)
[x] Same document name for both .json and .png (Including capitalization)

Project background:
Official announcement:

https://twitter.com/OrigoNetwork/status/1141548706447052805

Project team background:

Origo.Network was founded at Silicon Valley in 2017. The team include cryptographers and blockchain scientists from top universities like: Cornell University, Carnegie Mellon University, Columbia University and Tsinghua University. Origo.Network's engineering team are located in Silicon Valley and Beijing, which include top engineers from Google, Amazon and Pinterest.

Project basic information:

Origo.Network is the scalable privacy preserving platform for decentralized applications that uses zero-knowledge proof to implement the privacy protection of data in smart contract. It uses off-chain computation, on-chain verification and sharding technology to increase transaction speed while ensure the correctness which greatly promote the use of blockchain application.

Media publications:

https://venturebeat.com/2019/04/03/how-will-origo-stop-the-unstoppable-panopticon/
https://www.tgdaily.com/trending/why-do-you-need-private-cash-in-a-cashless-society
https://www.reuters.com/brandfeatures/venture-capital/article?id=36542
https://finance.yahoo.com/news/why-polychain-fbg-invested-origo-081400304.html
https://finance.yahoo.com/news/70-top-10-funds-backed-010800504.html
https://www.reuters.com/brandfeatures/venture-capital/article?id=39499
https://www.forbes.com/sites/shermanlee/2018/07/31/privacy-revolution-how-blockchain-is-reshaping-our-economy/#65e2f5111086

Tradeable exchanges:
Bittrex International
Recommended Gas Limit (For ERC-20 project teams) for transaction:

60000

Welcome to recommend imToken 2.0 to your token holders to manage their token.
imToken Brand Board: https://projects.invisionapp.com/boards/GE3L46DWK2C


Use service account key for flow dev account gen

Closes #949
Description

For contributor use:

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

Codecov Report

Merging #963 (d7e027e) into master (9cf919d) will decrease coverage by 0.03%.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##           master    #963      +/-   ##
=========================================
- Coverage    2.53%   2.51%   -0.03%
=========================================
  Files           5       5
  Lines         434     438       +4
=========================================
  Hits           11      11
- Misses        422     426       +4
  Partials        1       1

Flag
Coverage Δ

unittests
2.51% <0.00%> (-0.03%)
:arrow_down:

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

Impacted Files
Coverage Δ

internal/super/project.go
0.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


e2e tests stuck running. Sonobuoy tarball has no e2e results.

Is this a BUG REPORT or FEATURE REQUEST?:
Bug report
What happened:
e2e tests seem to be hung in the running state.
result output from sonobuoy retrieve is missing e2e results
What you expected to happen:
Expected e2e tests to eventually mark as completed.
Expected results from e2e tests to be returned in sonobuoy retrieve output
How to reproduce it (as minimally and precisely as possible):
Ran sonobuoy run
Anything else we need to know?:
Note: I have run these tests twice in a row and experienced this exact same behavior both times.
I followed the initial CLI instructions then ran sonobuoy run
I tailed the logs with sonobuoy logs -f
I have also captured all of the log output from that stream here:
sonobuoy_log_output.txt
After the final log line output seen in the file above my tailing of the logstream closed by itself.
I ran sonobuoy logs again and got this:
$ sonobuoy logs
namespace="heptio-sonobuoy" pod="sonobuoy" container="kube-sonobuoy"
time="2018-06-04T16:13:52Z" level=info msg="Scanning plugins in ./plugins.d (pwd: /)"
time="2018-06-04T16:13:52Z" level=info msg="Scanning plugins in /etc/sonobuoy/plugins.d (pwd: /)"
time="2018-06-04T16:13:52Z" level=info msg="Directory (/etc/sonobuoy/plugins.d) does not exist"
time="2018-06-04T16:13:52Z" level=info msg="Scanning plugins in ~/sonobuoy/plugins.d (pwd: /)"
time="2018-06-04T16:13:52Z" level=info msg="Directory (~/sonobuoy/plugins.d) does not exist"
time="2018-06-04T16:13:52Z" level=info msg="Filtering namespaces based on the following regex:.*|heptio-sonobuoy"
time="2018-06-04T16:13:52Z" level=info msg="Namespace default Matched=true"
time="2018-06-04T16:13:52Z" level=info msg="Namespace heptio-sonobuoy Matched=true"
time="2018-06-04T16:13:52Z" level=info msg="Namespace kube-public Matched=true"
time="2018-06-04T16:13:52Z" level=info msg="Namespace kube-system Matched=true"
time="2018-06-04T16:13:53Z" level=info msg="Starting server Expected Results: [{ e2e} {<IP_ADDRESS> systemd_logs} {<IP_ADDRESS> systemd_logs} {<IP_ADDRESS> systemd_logs}]"
time="2018-06-04T16:13:53Z" level=info msg="starting aggregation server" address=<IP_ADDRESS> port=8080
time="2018-06-04T16:13:53Z" level=info msg="Running plugin" plugin=e2e
time="2018-06-04T16:13:53Z" level=info msg="Running plugin" plugin=systemd-logs
time="2018-06-04T16:14:05Z" level=info msg="received aggregator request" client_cert=systemd-logs node=<IP_ADDRESS> plugin_name=systemd_logs
time="2018-06-04T16:14:14Z" level=info msg="received aggregator request" client_cert=systemd-logs node=<IP_ADDRESS> plugin_name=systemd_logs
time="2018-06-04T16:14:19Z" level=info msg="received aggregator request" client_cert=systemd-logs node=<IP_ADDRESS> plugin_name=systemd_logs
time="2018-06-04T17:14:08Z" level=info msg="received aggregator request" client_cert=systemd-logs node=<IP_ADDRESS> plugin_name=systemd_logs
time="2018-06-04T17:14:08Z" level=warning msg="Got a duplicate result systemd_logs/<IP_ADDRESS>"
time="2018-06-04T17:14:17Z" level=info msg="received aggregator request" client_cert=systemd-logs node=<IP_ADDRESS> plugin_name=systemd_logs
time="2018-06-04T17:14:17Z" level=warning msg="Got a duplicate result systemd_logs/<IP_ADDRESS>"
time="2018-06-04T17:14:21Z" level=info msg="received aggregator request" client_cert=systemd-logs node=<IP_ADDRESS> plugin_name=systemd_logs
time="2018-06-04T17:14:21Z" level=warning msg="Got a duplicate result systemd_logs/<IP_ADDRESS>"
time="2018-06-04T17:42:53Z" level=info msg="Gracefully shutting down plugins due to timeout."
time="2018-06-04T17:43:53Z" level=error msg="error running plugins: timed out waiting for plugins, shutting down HTTP server"
time="2018-06-04T17:43:53Z" level=info msg="Running non-ns query"
time="2018-06-04T17:43:54Z" level=error msg="error querying CustomResourceDefinitions: the server could not find the requested resource"
time="2018-06-04T17:43:54Z" level=info msg="Collecting Node Configuration and Health..."
time="2018-06-04T17:43:54Z" level=info msg="Creating host results for <IP_ADDRESS> under /tmp/sonobuoy/69dc54d3-e523-44a7-a559-74d3a1e4b0ce/hosts/<IP_ADDRESS>\n"
time="2018-06-04T17:43:54Z" level=warning msg="Could not get configz endpoint for node <IP_ADDRESS>: the server could not find the requested resource"
time="2018-06-04T17:43:54Z" level=warning msg="Could not get healthz endpoint for node <IP_ADDRESS>: the server could not find the requested resource"
time="2018-06-04T17:43:54Z" level=info msg="Creating host results for <IP_ADDRESS> under /tmp/sonobuoy/69dc54d3-e523-44a7-a559-74d3a1e4b0ce/hosts/<IP_ADDRESS>\n"
time="2018-06-04T17:43:54Z" level=warning msg="Could not get configz endpoint for node <IP_ADDRESS>: the server could not find the requested resource"
time="2018-06-04T17:43:54Z" level=warning msg="Could not get healthz endpoint for node <IP_ADDRESS>: the server could not find the requested resource"
time="2018-06-04T17:43:54Z" level=info msg="Creating host results for <IP_ADDRESS> under /tmp/sonobuoy/69dc54d3-e523-44a7-a559-74d3a1e4b0ce/hosts/<IP_ADDRESS>\n"
time="2018-06-04T17:43:54Z" level=warning msg="Could not get configz endpoint for node <IP_ADDRESS>: the server could not find the requested resource"
time="2018-06-04T17:43:54Z" level=warning msg="Could not get healthz endpoint for node <IP_ADDRESS>: the server could not find the requested resource"
time="2018-06-04T17:43:55Z" level=error msg="error querying ThirdPartyResources: don't know how to handle non-namespaced resource ThirdPartyResources"
time="2018-06-04T17:43:55Z" level=info msg="Running ns query (default)"
time="2018-06-04T17:43:56Z" level=info msg="Collecting Pod Logs..."
time="2018-06-04T17:43:58Z" level=error msg="error querying PodPresets: the server could not find the requested resource (get podpresets.settings.k8s.io)"
time="2018-06-04T17:44:01Z" level=info msg="Running ns query (heptio-sonobuoy)"
time="2018-06-04T17:44:03Z" level=info msg="Collecting Pod Logs..."
time="2018-06-04T17:44:03Z" level=error msg="error querying PodPresets: the server could not find the requested resource (get podpresets.settings.k8s.io)"
time="2018-06-04T17:44:04Z" level=info msg="Running ns query (kube-public)"
time="2018-06-04T17:44:06Z" level=info msg="Collecting Pod Logs..."
time="2018-06-04T17:44:06Z" level=error msg="error querying PodPresets: the server could not find the requested resource (get podpresets.settings.k8s.io)"
time="2018-06-04T17:44:07Z" level=info msg="Running ns query (kube-system)"
time="2018-06-04T17:44:10Z" level=info msg="Collecting Pod Logs..."
time="2018-06-04T17:44:11Z" level=error msg="error querying PodPresets: the server could not find the requested resource (get podpresets.settings.k8s.io)"
time="2018-06-04T17:44:13Z" level=info msg="Results available at /tmp/sonobuoy/201806041613_sonobuoy_69dc54d3-e523-44a7-a559-74d3a1e4b0ce.tar.gz"
time="2018-06-04T17:44:13Z" level=info msg="no-exit was specified, sonobuoy is now blocking"

I checked sonobuoy status and my e2e tests are still reporting as "running"
$ sonobuoy status
PLUGIN    STATUS    COUNT
e2e   running   1
systemd_logs  complete  3

When I download the sonobuoy tarball (linked below) I do not see any results for e2e.
Environment:

Sonobuoy tarball (which contains * below)
201806041941_sonobuoy_82aea78d-b06f-42e0-963a-4cccba28a5dc.tar.gz

Kubernetes version (use kubectl version):

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead", GitTreeState:"clean", BuildDate:"2018-03-27T00:14:31Z", GoVersion:"go1.9.4", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.3-2+b35c8f02b79855", GitCommit:"b35c8f02b79855c762b0da3afdc643ba1aef1ca9", GitTreeState:"clean", BuildDate:"2018-06-01T21:03:42Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

Cloud provider or hardware configuration:
OCI (Oracle Cloud Infrastructure)

OS (e.g. from /etc/os-release):

$ cat /etc/*release
Oracle Linux Server release 7.4
NAME="Oracle Linux Server"
VERSION="7.4"
ID="ol"
VERSION_ID="7.4"
PRETTY_NAME="Oracle Linux Server 7.4"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:7:4:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7"
ORACLE_BUGZILLA_PRODUCT_VERSION=7.4
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=7.4
Red Hat Enterprise Linux Server release 7.4 (Maipo)
Oracle Linux Server release 7.4

Kernel (e.g. uname -a):

$ uname -a
Linux ms-csgeylemvrt-nytembwgvsd-s2cemb75doa-0 4.1.12-112.14.15.el7uek.x86_64 #2 SMP Thu Feb 8 09:58:19 PST 2018 x86_64 x86_64 x86_64 GNU/Linux

@xmattstrongx - So it's triggering a timeout @28 minutes in ... somehow.  Do you have ntp installed?
time="2018-06-04T17:14:21Z" level=warning msg="Got a duplicate result systemd_logs/<IP_ADDRESS>"
time="2018-06-04T17:42:53Z" level=info msg="Gracefully shutting down plugins due to timeout."
time="2018-06-04T17:43:53Z" level=error msg="error running plugins: timed out waiting for plugins, shutting down HTTP server"

@timothysc The worker nodes of this cluster do not have ntp installed from what I can tell

@xmattstrongx ntp, or some time sync, is a hard requirement for kubernetes.  Would it be possible to update and retry?

Sure, not sure exactly when but Ill post results as soon as I have them.

@timothysc
I double checked and it appears my initial response was incorrect. Apologies.
I was able to find NTP on the node
cat /etc/ntp.conf
server <IP_ADDRESS> iburst
driftfile /etc/ntp/drift
broadcastdelay  0.008
authenticate no
statistics clockstats cryptostats loopstats peerstats

@xmattstrongx what version of sonobuoy client were you using?

@chuckha
sonobuoy version
v0.11.3

Timeout issue with ginkgo. Ginkgo does not respond immediately to a SIGTERM, the runner finishes a suite and then checks if it got a timeout. The kubernetes suites are not small, here is one example.
Also kube-conformance bash script needs a tweak. I'll be doing testing and appropriate PRs to get this issue fixed, kube-conformance one is active and done, just needs a full test with improved sonobuoy timeout.

@xmattstrongx closing this ticket out; fix was applied here https://github.com/heptio/kube-conformance/pull/21
sonobuoy generated yaml uses the :latest tag for kube-conformance so you will get the 1.11 tests now and also the bug fixes. If you need 1.10, you can use the :v1.10.5 tag for the kube-conformance image and this fix will be in that as well.
Thanks for the bug report!


Make leap_day=True default for PSM3

[x] Closes #1481
[x] I am familiar with the contributing guidelines
[ ] Tests added
[ ] Updates entries in docs/sphinx/source/reference for API changes.
[ ] Adds description and name entries in the appropriate "what's new" file in docs/sphinx/source/whatsnew for all changes. Includes link to the GitHub Issue with :issue:`num` or this Pull Request with :pull:`num`. Includes contributor name and/or GitHub username (link with :ghuser:`user`).
[x] New code is fully documented. Includes numpydoc compliant docstrings, examples, and comments where necessary.
[ ] Pull request is nearly complete and ready for detailed review.
[ ] Maintainer: Appropriate GitHub Labels (including remote-data) and Milestone are assigned to the Pull Request and linked Issue.

This PR changes the default value of the leap_day parameter in pvlib.iotools.get_psm3 from False to True. The reason for the change is that it seems more intuitive to include leap days when requesting non-TMY time series, which is also the default behavior of the remaining iotool functions.

Somehow all tests passed without any modification :thinking:


argh, timezones!

In #209, @danielballan fixed the large problem of times going in to pandas unlocalized.  However, a problem remains because a user could be doing data analysis in a different timezone from where the data was collected.  That timezone can be found in metadatastore.conf.connection_config['timezone'].  That is probably what we should localize on, but let's think about it.

Now tracked in https://github.com/NSLS-II/databroker/issues/59


$submitting isn't reset when there is an error.

[X] Before posting an issue, read the FAQ and search the previous issues.

Description
I made a request which threw an exception during onUpdate. submitting was not reset and so I always have a loading spinner.

On side note, I tried to look where submitting was set (didn't see any references)

I can't reproduce this, using this test: https://github.com/ciscoheat/sveltekit-superforms/blob/9cbf06f91281eb0270c9b3ed11a835fccb902765/src/routes/(v2)/v2/spa-error/%2Bpage.svelte#L4
When I do the test, submitting is reset to false for all events.

I'll try to create a sample. Also while looking at this, noticed you cannot use onError to update the message as form is missing.
 onError({ form }) {
          setMessage(form, 'An error occurred while logging in, please try again.');
      },
        ```

Yes, there is no data to update as an exception was thrown, you have to set $message or other stores directly.

Here is a sample https://www.sveltelab.dev/wio08v2eu7gokiy  that shows off this issue and 4 other issues when using SPA mode

can't set form errors from onError or other functions defined (on change etc..),
updating form.data doesn't work
3, Have to set result.status instead of just throwing an error or setting a form error.
focus lost on input text box
submitting not reset.

Here's an updated version of the sample that explains most of the problems you're having in the comments: https://www.sveltelab.dev/g1vrs75tk8e7lkb
Relevant code part, for reference:
const { form, errors, message, enhance, submit, submitting } = superForm(
  defaults({ email<EMAIL_ADDRESS>}, zod(schema)),
  {
    onError(event) {
      console.log('=== onError ===');

      /*
        1. It's not possible to use the SuperValidated data from onError,
        as it can be caught in onSubmit where it doesn't exist.

        You need to update the stores directly.
      */
      $message = JSON.stringify(event, null, 2);

      // Cast the error, as its type isn't unknown.
      const error = event.result.error as Record<string, unknown>;

      $errors = error.errors as Record<string, string[]>;
    },
    async onUpdate({ form, result }) {
      console.log('=== onUpdate ===');

      if (!form.valid) {
        console.log('Invalid form, returning early.');
        return;
      }

      const isSuccess = Math.random() >= 0.5;
      console.log('isSuccess', isSuccess);

      if (isSuccess) {
        // 2. Updating form.data does work, the data wasn't modified in your example:
        // 5. This only works if resetForm: false. Otherwise the form will reset.
        form.data = {
          name: form.data.name + ' Updated',
          email: form.data.email.replace('.com', '.org')
        };
      } else {
        const madeupProblemDetails = {
          type: 'https://example.com/probs/validation-error',
          title: 'Validation Error',
          status: 422,
          detail: 'There are validation errors in your request.',
          instance: '/your/instance/uri',
          errors: {
            name: ['String must contain at least 2 character(s)'],
            email: ['Invalid email']
          }
        };

        const shouldThrow = Math.random() >= 0.5;
        console.log('shouldThrow', shouldThrow);

        if (shouldThrow) {
          // 3. This will update the status in the next release:
          result.status = 422;
          throw madeupProblemDetails;
        }

        setError(form, 'name', ['random error']);
        result.status = 422;
        result.type = 'failure';
        // 3. Cannot set data to anything else than a SuperValidated object. In general, tamper as little as possible with the result
        // 4. Focus will be kept when this is commented out.
        //result.data = madeupProblemDetails;
      }
    },
    SPA: true,
    validators: zod(schema),
    resetForm: false
  }
);

const debouncedSubmit = debounce(500, submit);

Most of these problems aren't bugs, so if you're using this in a commercial project, please consider making a donation.


Added logo component and make logo spain

Fixes Issue
PR to fix issue #84
Changes proposed
added a logo component in the component directory and make logo spin
Requirements
Create a component named Logo in the components folder that implements the screenshots below.
It should accept a size as prop for the different sizes on the header and footer.
The logo should rotate similar to how it does in a fresh create react app installation as shown on this GIF.
Obtain the logo from the Figma design. Use THIS VIDEO as a guide
Acceptance Criteria

[x] The implementation should match the design.

Screenshots

Note to reviewers
The Logo spin animation was performed using the tailwind css animation class.

Can you please give me write access, so I can resolve the conflict

Can you please give me write access, so I can resolve the conflict

@Ezekiel8807 You need to check out the develop branch on your fork and make the changes there. You are currently working on the main branch and that is why you have conflicts.

which one is your main respository? main or develop

which one is your main respository? main or develop

The default branch is develop. I just made this switch in the repo as well to avoid future confusion.


USHIFT-1406: Upgrade el93: crel to src

/retest

/lgtm

The compose result is empty....
/test metal-periodic-test

/test metal-periodic-test

/unhold

[  151.777880] anaconda[2868]: Error
[  151.778430] anaconda[2868]: The following error occurred while installing the payload. This is a fatal error
[  151.779787] anaconda[2868]: and installation will be aborted.
[  151.780635] anaconda[2868]: Failed to pull from repository: g-io-error-quark: While fetching http://192.168.
[  151.781996] anaconda[2868]: 122.1:8080/repo/objects/c7/004b8730e9b36a0bea62fa40287446216fb03f709aafd08be20eb
[  151.783362] anaconda[2868]: 408312d9a.filez: [28] Timeout was reached (0)
Installation has exceeded specified time limit. Exiting application.

/test metal-periodic-test


A9G GPRS_C_SDK with accelerometer LIS3DSH

Hi all.
I've soldered the LIS3DSH on my A9G device.
I'am trying to interact with accelerometer but without success.
First of all, which I2C interface (1, 2, 3) I should initialize in order to read from accelerometer?
My code (to read chipID):
I2C_Config_t i2cConfig1;
i2cConfig1.freq = I2C_FREQ_100K;
if(!I2C_Init(I2C2, i2cConfig2))
Trace(1, "ERROR");
I2C_ReadMem(I2C1, 0x19, 0x02, 1, &accId1, 1, I2C_DEFAULT_TIME_OUT);
Trace(1,"accelerator id shold be 0x19, read:0X%02x",accId1);
The result is:
"accelerator id shold be 0x19, read:0Xfd"
Thanks a lot for any suggestion or sample code.
Cheers,
Lorenzo.

See the demo:
https://github.com/Ai-Thinker-Open/GPRS_C_SDK/blob/master/demo/i2c/src/demo_i2c.c


Add the warning "This file has been translated automatically" to all translation files #115

Add the warning "This file has been translated automatically. If you find an error, just make a PR with the edits" to all translation files.

Add the warning "This file has been translated automatically" to all translation files #115

@joshhazelhurst123
Thank you for your contribution and great work!

thanks @gomzyakov I will keep hunting around this project and see what more I can do.


Fix the symlink creation bug if using bazel

This will fix https://github.com/google/glog/issues/599

@googlebot I signed it!


feat: add aws_pricing_product table

Context
Allowing usage of aws pricing API

Example query results

Results
select
    service_code,
    instance_type,
    cache_engine,
    term,
    purchase_option,
    lease_contract_length,
    description,
    price_per_unit,
    currency
from
    aws_pricing_product
where
    service_code = 'AmazonElastiCache'
  and region_code = 'eu-west-3'
  and location_type = 'AWS Region'
  and instance_type = 'cache.m5.xlarge'
  and cache_engine = 'Redis';

service_code
instance_type
cache_engine
term
purchase_option
lease_contract_length
description
price_per_unit
currency

AmazonElastiCache
cache.m5.xlarge
Redis
Reserved
No Upfront
3yr
Redis, cache.m5.xlarge reserved instance applied
0.1870000000
USD

AmazonElastiCache
cache.m5.xlarge
Redis
OnDemand

$0.36 per Gen Purpose M5.xlarge node hour running Redis
0.3600000000
USD

AmazonElastiCache
cache.m5.xlarge
Redis
Reserved
Partial Upfront
1yr
Redis, cache.m5.xlarge reserved instance applied
0.1170000000
USD

AmazonElastiCache
cache.m5.xlarge
Redis
Reserved
All Upfront
1yr
Upfront Fee
2009
USD

AmazonElastiCache
cache.m5.xlarge
Redis
Reserved
All Upfront
3yr
Redis, cache.m5.xlarge reserved instance applied
0.0000000000
USD

AmazonElastiCache
cache.m5.xlarge
Redis
Reserved
No Upfront
1yr
Redis, cache.m5.xlarge reserved instance applied
0.2460000000
USD

AmazonElastiCache
cache.m5.xlarge
Redis
Reserved
All Upfront
1yr
Redis, cache.m5.xlarge reserved instance applied
0.0000000000
USD

AmazonElastiCache
cache.m5.xlarge
Redis
Reserved
Partial Upfront
3yr
Redis, cache.m5.xlarge reserved instance applied
0.0860000000
USD

AmazonElastiCache
cache.m5.xlarge
Redis
Reserved
All Upfront
3yr
Upfront Fee
4269
USD

AmazonElastiCache
cache.m5.xlarge
Redis
Reserved
Partial Upfront
3yr
Upfront Fee
2271
USD

AmazonElastiCache
cache.m5.xlarge
Redis
Reserved
Partial Upfront
1yr
Upfront Fee
1025
USD

cc @cbruno10 with another one . It's ready for me :-)

Thanks @aminvielledebatAtBedrock for this table 👍 .
There are several columns that are missing descriptions. Could you also add the missing period . at the end of certain column descriptions? Could you also try to trim down a few descriptions since they seem quite lengthy? For instance, the description for region_code could be trimmed down to just A Region is a physical location around the world where data centers are clustered.. While we love having good descriptions for our columns, I think we could possibly trim down a few from a self-explanatory point of view.

@aminvielledebatAtBedrock This is on my radar to review again tomorrow. Also, please note that you don't have to force push each time if you're trying to keep your commit history tidy, we squash as part of merging.

Thanks again @aminvielledebatAtBedrock for all of the hard work and working through multiple review cycles!


Refactor library (prepare to 0.9 support)

Hi, guys!
I'm working on Influxer gem and going to upgrade to 0.9.
My gem depends on this one, so I've decided to upgrade influxdb-ruby first.
But I found out it rather hard to work with the codebase, so I made a little refactoring:

Extract config from client
Extract HTTP functionality to separate module
Extract InfluxDB management functions to separate modules
Add writer concept
Refactor specs (add cases)
Update README
Add Rubocop config and restyle code according to Ruby style guides

Some breaking changes:

rename get_<something>_list to list_<somethings> (it looks less verbose);
no more support for setting time precision on write_point (because it's not supported for async/udp writing, so do we really need it?);
drop support for Ruby < 2.

And some new features:

add 'denormalize' option to config / query to return raw InfluxDB response JSON;
recognize SeriesNotFound error;
add Client#write_raw method to write data without transformation (in case you want to build valid json yourself).

This is just a preparation step before upgrade to 0.9.
@toddboom @jvshahid

:+1:  wish merge

@palkan thanks - this looks awesome! i'm going to review with @kfitzpatrick tomorrow and we'll see if we can get this merged in asap.

+1, any steps towards 0.9 support would be awesome!

Definitely like the changes made but you should definitely break it up into smaller commits. That's a massive PR. +1 though. The sooner this gem works with 0.9, the better.

@palkan i just finished cleaning up all of the v0.8.x PRs and will cut a final 0.1.9 gem. then i'll get this merged in and make 0.2.0 the first v0.9.x release.

@toddboom Should I rebase this on the top of new master?

@palkan if you don't mind doing the rebase, it will save me some time - i'm planning to get this merged in later this afternoon, so let me know if you're working on it! thanks!

@toddboom I working on it.

@palkan it looks like only jruby-head failed, and that one looks like a fluke - i'll get this merged in tonight! thanks for the quick turnaround!

@toddboom Oh, I haven't finished rebasing yet. I still have to check a dozen of commits to ensure that all newly added functionality works (e.g. some specs are missing). I'll make another PR.


Expose beforeAll/beforeEach/afterAll/afterEach in require'd files

Part of the utility of having mocha require in a common .js file (--require) is to be able to set up some common convenience features for ALL tests.
It would be useful to have some hooks similar to, or exactly, the /(after|before)(All|Each)/ hooks.
Use case: Being able to integrate tools like sinon more deeply with mocha, allowing automatic tear-downs of stubs/mocks for each/all steps.

what sort of feedback is still needed here? would love to see this. at the moment, i have to use require('./setup') on top of all my test files.

Actually, there's another situation where this would be really useful.
I'm using Wallaby to run my tests in parallel. For this to work with the integration tests I've to use a separate database per test runner (I simply append the process id to the database name). This is done in --require setup.js file and it works perfectly.
The issue I'm having is: how can I drop that temporary database when the test is complete? I can't use after() in my setup.js because that hook is not exposed there. And I can't use the "root suite before/after" solution proposed here either because I have no control over which test files are executed in which Wallaby runner (I'd need the spec with the global hooks to be run in all Wallaby workers).

I still don't understand why this is necessary

I have a lot of use-cases of this feature.

Globally start selenium in before and shutdown in after
clean database after tests will run
start web-services before tests
build/compile library before test

@eagleeye thanks for some good specifics

It's a bummer that this isn't supported (easily) by the gulp CLI. I've been spoiled by gulp-mocha, which lets you do...
gulp.src(['path/to/setup/*', 'path/to/unit/**/*'])
  .pipe(...)

Aside from changing the behavior of the -r flag, I prefer the API of Gulp. Although the syntax isn't as nice, I've recreated that behavior using the CLI by changing my glob:
{test/unit/setup/*,test/unit/specs/**/*}

I figured I'd post the option in case anyone else likes it more than the other workarounds suggested above :v:

This is exactly how I solved it as well in my tests. Removed the --require and moved the setup script to be the first test executed. Won't work for everyone's use case, but works fine for mine:
mocha test/client/setup test/client/some-test

The issue with mocha test/setup test/some-test approach is that you have to remember to include the test/setup if you need to run some individual test file (and I do that very often).
I have "test" script in package.json similar to this mocha test/setup.js test/*-spec.js and this is working well. But to run individual tests I have to always keep in mind to run them like this:
mocha test/setup.js test/some-spec.js
I found that adding "test/setup.js" to mocha.opts (as a last thing) is working well, not sure if it's by design, but it works with mocha 3.2.0

@evgeny-myasishchev if you only want to run one test, isn't that what only and grep are for?

@tbranyen Yep, I'm using those options as well. For me it's quite often just faster and more flexible to use mocha test/some-spec.js [--watch --some-opts...]
Also with only there is another issue if you use it with --watch. If you start some specs in a watch mode and "only" and then remove only, then mocha will "see" zero tests so I have to restart it.

@evgeny-myasishchev I hate that issue so much. If I could fix one thing about Mocha, it'd be that watch bug.

Looks like someone has nearly done this https://github.com/mochajs/mocha/pull/2544

Ahhhhghhhhh!!! I am new to Mocha and according to the documentation this is supposed to be a cinch. I  thought that it should just work in required files. why isn't this working? I have read the comments but still don't get why you guys think that exposing these hooks is bad.

For the record, Mocha should run files like this:

--require <file> from mocha.opts without (before|after)(Each)?|describe|it (guaranteed to run)
--require <file> from an NPM script without (before|after)(Each)?|describe|it (guaranteed to run as long as run through that NPM script)
--require <file> from commandline without (before|after)(Each)?|describe|it (whatever you specify on the CLI)
<file> (no --require) from mocha.opts with (before|after)(Each)?|describe|it (guaranteed to run)
<file> (no --require) from an NPM script with (before|after)(Each)?|describe|it (guaranteed to run as long as run through that NPM script)
<file> (no --require) from commandline with (before|after)(Each)?|describe|it (whatever you specify on the CLI)

For example, if you have six files named 1.js through 6.js that need to run from 1 to 6 with the first three not having (before|after)(Each)?|describe|it and the last three having (before|after)(Each)?|describe|it, you can do it with this in mocha.opts:
3.js
--require 1.js

...and this in package.json's scripts:
"test": "mocha 5.js --require 2.js"

...and calling this on the CLI:
npm test -- 6.js --require 3.js

(Note that I've reversed the order of --required files vs. plain test files relative to each other simply to emphasize that both their being --required and the order of mocha.opts then npm script then CLI overrides it; individual file ordering only affects files of the same --required/not---required type specified in the same one of these three places.)
That should provide more than enough flexibility to satisfy all reasonable use cases; as far as I can think of the only possible cases it doesn't cover (of which I'm not sure there is any value) are:

running a file without (before|after)(Each)?|describe|it after one with (before|after)(Each)?|describe|it
guaranteeing files of a given type (with vs without (before|after)(Each)?|describe|it) are run after those of the same (or the later) type specified on the CLI
tooling that wraps Mocha or intercepts Mocha's behavior in a way that interferes with those points of control without providing a mechanism of its own to fully replace the behavior with which it interferes (this is a problem in any such tooling and should be addressed as an issue there)

It might be worth adding a small section to the documentation to highlight this relationship of --require <file> vs. <file> and mocha.opts vs commandline.

I'm amazed this is still a problem.  It seems to me a pretty common use case to:
A) have a test setup file, which does thing like instantiating a Sinon sandbox
B) want to invoke mocha tests multiple ways; you might run mocha *, or you might run individual test files (some IDEs make this very easy), or you might have a testSuite.js file
C) not want to have to repeat boilerplate such as import testSetup from 'testSetup'; beforeEach(testSetup); in every test file
Given those (IMHO pretty sane) requirements, --require seems like the natural solution.  It ensures that no matter how you run your tests the proper setup happens first, without the need to repeat beforeEach(testSetup) in every file.
The only problem is, if you try to use beforeEach in a --require file, it won't exist.  Why, I have no idea, but it prevents the above solution from working.  You can't even bring in beforeEach manually with import { beforeEach } from 'mocha'; it will be undefined.
It would be really convenient if Mocha just made the globals available to --require files, but until they do I found a workaround elsewhere:
const doTestSetup = () => doWhatever();
setTimeout(() => beforeEach(doTestSetup));
You can also use defer if you're a Lodash fan like myself.  By calling beforeEach inside the timeout function it actually will exist by the time that function executes, allowing you to do proper test setup via --require.
Hope this helps others.

Ensure you've upgraded to a version of Mocha with --file, but here's an example:
// test.spec.js
it('should be ok', function () {});

// setup.js
afterEach(function () {
  console.log('a test happened');
});

$ mocha --file setup.js test.spec.js

  ✓ should be ok
a test happened

  1 passing (6ms)

Just updated Mocha to be sure I wasn't being stupid :)

<EMAIL_ADDRESS>

Here's a real simple example:
A.js
window.foo();
ATest.js
import 'A';
testSetup.js
global.window = { foo: () => {});
mocha --file testSetup ATest.js

Mocha doesn't support import in Node.js (and won't until no longer experimental)

Oh, should have mentioned that I'm using Babel, so it's all getting transpiled down to require statements.  I'll update my example.

Sorry, didn't see your Mocha version.  --file was added in v5.

Ah!  I thought doing npm i mocha would get me the latest, but I guess I had something in my package.json blocking it.  In any case, I'm now at:

<EMAIL_ADDRESS>

and when I run my example again I get ...

(function (exports, require, module, __filename, __dirname) { window.foo();
^

?ReferenceError: window is not defined

what does mocha -v output?

mocha -v
error: unknown option `-v'

mocha --version
3.5.3

WTF!  I just retried npm -i mocha again and again got that "+<EMAIL_ADDRESS>... but mocha --version still refers to 3.5.3!
Sorry for the confusion; not sure what's going on in my environment but it clearly doesn't appear to be Mocha's problem.  Thanks a bunch for all of the help.

It's pretty simple; mocha is installed globally and is version 5.1.1.  This is what you get when you use mocha.  The mocha that's in your local node_modules is in node_modules/.bin/mocha.

Can you pliz explain:

what co-mocha is doing that's enabling --require to work with global hooks?
if this is bad and why?
why mocha isn't implementing it like this

 mocha --require co-mocha test/app.mock.js test/**/*.test.js
there is a before() in app.mock.js and it works well with the above but not with the below.
 mocha --require test/app.mock.js test/**/*.test.js
Somehow co-mocha is exposing those hooks to a global scope enabling all requires to work with hooks. What got me back here was actually trying to figure out, how it's done. Actually it was a Google search and it got me back here, was surprised to see I had this same issue about a year ago. You guys should just expose the hooks, give an option to do so or explain this different relationship between --file and --require in the docs.
Please try to explain how mocha runs things, how it works with our tests in the documentation.


Not removing self as an observer

Basically what it says in the title. Would gladly open a pull request when I have 15 min to breathe :) Otherwise this is the snippet:
deinit {
    AVAudioSession.sharedInstance().removeObserver(self, forKeyPath: "outputVolume", context: nil)
}

Hi @gapl
My bad! I'll push a fixed version right away. Thanks for the heads up 👍


Subscription won't return items with SortDirection for connected models

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
No response
If applicable, what version of Node.js are you using?
No response
Amplify CLI Version
4.49.0
What operating system are you using?
Mac
Amplify Categories
api
Amplify Commands
codegen
Describe the bug
Hello, I'm facing a bug where for the subscription the sort direction is not taken into account. The list and get queries are working fine, and we can specify sort direction for them.
Schema and subscription query to be found at the end.
The sortDirection added after imagesByDate is simply not taken into account.

Schema :
type Camera @model
{
id: ID!
cameraName: String!
project: Project @connection(name: "ProjectCameras")
imagesByDate: [Image] @connection(keyName: "byCameraByDate", fields: ["id"])
}

Subscription :
subscription MySubscription {
onUpdateCamera {
id
imagesByDate(sortDirection: DESC) {
items {
id
datetime
}
}
}
}

Example of image id : cam001_2020-09-29T20:01:36.549835Z

Expected behavior
The sort direction should have an effect on the sorting of the results.
Reproduction steps
1- Have a one-to-many connection between two tables
2- subscription from the first table won't retrieve items from the second respecting the sort direction you specified
GraphQL schema(s)

# Put schemas below this line
type Camera @model
  {
  id: ID!
  cameraName: String!
  project: Project @connection(name: "ProjectCameras")
  imagesByDate: [Image] @connection(keyName: "byCameraByDate", fields: ["id"])
}
type Image @model
  @key(name: "byCameraByDate", fields: ["cameraID", "datetime"])
{
  id: ID!
  cameraID: ID!
  datetime: AWSDateTime!
}

Log output

# Put your logs below this line

Additional information
No response

@OukhouyaAyoub this is by design as you only see the parameters for the subscription because of the type reuse in the GraphQL schema, so on the client side you also can do type reuse.
Subscriptions are not doing an actual query, your update mutation's selection set is doing the query, subscriptions receive the same data that was returned as a result of the update mutation.
creating data with this mutation:
mutation C {
  C1: createCamera(input: {
    id: "C1"
    cameraName: "Camera1"
  }) {
    id
  }

  I1: createImage(input:{
    id: "I1"
    cameraID: "C1"
    datetime: "2020-01-01T00:00:00.000Z"
  }) {
    id
  }

  I2: createImage(input:{
    id: "I2"
    cameraID: "C1"
    datetime: "2021-03-10T00:00:00.000Z"
  }) {
    id
  }

  I3: createImage(input:{
    id: "I3"
    cameraID: "C1"
    datetime: "2019-12-01T00:00:00.000Z"
  }) {
    id
  }
}

and then creating this subscription in another AppSync console window:
subscription MySubscription {
  onUpdateCamera {
    cameraName
    id
    imagesByDate {
      items {
        cameraID
        datetime
      }
    }
  }
}

and executing this update mutation:
mutation U {
  updateCamera(input: {
    id: "C1"
    cameraName: "Updated C1"
  }) {
    id
    cameraName
    imagesByDate(sortDirection: DESC) {
      items {
        cameraID
        datetime
      }
    }
  }
}

will get you the desired result and the same applies to filtering as well.
I hope this helped to shed some light on how it works behind the scenes.


Use pickle.dumps(key) as key, so any picklable object can be the key

Use pickle.dumps(key) as key, so any picklable object can be the key.
This would make the database files incompatible with previous version.

@cy18 I very much agree that this would be very helpful.
Please see and consider discussion at https://github.com/piskvorky/sqlitedict/pull/29 and https://github.com/piskvorky/sqlitedict/pull/30 during the implementation of this PR.

I didn't see these discussions. I found the module useful but I need to use tuple as key. At first, I just dumps(key) as the key, then I decide to modify the module to simplify my code. Next time I really should check the issues and PRs before doing it by myself.


SECRET KEY

secret key not in this code?

Good question. I checked the reference paper. However, it is also not included there. There are relevant studies considering the secret key, and this project might be helpful to evaluate the effect of attacks while having a secret key.


0.4.0 Release

TODO:

[ ] update date in CHANGES.rst
[ ] Merge https://github.com/zytedata/zyte-spider-templates-project/pull/7 after this PR is merged
[ ] Tag 0.4.0

Codecov Report

Merging #17 (5997740) into main (918e9b4) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 5997740 differs from pull request most recent head 9186496. Consider uploading reports for the commit 9186496 to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #17   +/-   ##
=======================================
  Coverage   98.39%   98.39%
=======================================
  Files           9        9
  Lines         498      498
=======================================
  Hits          490      490
  Misses          8        8

Looks good for me! @BurnzZ is this feature https://github.com/zytedata/zyte-spider-templates-project/pull/7 to use in Articles?

is this feature https://github.com/zytedata/zyte-spider-templates-project/pull/7 to use in Articles?

@PyExplorer it was mainly for eCommerce websites that aggregates products across multiple websites. This could also be used in Articles, yes.


Protractor config uses wrong path

protactor.conf.js says the tests are located in specs/e2e/dist/*.js. This is incorrect: they can be found in test/e2e/dist/*.js.

@EisenbergEffect this one can be closed as it's been addressed by the merged PR