coapjs / node-coap

CoAP - Node.js style
MIT License
531 stars 154 forks source link

Next release planning #305

Closed JKRhb closed 2 years ago

JKRhb commented 2 years ago

Over the last few months there have been a number of changes that have been introduced to the project. Most of them have been refactoring or clean up but there are also a couple of new features (new methods and content-formats as well as preliminary Typescript support).

As the merge of #293 will probably only be able in about a week I was wondering if we should maybe already publish a new (minor) release or wait until #293 has been merged. I was also wondering if the Typescript release could be version 1.0.0 or if there are still important features missing that should be implemented first. As there haven't been any breaking API changes the TS release it could also be declared as another minor one.

What do you think, @Apollon77 and @invaderb?

JKRhb commented 2 years ago

Regarding the question of breaking changes, I noticed that #293 actually introduces one minor API change: the global agents cannot be replaced directly anymore due to some apparent restrictions in typescript. I introduced two setter functions instead.

I would therefore suggest that all of the changes until #293 go into a last 0.x.x minor release while #293 introduces version 1.0.0. Do you think this sounds reasonable?

invaderb commented 2 years ago

@JKRhb Did you mean to reference 293 for both versions or is there another pr you are talking about?

I don't really see any reason why we can't go to a version 1.0.0, I guess it depends on how strict we'd like to follow semver From the spec https://semver.org/#spec-item-4 Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.

Are we considering that node-coap is truly in a stable state? I use it in production at my company and suggest it to customers using it as a template for training for coap and how it works.

JKRhb commented 2 years ago

@JKRhb Did you mean to reference 293 for both versions or is there another pr you are talking about?

Oh, sorry, I meant everything before #293 could go into a minor release while #293 itself would start 1.y.z. This way the (minor) API change could be separated from the non-breaking additions. If this approach makes sense I would open a PR to update the changelog and prepare a 0.26.0 release soon :) After that we could merge #293 and release 1.0.0.

I don't really see any reason why we can't go to a version 1.0.0, I guess it depends on how strict we'd like to follow semver From the spec https://semver.org/#spec-item-4 Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.

Are we considering that node-coap is truly in a stable state? I use it in production at my company and suggest it to customers using it as a template for training for coap and how it works.

I also think by now it should be relatively stable. Something like DTLS is of course an important feature that is still missing at the moment as well as a implementations for a number of other RFCs but I assume that the general API won't change that much in the future. After the typescript migration there should also be an additional guarantee for stability at runtime further justifying the release of a 1.y.z version. So I guess we could go forward with this with a clear conscience :)

invaderb commented 2 years ago

AH ok that sounds good to me!

I'll comment about the DTLS stuff in your other ticket you opened.

JKRhb commented 2 years ago

AH ok that sounds good to me!

Great :) I opened #307 to prepare for the release. @Apollon77 Could you also have a look and release the new version if the PR is okay for everyone?

Apollon77 commented 2 years ago

Hey,

sorry for my absence, needed to spent a week to work after Amazon changes and this desttoyed some of my other plans. I finish one project and then I check all PRs and get back here.

Sorry for me blocking here :-(

Ingo

JKRhb commented 2 years ago

@Apollon77 No worries, things hadn't been fully ready yet anyway :) Hope the Amazon issue was manageable in the end :/

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs within the next 7 days. Please check if the issue is still relevant in the most current version of the adapter and tell us. Also check that all relevant details, logs and reproduction steps are included and update them if needed. Thank you for your contributions.

Apollon77 commented 2 years ago

Ok, so I merge #307, then we publish 0.26.0 ... Then we merge #293 and do an 1.0.0 afterwards?! Right?

JKRhb commented 2 years ago

Ok, so I merge #307, then we publish 0.26.0 ... Then we merge #293 and do an 1.0.0 afterwards?! Right?

Yeah, sounds good :)

Apollon77 commented 2 years ago

0.26.0 released ...

Apollon77 commented 2 years ago

TS PR also merged, I opened one to update deps ... when we do 1.0? ;-))

Apollon77 commented 2 years ago

should we also do 1.0 "now" or wait some days?

JKRhb commented 2 years ago

should we also do 1.0 "now" or wait some days?

Sorry for the late response! I think we could already go for a 1.0.0 release now... Or do you see anything that should be added first?

Apollon77 commented 2 years ago

Ok, so to summarize ... we now remove changelog.md and move over to releases docs only right? Then we should do one last dependency check and pot update deps and then release 1.0 ... do you want then to create the release tag ... and I then release it?

JKRhb commented 2 years ago

do you want then to create the release tag ... and I then release it?

Sure, sounds good :) I opened #321 for the preparation of the new release. To ensure the 1.0.0 tag doesn't get lost on master (which is one of the scenarios I thought about when I opened #318) maybe we can merge that PR with a merge commit?

Apollon77 commented 2 years ago

Done

JKRhb commented 2 years ago

Done

Awesome :) I already created a release here on Github, could you publish the new version to npm?

Apollon77 commented 2 years ago

npm release done,

btw for future : DO we also want to publish typescript files? ;-))

npm notice 
npm notice 📦  coap@1.0.0
npm notice === Tarball Contents === 
npm notice 311B   .eslintrc                           
npm notice 19.1kB dist/lib/agent.js                   
npm notice 2.5kB  dist/lib/block.js                   
npm notice 3.7kB  examples/blockwise_put.js           
npm notice 855B   examples/blockwise.js               
npm notice 3.0kB  dist/lib/cache.js                   
npm notice 363B   examples/client_and_server.js       
npm notice 165B   examples/client.js                  
npm notice 1.0kB  examples/delayed_response.js        
npm notice 7.8kB  dist/lib/helpers.js                 
npm notice 1.2kB  dist/lib/incoming_message.js        
npm notice 4.8kB  dist/index.js                       
npm notice 988B   examples/json.js                    
npm notice 3.3kB  dist/lib/middlewares.js             
npm notice 735B   examples/multicast_client_server.js 
npm notice 161B   examples/observe_client.js          
npm notice 2.0kB  dist/lib/observe_read_stream.js     
npm notice 449B   examples/observe_server.js          
npm notice 2.3kB  dist/lib/observe_write_stream.js    
npm notice 6.8kB  dist/lib/option_converter.js        
npm notice 3.1kB  dist/lib/outgoing_message.js        
npm notice 5.7kB  dist/lib/parameters.js              
npm notice 2.2kB  examples/proxy.js                   
npm notice 554B   examples/req_with_payload.js        
npm notice 2.7kB  dist/lib/retry_send.js              
npm notice 3.4kB  dist/lib/segmentation.js            
npm notice 24.3kB dist/lib/server.js                  
npm notice 228B   examples/server.js                  
npm notice 1.8kB  dist/test.js                        
npm notice 1.9kB  package.json                        
npm notice 452B   tsconfig.json                       
npm notice 16.7kB dist/lib/agent.js.map               
npm notice 2.3kB  dist/lib/block.js.map               
npm notice 2.3kB  dist/lib/cache.js.map               
npm notice 6.4kB  dist/lib/helpers.js.map             
npm notice 912B   dist/lib/incoming_message.js.map    
npm notice 2.6kB  dist/index.js.map                   
npm notice 2.7kB  dist/lib/middlewares.js.map         
npm notice 1.6kB  dist/lib/observe_read_stream.js.map 
npm notice 2.1kB  dist/lib/observe_write_stream.js.map
npm notice 5.9kB  dist/lib/option_converter.js.map    
npm notice 2.7kB  dist/lib/outgoing_message.js.map    
npm notice 2.5kB  dist/lib/parameters.js.map          
npm notice 2.4kB  dist/lib/retry_send.js.map          
npm notice 3.0kB  dist/lib/segmentation.js.map        
npm notice 18.7kB dist/lib/server.js.map              
npm notice 1.2kB  CONTRIBUTING.md                     
npm notice 1.2kB  LICENSE.md                          
npm notice 25.1kB README.md                           
npm notice 1.4kB  dist/lib/agent.d.ts                 
npm notice 18.6kB lib/agent.ts                        
npm notice 565B   dist/lib/block.d.ts                 
npm notice 2.2kB  lib/block.ts                        
npm notice 684B   dist/lib/cache.d.ts                 
npm notice 2.8kB  lib/cache.ts                        
npm notice 2.3kB  dist/lib/helpers.d.ts               
npm notice 7.2kB  lib/helpers.ts                      
npm notice 706B   dist/lib/incoming_message.d.ts      
npm notice 1.5kB  lib/incoming_message.ts             
npm notice 1.2kB  dist/index.d.ts                     
npm notice 3.3kB  index.ts                            
npm notice 557B   dist/lib/middlewares.d.ts           
npm notice 3.1kB  lib/middlewares.ts                  
npm notice 3.1kB  models/models.d.ts                  
npm notice 523B   dist/lib/observe_read_stream.d.ts   
npm notice 1.9kB  lib/observe_read_stream.ts          
npm notice 803B   dist/lib/observe_write_stream.d.ts  
npm notice 2.6kB  lib/observe_write_stream.ts         
npm notice 721B   dist/lib/option_converter.d.ts      
npm notice 6.7kB  lib/option_converter.ts             
npm notice 1.3kB  dist/lib/outgoing_message.d.ts      
npm notice 3.7kB  lib/outgoing_message.ts             
npm notice 257B   dist/lib/parameters.d.ts            
npm notice 5.5kB  lib/parameters.ts                   
npm notice 626B   dist/lib/retry_send.d.ts            
npm notice 2.9kB  lib/retry_send.ts                   
npm notice 839B   dist/lib/segmentation.d.ts          
npm notice 3.4kB  lib/segmentation.ts                 
npm notice 2.4kB  dist/lib/server.d.ts                
npm notice 25.2kB lib/server.ts                       
npm notice === Tarball Details === 
npm notice name:          coap                                    
npm notice version:       1.0.0                                   
npm notice package size:  72.9 kB                                 
npm notice unpacked size: 316.7 kB                                
npm notice shasum:        364b2530e2e3a9204afede46ae8729ca11287caf
npm notice integrity:     sha512-oBgiz1uKYgczl[...]dTAA4sp90NImg==
npm notice total files:   80                                      
npm notice 
+ coap@1.0.0
JKRhb commented 2 years ago

npm release done,

🎉

btw for future : DO we also want to publish typescript files? ;-))

As there also source map files provided I think my intent by including them was to allow users of the library to jump to the original typescript source code. Not sure if that actually works already but if it does I think it is a bit nicer than jumping to a declaration file when trying to inspect the implementation of a function or class. But I think we should revisit this question when we release the next version :)

Apollon77 commented 2 years ago

Then we can close here or?

JKRhb commented 2 years ago

Then we can close here or?

Yeah, I think so :)

Apollon77 commented 2 years ago

1.0.1 done

JKRhb commented 2 years ago

1.0.1 done

Awesome, thank you!