• Print

Author Topic: Guidelines for Contributing to QB64's Source Code/Core Functionality  (Read 4222 times)

Galleon

  • Administrator
  • Hero Member
  • *****
  • Posts: 5486
  • QB Forever
Guidelines for Contributing to QB64's Source Code/Core Functionality
« on: June 19, 2014, 02:23:57 am »
I was recently asked for guidelines about the process for contributing to QB64's source code/core functionality.

I am supportive of ANY change to QB64 which:
1) Will not break existing functionality in any way
2) Is multi-platform compatible
3) Does not grossly/negatively interfere with the QB64 programming experience
4) Does not contain any known bugs
5) Is/Will be clearly documented so others can use it (either on the forum or in the WIKI)
6) Does not allow mixed language/CPU specific command integration (such as inline C++ code, assembly, etc)
7) Is not malicious in any way

Does your idea meet all of the above criteria? If so your next steps are...
1) Code it! (make sure you note any files you change and where for your own reference)
2) Submit it.
i) If you are a QB64 repository contributor, grab the latest version of the repository, make your changes and push them (I and the community will test the next dirty build [which is automatically created from the repository] and as long as it works, job done!) or...
ii) Become a repository contributor by asking me on the Q&A forum

Everybody has a different opinion about what QB64 can/should be. But unless we make it what the individuals in our community want it to be then we all lose. So even if we personally don't want/need things like...
- Path finding
- Sorting
- A suite of string commands
- University-degree level math operations
- A circle fill command
- ODBC functionality
- OOP
- Name spaces
- Option explicit
- Web server interoperability
- Nullable/Reference types
...someone does.

My new philosophy is to let QB64 be what the community want it to be. Even if we end up with 1000s of commands that barely get used by the majority, it is better than QB64 not being used at all. And if someone implements something incredibly stupid/unnecessary (such as a _HELLOWORLD command) the beauty of a repository is that it can always be rolled back later. Because of this philosophy, you won't see me standing in the way of any changes.
Something old... Something new... Something borrowed... Something blue...

SMcNeill

  • Moderator
  • Hero Member
  • *****
  • Posts: 6194
Re: Guidelines for Contributing to QB64's Source Code/Core Functionality
« Reply #1 on: June 19, 2014, 06:25:04 am »
Got to admit, I *REALLY* like the open philosophy.  There's a lot of things already in QB64 which I wouldn't ever need personally, but I'm glad they're in there for the people who do need them.  Give me a few days to get a fresh copy from the repository and I'll push a few changes into it so you can view them for your approval.   For starters I'd like to add just some basic math functions, but later I'd love to go in and add different things that I think the language could use (like a nice built-in Sort function where we pass it a memblock to use). 

Is there any chance I can get wiki editing permission from you?  If I'm going to be pushing different things into the source, it'd be nice to also make certain that the WIKI contains proper references to those things and documents them.  No need to make Clippy try and keep up with everything and increase his work load, when it'd be a simple matter to help document things myself.  ;)

Many thanks for the guidelines and clarification for the vision of expansionism.  I have a feeling that things will start out slowish, but then expand over time as more and more people learn how to add their content and help expand the project.  I'm looking forward to where the future might lead!   ;D

EDIT:  And for anyone interested in working with the Repository, head over to the nice writeup here: http://www.qb64.net/forum/index.php?topic=10835.msg90756#msg90756   
It explains how to download a fresh copy to your computer.  Use it to make any changes you need and then push the changes back to the repository (but you must be registered as a contributor, which needs Galleon's approval as mentioned above.).   After that, the dirty build will compile and share those changes with everyone else and YOUR code will become available for the rest of the community to use.  ;)
« Last Edit: June 19, 2014, 06:32:11 am by SMcNeill »
http://bit.ly/Color32BI -- A set of color CONST for use in 32 bit mode, as a BI library.

Clippy

  • Hero Member
  • *****
  • Posts: 19399
  • I LOVE π = 4 * ATN(1)    Use the QB64 WIKI >>>
    • Pete's Qbasic Site
Re: Guidelines for Contributing to QB64's Source Code/Core Functionality
« Reply #2 on: June 19, 2014, 10:26:36 am »
We should have a special place here for contributions to QB64 and additions to the Repository. Then people could contribute and others could help them add them to the repository or develop the additions together.

Who decides what new KEYWORDS get added? I certainly don't want to document keywords that are experimental until they are approved.
QB64 WIKI: Main Page
Download Q-Basics Demo: Q-Basics.zip
Download QB64 BAT, IconAdder and VBS shortcuts: QB64BAT.zip
QB64 SDL

Galleon

  • Administrator
  • Hero Member
  • *****
  • Posts: 5486
  • QB Forever
Re: Guidelines for Contributing to QB64's Source Code/Core Functionality
« Reply #3 on: June 19, 2014, 11:19:00 am »
Quote
We should have a special place here for contributions to QB64 and additions to the Repository.
We already have a community development forum and a QB64-GL forum which don't get much traffic. Maybe we could re-badge one of these.

Quote
people could contribute and others could help them add them to the repository
The problem with that is that the repository contributor is responsible for the changes regardless of where they came from. This works fine for minor bug fixes but it is unfair to ask a repository contributor to take personal responsibility for large blocks of code.

Quote
Who decides what new KEYWORDS get added? I certainly don't want to document keywords that are experimental until they are approved.
Anything that is committed to the repository should be considered official as long as it meets the guidelines I outlined above. Therefore it should be documented. Let's see how the documentation rule goes, I'm guessing most people adding keywords will be willing to contribute to the Wiki and I'm willing to give them access.
As for who decides which keywords get added... no one, just the rules I outlined. Of course I have veto powers but as I outlined above I won't be using them except in very exceptional circumstances.

Steve, check your emails (same email address as on forum) for your wiki login password.
« Last Edit: June 19, 2014, 11:32:34 am by Galleon »
Something old... Something new... Something borrowed... Something blue...

wiggins

  • Sr. Member
  • ****
  • Posts: 447
Re: Guidelines for Contributing to QB64's Source Code/Core Functionality
« Reply #4 on: June 20, 2014, 07:24:30 am »
Thank you for these guidelines....

waltersmind

  • QB64 Partner Site Owner
  • Hero Member
  • *
  • Posts: 666
  • TheJoyfulProgrammer.com
    • The Joyful Programmer
Re: Guidelines for Contributing to QB64's Source Code/Core Functionality
« Reply #5 on: June 20, 2014, 08:32:45 am »
Galleon,

Thank you for the needed guidelines.

Also, I am not sure you aware, I started a QB64 programming forum after QB64.net went down a few weeks ago that was meant to allow us QB64 lovers to continue to do what we love with QB64. Now that your site is back up, I am continuing the forum only to complement QB64.net.

I would like to invite you, and everyone else to stop by. It would also be an honor to have the Great Galleon (Rob)  ;D on there, since QB64 is your baby and I am trying to help promote it.

Right now, the forum uses the MyBB forum software as well as some additional plugins from their site. Though it has great features, it still lacks in a lot of areas (simply doesn't have the full humph that I am looking for), so I will be modifying the software over time to give the members better tools and abilities.

Later on, when I get time, I do want to add some graphical statements into QB64 as well as menu systems and UI's, so that is still on the table. Right now though, I need to work on my forum for QB64.

The name of the forum is, "The Joyful Programmer's Forum - The QB64 Edition" and is located at:  www.TheJoyfulProgrammer.com. As the title suggests, I do plan on creating other programming forums as well in the future. I plan on creating forums for MASM32 (Assembly Language), PHP & MySQL, HTML5 - CSS - JavaScript, Adobe Flash - ActionScript 3.0, BlitzBASIC, DarkBASIC, as well as several others languages and IDE's. I want to have places members can go and not only gather great content and ideas, but learn more about programming in those languages.

Please let me know what you think.

Thanks,
Walter Whitman  a.k.a.  Waltersmind
The Joyful Programmer
« Last Edit: June 20, 2014, 08:58:33 am by waltersmind »
Please visit my QB64 programming forum located at http://www.TheJoyfulProgrammer.com and my YouTube Channel: https://www.youtube.com/c/Thejoyfulprogrammer

Michael

  • Newbie
  • *
  • Posts: 3
Re: Guidelines for Contributing to QB64's Source Code/Core Functionality
« Reply #6 on: June 24, 2014, 11:39:40 pm »
Waltersmind

Congratulations with your revolutionary ideas concerning QB64 there had to be changes which everyone has now recognised.
What does it matter if there are thousands of functions and routines ? just as you have pointed out :) choice is now the key word,users will now have a better chance to express themselves instead of being hindered by old fashioned ways,and by the way being Mimicked is a sign of respect and acceptance you know,roll on the NEW QB64.
Good luck with your New forum.

Michael.

codeguy

  • Hero Member
  • *****
  • Posts: 3963
  • what the h3ll did i name that code?
    • stuff at dkm
Re: Guidelines for Contributing to QB64's Source Code/Core Functionality
« Reply #7 on: June 25, 2014, 01:47:55 pm »
you have ready access to all my sorting algos. PrimeGapSort and others. feel free to use them. they sort ranges, ascending, descending. even my modified recursion-killing version of quicksort. i'm just happy to contribute in any way or help. on an unrelated note, it is my birthday ;D.
http://denteddisk.forums-free.com/make-an-appointment-with-the-resident-code-guru-f34.html

waltersmind

  • QB64 Partner Site Owner
  • Hero Member
  • *
  • Posts: 666
  • TheJoyfulProgrammer.com
    • The Joyful Programmer
Re: Guidelines for Contributing to QB64's Source Code/Core Functionality
« Reply #8 on: June 25, 2014, 05:10:59 pm »
Happy Birthday Codeguy!


Walter Whitman
The Joyful Programmer
Please visit my QB64 programming forum located at http://www.TheJoyfulProgrammer.com and my YouTube Channel: https://www.youtube.com/c/Thejoyfulprogrammer

  • Print