Some progress on .h docs, and add a preliminary CONTRIBUTING.md.
This commit is contained in:
		
							
								
								
									
										36
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
# Contributing to Tilde Friends
 | 
			
		||||
Thank you for your interest in Tilde Friends.
 | 
			
		||||
 | 
			
		||||
Above all, Tilde Friends aims to be a fun, safe place to play.  When that is at
 | 
			
		||||
odds with the course of development, we will work through it with respectful
 | 
			
		||||
communication.
 | 
			
		||||
 | 
			
		||||
## How can I contribute?
 | 
			
		||||
 | 
			
		||||
The nature of Tilde Friends makes for a wide range of ways to contribute 
 | 
			
		||||
 | 
			
		||||
 * Just use it.  Really, just kicking the tires will probably shake out issues
 | 
			
		||||
   in useful ways at this point.
 | 
			
		||||
 * Report and comment on bugs: https://dev.tildefriends.net/issues.
 | 
			
		||||
 * Make apps.  You don't need my permission to make and share apps with Tilde
 | 
			
		||||
   Friends.  I hope that an ecosystem of good apps grows outside of this
 | 
			
		||||
   repository.  If you want to recreate better versions of the stock apps, just
 | 
			
		||||
   do it.  If you make a better ssb app or whatever and drop me a line however
 | 
			
		||||
   is most convenient for you, I will probably take a look and consider
 | 
			
		||||
   replacing the stock one with it.
 | 
			
		||||
 * Write about it.  Docs in the git repository, blog posts, private messages to
 | 
			
		||||
   me with ideas...really there is no wrong answer.  Just make some noise, and
 | 
			
		||||
   I'll do my best to incorporate or otherwise link your feedback and make the
 | 
			
		||||
   most of it.
 | 
			
		||||
 * Write C code in the git repository.  I'm really striving for it to be the
 | 
			
		||||
   case that other people don't really need to meddle in there, but if you can
 | 
			
		||||
   help out, I will gladly review your pull requests via
 | 
			
		||||
   https://dev.tildefriends.net/pulls.
 | 
			
		||||
 | 
			
		||||
## Best practices
 | 
			
		||||
 | 
			
		||||
* The C code is formatted with clang-format.  Run `make format`.
 | 
			
		||||
* The rest is formatted with prettier.  Run `npm run prettier`.
 | 
			
		||||
* We strive to have code compile on all platforms with no warnings and run with
 | 
			
		||||
  no sanitizer issues.
 | 
			
		||||
* There are tests.  Run `out/debug/tildefriends test`.
 | 
			
		||||
@@ -7,8 +7,13 @@
 | 
			
		||||
** @{
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/** A JS context. */
 | 
			
		||||
typedef struct JSContext JSContext;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
** Register the bcrypt script interface.
 | 
			
		||||
** @param context The JS context.
 | 
			
		||||
*/
 | 
			
		||||
void tf_bcrypt_register(JSContext* context);
 | 
			
		||||
 | 
			
		||||
/** @} */
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								src/bip39.h
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								src/bip39.h
									
									
									
									
									
								
							@@ -11,7 +11,23 @@
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
** Convert a key from bytes to words.
 | 
			
		||||
** @param bytes A raw binary representation of a key.
 | 
			
		||||
** @param bytes_size The size of bytes.
 | 
			
		||||
** @param[out] out_words A human-readable English word representation of a key.
 | 
			
		||||
** @param words_size The size of the out_words buffer.
 | 
			
		||||
** @return True if the key was successfully converted.
 | 
			
		||||
*/
 | 
			
		||||
bool tf_bip39_bytes_to_words(const uint8_t* bytes, size_t bytes_size, char* out_words, size_t words_size);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
** Convert a key from words to bytes.
 | 
			
		||||
** @param words A space-separated list of English words forming a key.
 | 
			
		||||
** @param[out] out_bytes A buffer to receive the raw binary form of the key.
 | 
			
		||||
** @param bytes_size The size of the out_bytes buffer.
 | 
			
		||||
** @return True if the key was successfully converted.
 | 
			
		||||
*/
 | 
			
		||||
bool tf_bip39_words_to_bytes(const char* words, uint8_t* out_bytes, size_t bytes_size);
 | 
			
		||||
 | 
			
		||||
/** @} */
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,8 @@ enum
 | 
			
		||||
{
 | 
			
		||||
	k_bip39_words_count = 2048
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/** An array of words used for BIP39-encoding a key. */
 | 
			
		||||
extern const char* k_bip39_words[k_bip39_words_count];
 | 
			
		||||
 | 
			
		||||
/** @} */
 | 
			
		||||
 
 | 
			
		||||
@@ -6,8 +6,13 @@
 | 
			
		||||
** @{
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/** A JS context. */
 | 
			
		||||
typedef struct JSContext JSContext;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
** Register the database script interface.
 | 
			
		||||
** @param context The JS context.
 | 
			
		||||
*/
 | 
			
		||||
void tf_database_register(JSContext* context);
 | 
			
		||||
 | 
			
		||||
/** @} */
 | 
			
		||||
 
 | 
			
		||||
@@ -8,12 +8,33 @@
 | 
			
		||||
 | 
			
		||||
#include <uv.h>
 | 
			
		||||
 | 
			
		||||
/** A JS context. */
 | 
			
		||||
typedef struct JSContext JSContext;
 | 
			
		||||
/** A task. */
 | 
			
		||||
typedef struct _tf_task_t tf_task_t;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
** Register the file script interface.
 | 
			
		||||
** @param context The JS context.
 | 
			
		||||
*/
 | 
			
		||||
void tf_file_register(JSContext* context);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
** Asynchronously stat() a file.
 | 
			
		||||
** @param task The running task.
 | 
			
		||||
** @param path The path to the file to stat().
 | 
			
		||||
** @param callback A function that will be called with the stat result.
 | 
			
		||||
** @param user_data User data that will be passed to the callback.
 | 
			
		||||
*/
 | 
			
		||||
void tf_file_stat(tf_task_t* task, const char* path, void (*callback)(tf_task_t* task, const char* path, int result, const uv_stat_t* stat, void* user_data), void* user_data);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
** Asynchronously read a file's contents.
 | 
			
		||||
** @param task The running task.
 | 
			
		||||
** @param path The path to the file.
 | 
			
		||||
** @param callback A callback that will be called with the file contents.
 | 
			
		||||
** @param user_data User data that will be provided to the callback.
 | 
			
		||||
*/
 | 
			
		||||
void tf_file_read(tf_task_t* task, const char* path, void (*callback)(tf_task_t* task, const char* path, int result, const void* data, void* user_data), void* user_data);
 | 
			
		||||
 | 
			
		||||
/** @} */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user