Day 10 - Mentor Meet 2.0

Today I continued to make progress on my Postgres extension project. I began the day by delving into the world of regression testing, seeking to understand its principles and how it can be applied effectively. Through the examination of various code examples, I gained a clearer understanding of regression testing and discovered new technologies like TAP (Test Anything Protocol) and CI (Continuous Integration), which facilitate the creation of regression tests.

Following my independent exploration, I had a mentor meeting to discuss the project's current status , David and Jimmy (my mentors) shared their vision for the project and offered valuable advice on how to proceed.

Among the topics discussed during the meeting were:

  1. Introduction to Postgres Extensions: We explored the importance of having an introductory page that clearly articulates the need for extensions and outlines the various components involved, such as the makefile, SQL file, and control file.

  2. Usage Policy and Licensing: We delved into the intricacies of public code usage and the presence of licenses like BSD or MIT, which may restrict the use of certain codes within the Postgres system. It was important to understand which code is usable and aligned with the project's requirements.

  3. Bridging Old and New: Given that Postgres is an older database based on C, we discussed the role of makefiles in enabling newer languages and technologies to interact seamlessly with the existing code base. This understanding would be crucial in ensuring the successful integration of modern functionalities.

  4. Official Postgres Packages and Documentation: An important aspect emphasized during the meeting was the usage of official Postgres packages rather than distribution packages, as the latter can lead to version control issues that can cause significant headaches. We also touched upon the Python documentation's quirks, where the suggested new approaches may not work as intended, while the older methods prove effective.

  5. Leveraging the Debian Repo Community: To enhance my understanding of concepts and documentation, the mentors suggested exploring the Debian repo community as a trusted source of information and resources. Engaging with this community could prove immensely beneficial to my project's development.

  6. Minimum Viable Product (MVP): A key takeaway from the meeting was the need to focus on creating a Minimum Viable Product (MVP). By developing a skeletal extension that performs basic functions, I can establish a solid foundation upon which to build and expand further.

  7. SGML: Would need to convert the markdown code to SGML for integration with the Postgres Documentation, so I would need to learn SGML or another option is to find if there is any convertor present which converts markdown to SGML code.